The current implementation of `MPI.jl` uses `ccall` to call MPI functions,
and specifies the MPI library via its file system path. How efficient is
this? I was naively expecting that a `ccall` is as efficient as a regular
function call, maybe calling a function via a function pointer or similar,
as it would be in C.

However, if the library is specified only by its path, then it seems that
Julia must use string comparisons and at least two dictionary lookups (for
library name and function name) to find the respective function pointer.

Some MPI functions are performance critical, and some don't perform much
work. Is there a way to make `ccall` more efficient? Should we think about
caching the result of some MPI calls? Or can one cache the result of the
`ccall` dynamic library lookups?

-erik

-- 
Erik Schnetter <[email protected]>
http://www.perimeterinstitute.ca/personal/eschnetter/

Reply via email to