The simple answer is you can't. The mpool is loaded before the BTLs
and on Linux the loader use the RTLD_NOW flag (i.e. all symbols have
to be defined or the dlopen call will fail).
Moreover, there is no way in Open MPI to exchange information between
components except a global variable or something in the mca/common. In
other words there is no way for you to call from the mpool a function
from the sm BTL.
george.
On Jan 13, 2009, at 19:22 , Eugene Loh wrote:
With the sm BTL, there is a file that each process mmaps in for
shared memory.
I'm trying to get mpool_sm to size the file appropriately. So, I
would like mpool_sm to call some mca_btl_sm function that provides a
good guess of the size. (mpool_sm creates and mmaps the file, but
the size depends on parameters like eager limit and max frag size
that are known by the btl_sm.)
On Solaris, this works fine.
On Linux, at mpirun time, I get
./a.out: symbol lookup error: /home/eugene/workspace/lib/openmpi/
mca_mpool_sm.so: undefined symbol: mca_btl_sm_get_file_size
./a.out: symbol lookup error: /home/eugene/workspace/lib/openmpi/
mca_mpool_sm.so: undefined symbol: mca_btl_sm_get_file_size
--------------------------------------------------------------------------
mpirun has exited due to process rank 1 with PID 17224 on
node mynode-0 exiting without calling "finalize". This may
have caused other processes in the application to be
terminated by signals sent by mpirun (as reported here).
--------------------------------------------------------------------------
What's up? How do I get mpool_sm to call btl_sm? Why does this
depend on OS? (I am okay with btl_sm calling mpool_sm instead if
that would help.)
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel