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/
