Paralelo
El bloque Paralelo es un bloque contenedor en Sim que permite ejecutar múltiples instancias de bloques simultáneamente para un procesamiento más rápido del flujo de trabajo.
El bloque Paralelo admite dos tipos de ejecución concurrente:
Los bloques Paralelos son nodos contenedores que ejecutan su contenido múltiples veces simultáneamente, a diferencia de los bucles que ejecutan secuencialmente.
Descripción general
El bloque Paralelo te permite:
Distribuir trabajo: Procesar múltiples elementos concurrentemente
Acelerar la ejecución: Ejecutar operaciones independientes simultáneamente
Manejar operaciones masivas: Procesar grandes conjuntos de datos eficientemente
Agregar resultados: Recopilar salidas de todas las ejecuciones paralelas
Opciones de configuración
Tipo de paralelo
Elige entre dos tipos de ejecución paralela:
Paralelo basado en conteo - Ejecuta un número fijo de instancias paralelas:

Usa esto cuando necesites ejecutar la misma operación múltiples veces concurrentemente.
Example: Run 5 parallel instances
- Instance 1 ┐
- Instance 2 ├─ All execute simultaneously
- Instance 3 │
- Instance 4 │
- Instance 5 ┘
Paralelo basado en colección - Distribuye una colección entre instancias paralelas:

Cada instancia procesa un elemento de la colección simultáneamente.
Example: Process ["task1", "task2", "task3"] in parallel
- Instance 1: Process "task1" ┐
- Instance 2: Process "task2" ├─ All execute simultaneously
- Instance 3: Process "task3" ┘
Cómo usar bloques paralelos
Creación de un bloque paralelo
- Arrastra un bloque Paralelo desde la barra de herramientas a tu lienzo
- Configura el tipo de paralelo y los parámetros
- Arrastra un solo bloque dentro del contenedor paralelo
- Conecta el bloque según sea necesario
Acceso a los resultados
Después de que un bloque paralelo se complete, puedes acceder a los resultados agregados:
<parallel.results>
: Array de resultados de todas las instancias paralelas
Ejemplos de casos de uso
Procesamiento de API por lotes
Escenario: Procesar múltiples llamadas API simultáneamente
- Bloque paralelo con colección de endpoints API
- Dentro del paralelo: El bloque API llama a cada endpoint
- Después del paralelo: Procesar todas las respuestas juntas
Procesamiento de IA con múltiples modelos
Escenario: Obtener respuestas de múltiples modelos de IA
- Paralelo basado en colección sobre una lista de IDs de modelos (p. ej., ["gpt-4o", "claude-3.7-sonnet", "gemini-2.5-pro"])
- Dentro del paralelo: El modelo del agente se establece al elemento actual de la colección
- Después del paralelo: Comparar y seleccionar la mejor respuesta
Características avanzadas
Agregación de resultados
Los resultados de todas las instancias paralelas se recopilan automáticamente:
// In a Function block after the parallel
const allResults = input.parallel.results;
// Returns: [result1, result2, result3, ...]
Aislamiento de instancias
Cada instancia paralela se ejecuta independientemente:
- Ámbitos de variables separados
- Sin estado compartido entre instancias
- Los fallos en una instancia no afectan a las demás
Limitaciones
Los bloques contenedores (Bucles y Paralelos) no pueden anidarse unos dentro de otros. Esto significa:
- No puedes colocar un bloque de Bucle dentro de un bloque Paralelo
- No puedes colocar otro bloque Paralelo dentro de un bloque Paralelo
- No puedes colocar ningún bloque contenedor dentro de otro bloque contenedor
Los bloques paralelos solo pueden contener un único bloque. No puedes tener múltiples bloques conectados entre sí dentro de un paralelo - en ese caso, solo se ejecutaría el primer bloque.
Aunque la ejecución paralela es más rápida, ten en cuenta:
- Los límites de tasa de las API al realizar solicitudes concurrentes
- El uso de memoria con conjuntos de datos grandes
- Máximo de 20 instancias concurrentes para evitar el agotamiento de recursos
Paralelo vs Bucle
Entendiendo cuándo usar cada uno:
Característica | Paralelo | Bucle |
---|---|---|
Ejecución | Concurrente | Secuencial |
Velocidad | Más rápido para operaciones independientes | Más lento pero ordenado |
Orden | Sin orden garantizado | Mantiene el orden |
Caso de uso | Operaciones independientes | Operaciones dependientes |
Uso de recursos | Mayor | Menor |
Entradas y Salidas
Tipo de paralelo: Elige entre 'count' o 'collection'
Count: Número de instancias a ejecutar (basado en conteo)
Collection: Array u objeto a distribuir (basado en colección)
parallel.currentItem: Elemento para esta instancia
parallel.index: Número de instancia (base 0)
parallel.items: Colección completa (basado en colección)
parallel.results: Array de todos los resultados de instancias
Access: Disponible en bloques después del paralelo
Mejores prácticas
- Solo operaciones independientes: Asegúrate de que las operaciones no dependan entre sí
- Manejo de límites de tasa: Añade retrasos o limitaciones para flujos de trabajo con uso intensivo de API
- Manejo de errores: Cada instancia debe manejar sus propios errores correctamente