-
Notifications
You must be signed in to change notification settings - Fork 15
Description
Hi all,
A few more questions about Pigeons. I am trying to use Pigeons on my university's cluster, which uses Slurm.
- I see no performance difference between using threads and not using threads. I have started Julia with 4 threads and am using 4 chains. I didn't expect a four-fold speedup but I expected at least some difference. Perhaps importantly, my problem involves making a closure which contains a large object and a memory-intensive operation, the inverse of a matrix.
log_likelihood = let large_obj = large_obj
input_data -> memory_intensive_function(input_data, large_obj)
end
When should I expect performance improvements from threading? Usually I think of threading as being useful for stuff like speeding up loops and matrix operations, not for operations as complicated as an MCMC. What is pigeons doing when multithreaded
is set to true
?
- I'm trying to do distributed computing. I am trying, and failing to do
setup_mpi
, getting the error
julia> Pigeons.setup_mpi(; submission_system = :slurm)
MPI library could not be found with the following name(s):
["libmpi", "libmpi_ibm", "msmpi", "libmpich", "libmpi_cray", "libmpitrampoline"]
(I have no idea what the MPI library is called on my cluster, but am working on it).
But more generally, why is MPI the only option for distributed computing? What does Pigeons.jl not support distributed programming using the Distributed library? I don't think I could expect users of my package to configure MPI in order to take advantage of parallelization.
Thank you,
Peter