Overview
Multi-engine analysis allows you to run multiple UCI engines simultaneously on the same position, providing diverse perspectives on the evaluation. This is particularly valuable when engines disagree, as it often indicates complex tactical or strategic nuances.How It Works
Concurrent Engine Execution
The application manages multiple engine processes concurrently using async runtime:Engine Grouping
Engines are grouped by tab and engine identifier:- Multiple engines per position
- Independent configurations per engine
- Automatic cleanup when switching positions
Setting Up Multi-Engine Analysis
Configure Multiple Engines
To analyze with multiple engines, call the analysis command for each engine:Comparing Engine Evaluations
Evaluation Output
Each engine provides its own evaluation, which can be compared:Evaluation Differences
Engines may differ in evaluation for several reasons:
- Search algorithms: Alpha-beta (Stockfish) vs. MCTS (Lc0)
- Evaluation functions: Hand-crafted vs. neural network
- Tactical vs. strategic: Stockfish excels at tactics, Lc0 at positional play
- Search depth: Different node counts or depth reached
Progress Tracking
Real-Time Updates
Each engine emits progress updates independently:Progress Calculation
Progress is calculated based on the analysis mode:(current_depth / target_depth) * 100(elapsed_time / target_time) * 100(nodes_searched / target_nodes) * 100Always reports
99.99% until stoppedEngine Caching & Reconfiguration
Smart Engine Reuse
The engine manager caches running processes and reuses them when possible:Reconfiguration Protection
To prevent race conditions during reconfiguration:Advanced Use Cases
Multi-PV Analysis
Combine multi-engine with multi-PV for comprehensive analysis:Engine Comparison for Opening Prep
Analyze critical opening positions with multiple engines:Performance Considerations
Resource Management
Memory Usage
Each engine maintains its own hash table:Rate Limiting
Progress updates are rate-limited to prevent UI flooding:Troubleshooting
One Engine Slower Than Others
One Engine Slower Than Others
This is normal. Different engines have different search characteristics:
- Stockfish: Very fast, high NPS (nodes per second)
- Lc0: Slower, lower NPS but deeper evaluation
- Komodo: Medium speed, balanced approach
GoMode::Time) instead of depth-based for synchronized completion.System Slowdown with Multiple Engines
System Slowdown with Multiple Engines
Reduce resource allocation:
- Lower thread count per engine
- Reduce hash table size
- Use fewer engines simultaneously
- Consider analyzing positions sequentially instead of concurrently
Engines Showing Different Best Moves
Engines Showing Different Best Moves
This is expected and valuable! Different engines have different playing styles:
- Stockfish favors concrete tactics
- Lc0 favors long-term positional play
- Check both lines to understand the position fully
