Parallel
Le bloc Parallel est un bloc conteneur dans Sim qui permet d'exécuter plusieurs instances de blocs simultanément pour un traitement de flux de travail plus rapide.
Le bloc Parallel prend en charge deux types d'exécution concurrente :
Les blocs Parallel sont des nœuds conteneurs qui exécutent leur contenu plusieurs fois simultanément, contrairement aux boucles qui s'exécutent séquentiellement.
Aperçu
Le bloc Parallel vous permet de :
Distribuer le travail : traiter plusieurs éléments simultanément
Accélérer l'exécution : exécuter des opérations indépendantes simultanément
Gérer des opérations en masse : traiter efficacement de grands ensembles de données
Agréger les résultats : collecter les sorties de toutes les exécutions parallèles
Options de configuration
Type de parallélisation
Choisissez entre deux types d'exécution parallèle :
Parallel basé sur le comptage - Exécuter un nombre fixe d'instances parallèles :

Utilisez cette option lorsque vous devez exécuter la même opération plusieurs fois simultanément.
Example: Run 5 parallel instances
- Instance 1 ┐
- Instance 2 ├─ All execute simultaneously
- Instance 3 │
- Instance 4 │
- Instance 5 ┘
Parallel basé sur une collection - Distribuer une collection à travers des instances parallèles :

Chaque instance traite un élément de la collection simultanément.
Example: Process ["task1", "task2", "task3"] in parallel
- Instance 1: Process "task1" ┐
- Instance 2: Process "task2" ├─ All execute simultaneously
- Instance 3: Process "task3" ┘
Comment utiliser les blocs Parallel
Création d'un bloc Parallel
- Faites glisser un bloc Parallel depuis la barre d'outils sur votre canevas
- Configurez le type de parallélisation et les paramètres
- Faites glisser un seul bloc à l'intérieur du conteneur parallel
- Connectez le bloc selon vos besoins
Accès aux résultats
Après la fin d'un bloc parallèle, vous pouvez accéder aux résultats agrégés :
<parallel.results>
: Tableau des résultats de toutes les instances parallèles
Exemples de cas d'utilisation
Traitement par lots d'API
Scénario : traiter plusieurs appels d'API simultanément
- Bloc parallèle avec une collection de points de terminaison API
- À l'intérieur du parallèle : le bloc API appelle chaque point de terminaison
- Après le parallèle : traitement de toutes les réponses ensemble
Traitement IA multi-modèles
Scénario : obtenir des réponses de plusieurs modèles d'IA
- Parallèle basé sur une collection de modèles (ex. : ["gpt-4o", "claude-3.7-sonnet", "gemini-2.5-pro"])
- À l'intérieur du parallèle : le modèle de l'agent est défini sur l'élément actuel de la collection
- Après le parallèle : comparer et sélectionner la meilleure réponse
Fonctionnalités avancées
Agrégation des résultats
Les résultats de toutes les instances parallèles sont automatiquement collectés :
// In a Function block after the parallel
const allResults = input.parallel.results;
// Returns: [result1, result2, result3, ...]
Isolation des instances
Chaque instance parallèle s'exécute indépendamment :
- Portées de variables séparées
- Pas d'état partagé entre les instances
- Les échecs dans une instance n'affectent pas les autres
Limitations
Les blocs conteneurs (Boucles et Parallèles) ne peuvent pas être imbriqués les uns dans les autres. Cela signifie :
- Vous ne pouvez pas placer un bloc Boucle dans un bloc Parallèle
- Vous ne pouvez pas placer un autre bloc Parallèle dans un bloc Parallèle
- Vous ne pouvez pas placer un bloc conteneur dans un autre bloc conteneur
Les blocs parallèles ne peuvent contenir qu'un seul bloc. Vous ne pouvez pas avoir plusieurs blocs connectés les uns aux autres à l'intérieur d'un parallèle - seul le premier bloc s'exécuterait dans ce cas.
Bien que l'exécution parallèle soit plus rapide, soyez attentif à :
- Limites de taux des API lors de requêtes simultanées
- Utilisation de la mémoire avec de grands ensembles de données
- Maximum de 20 instances simultanées pour éviter l'épuisement des ressources
Parallèle vs Boucle
Comprendre quand utiliser chacun :
Fonctionnalité | Parallèle | Boucle |
---|---|---|
Exécution | Concurrente | Séquentielle |
Vitesse | Plus rapide pour les opérations indépendantes | Plus lente mais ordonnée |
Ordre | Pas d'ordre garanti | Maintient l'ordre |
Cas d'utilisation | Opérations indépendantes | Opérations dépendantes |
Utilisation des ressources | Plus élevée | Plus faible |
Entrées et sorties
Type de parallèle : Choisissez entre 'count' ou 'collection'
Count : Nombre d'instances à exécuter (basé sur le comptage)
Collection : Tableau ou objet à distribuer (basé sur la collection)
parallel.currentItem : Élément pour cette instance
parallel.index : Numéro d'instance (base 0)
parallel.items : Collection complète (basé sur la collection)
parallel.results : Tableau de tous les résultats d'instance
Accès : Disponible dans les blocs après le parallèle
Bonnes pratiques
- Opérations indépendantes uniquement : Assurez-vous que les opérations ne dépendent pas les unes des autres
- Gérer les limites de taux : Ajoutez des délais ou une limitation pour les workflows intensifs en API
- Gestion des erreurs : Chaque instance doit gérer ses propres erreurs avec élégance