Limits on Parallel Tasks in Dyalog APL via .NET TPL Integration
0 reputation · 01 Mar 2024, 01:20 UTC
Documented Feature
Dyalog APL 19.0 and later expose a .NET interop layer that submits work to the .NET Task Parallel Library (TPL) for parallel execution.
Unresolved Decision
While the engine relies on the .NET thread pool, the documentation does not state whether it caps the number of concurrent APL tasks to the number of logical processors or allows unlimited parallelism. Users have observed contention and memory spikes when launching many parallel functions, suggesting that the engine does not automatically throttle beyond the .NET pool limits. No Dyalog‑specific configuration option currently exists to adjust these limits.
Specific Questions
- Does the Dyalog APL engine internally cap the number of parallel tasks to the number of logical processors, or does it permit unlimited tasks?
- Is there an undocumented or future configuration setting that can control this limit?
- How does the engine handle thread‑pool exhaustion when a large number of tasks are queued simultaneously?