# Parallelization और Orchestrator-Workers — एडवांस्ड Agent Workflows और Skills

Source: https://www.geekswithgeeks.com/hi/agent-workflows/wf-parallel-orchestrator

> स्वतंत्र उप-कार्य parallel चलाएँ और orchestrator से वह काम बँटवाएँ जिसका पहले अनुमान नहीं लग सकता।

## बाँटें, फिर जोड़ें

**Parallelization** स्वतंत्र calls एक साथ चलाती है, या तो काम के अलग-अलग हिस्सों पर, या तुलना के लिए एक ही काम के कई प्रयास। **Orchestrator-workers** में एक model runtime पर तय करता है कि काम कैसे बँटे, टुकड़े worker calls को देता है और नतीजे मिलाता है। इसे तब उपयोग करें जब उप-कार्य पहले से न पता हों, जैसे कई अज्ञात files बदलना।

## asyncio से parallel calls

`gather` सभी reviews साथ शुरू करता है, इसलिए कुल समय योग की जगह सबसे धीमे के क़रीब रहता है। `async_llm` कोई भी async model call है।

```python
import asyncio

async def review_all(files: list[str]) -> list[str]:
    tasks = [async_llm(f"Review this file:\n{f}") for f in files]
    return await asyncio.gather(*tasks)
```

## हेड शेफ़

हेड शेफ़ ऑर्डर पढ़ता है, तय करता है कौन-सा व्यंजन किस रसोइये को जाए, और अंतिम थाली सजाता है। Orchestrator उप-कार्यों और worker calls के साथ यही करता है।

**Quiz:** Fixed chain की तुलना में orchestrator-workers कब बेहतर है?

- [ ] जब उप-कार्य पहले से ज्ञात हों
- [ ] जब कोई model call नहीं चाहिए
- [x] जब उप-कार्य input पर निर्भर हों और पहले से सूचीबद्ध न हो सकें
- [ ] जब latency बिल्कुल मायने न रखे

*Answer:* जब उप-कार्य input पर निर्भर हों और पहले से सूचीबद्ध न हो सकें. Orchestrator काम runtime पर खोजता है, जो fixed chain नहीं कर सकती।
