Skip to content

Distributed without MPI and Threading #331

@pdeffebach

Description

@pdeffebach

Hi all,

A few more questions about Pigeons. I am trying to use Pigeons on my university's cluster, which uses Slurm.

  1. 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?

  1. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions