mirror of
https://github.com/exo-explore/exo.git
synced 2025-12-23 22:27:50 -05:00
exo: enable multiprocessing support in PyInstaller bundles
Model loading fails silently when running from the DMG-packaged app, despite working correctly with `uv run exo`. The bundled app spawns child processes for model inference via multiprocessing, but these processes fail to start in a frozen (PyInstaller) environment. Add `freeze_support()` which is required for multiprocessing to work in frozen applications. Test plan: Hardware setup: 3x Mac Studio M3 Ultra connected all-to-all with TB5 - Built a DMG using a modified .github/workflows/build-app.yml[0] to avoid publishing it. - Installed on all 3 Macs, replacing the existing Exo. - Downloaded Llama 3.3 70B (FP16). - Downloaded Qwen3 Coder 235B A22B (8-bit). Things that work now but didn't on the previous app: - Topology looks good, previously there was no discovery. What didn't work: - Started an instance with Pipeline + MLX Ring + 3 Nodes. Failed. - Started an instance with Tensor + MLX RDMA + 2 Nodes. Failed. Will continue debugging the instance starting issues separately. [0] https://github.com/exo-explore/exo/actions/runs/20461320368
This commit is contained in:
@@ -1,4 +1,7 @@
|
|||||||
|
from multiprocessing import freeze_support
|
||||||
|
|
||||||
from exo.main import main
|
from exo.main import main
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
freeze_support()
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user