In coral we launch possibily MPI functions from Taskflow's thread pool.
- MPI function needs a unique order among all the ranks and that this order must be the same of every rank. Otherwise deadlocks and UBs
- With the thread pool the order is decided runtime by the scheduler and is not replicable.
Even if so far so good this can break at every moment.
The issue boils down to the common lore: you use multi-thread inside multi-node and not vice versa.
In coral we launch possibily MPI functions from Taskflow's thread pool.
Even if so far so good this can break at every moment.
The issue boils down to the common lore: you use multi-thread inside multi-node and not vice versa.