Sync ThreadPoolExecutor doesn't truly parallelize inside LangGraph nodes. Switched to async functions with asyncio.to_thread() + asyncio.gather() — the same pattern that works for the parallel analyst node. Result: Research (Bull+Bear) and Risk (Agg+Con+Neu) now run concurrently. Total analysis time reduced from ~450s to ~280s (~38% faster). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| conditional_logic.py | ||
| parallel_analysts.py | ||
| propagation.py | ||
| reflection.py | ||
| setup.py | ||
| signal_processing.py | ||
| trading_graph.py | ||