Brian,
Sure, but my example will probably seem a little odd. I am calling
the mpi shared library from Python using ctypes.
The dependencies for doing things this way are:
1. Python built with --enable-shared
2. The ctypes python package
3. OpenMPI configured with --enable-shared
Once you have this, the following python script will cause the
problem on Mac OS X:
from ctypes import *
f = pythonapi.Py_GetArgcArgv
argc = c_int()
argv = POINTER(c_char_p)()
f(byref(argc), byref(argv))
mpi = cdll.LoadLibrary('libmpi.0.dylib')
mpi.MPI_Init(byref(argc), byref(argv))
I will try this on Linux as well to see if I get the same error. One
important piece of the puzzle is that if I configure openmpi with the
--disable-dlopen flag, I don't have the problem. I will do some
further testing on different systems and get back to you.
Thanks for looking at this.
Brian
On Aug 31, 2006, at 4:20 PM, Brian Barrett wrote:
This is quite strange, and we're having some trouble figuring out
exactly why the opening is failing. Do you have a (somewhat?) easy
list
of instructions so that I can try to reproduce this?
Thanks,
Brian
On Tue, 2006-08-22 at 20:58 -0600, Brian Granger wrote:
HI,
I am trying to dynamically load mpi.dylib on Mac OS X (using
ctypes in
python). It seems to
load fine, but when I call MPI_Init(), I get the error shown
below. I
can call other functions just fine (like MPI_Initialized).
Also, my mpi install is seeing all the needed components and I can
load them myself without error using dlopen. I can also compile and
run mpi programs and I build openmpi with shared library support.
[localhost:00973] mca: base: component_find: unable to open:
dlopen(/usr/local/openmpi-1.1/lib/openmpi/mca_allocator_basic.so, 9):
Symbol not found: _ompi_free_list_item_t_class
Referenced from:
/usr/local/openmpi-1.1/lib/openmpi/mca_allocator_basic.so
Expected in: flat namespace
(ignored)
[localhost:00973] mca: base: component_find: unable to open:
dlopen(/usr/local/openmpi-1.1/lib/openmpi/mca_rcache_rb.so, 9):
Symbol
not found: _ompi_free_list_item_t_class
Referenced from: /usr/local/openmpi-1.1/lib/openmpi/
mca_rcache_rb.so
Expected in: flat namespace
(ignored)
[localhost:00973] mca: base: component_find: unable to open:
dlopen(/usr/local/openmpi-1.1/lib/openmpi/mca_mpool_sm.so, 9): Symbol
not found: _mca_allocator_base_components
Referenced from: /usr/local/openmpi-1.1/lib/openmpi/mca_mpool_sm.so
Expected in: flat namespace
(ignored)
[localhost:00973] mca: base: component_find: unable to open:
dlopen(/usr/local/openmpi-1.1/lib/openmpi/mca_pml_ob1.so, 9): Symbol
not found: _ompi_free_list_item_t_class
Referenced from: /usr/local/openmpi-1.1/lib/openmpi/mca_pml_ob1.so
Expected in: flat namespace
(ignored)
[localhost:00973] mca: base: component_find: unable to open:
dlopen(/usr/local/openmpi-1.1/lib/openmpi/mca_coll_basic.so, 9):
Symbol not found: _mca_pml
Referenced from: /usr/local/openmpi-1.1/lib/openmpi/
mca_coll_basic.so
Expected in: flat namespace
(ignored)
[localhost:00973] mca: base: component_find: unable to open:
dlopen(/usr/local/openmpi-1.1/lib/openmpi/mca_coll_hierarch.so, 9):
Symbol not found: _ompi_mpi_op_max
Referenced from: /usr/local/openmpi-1.1/lib/openmpi/
mca_coll_hierarch.so
Expected in: flat namespace
(ignored)
[localhost:00973] mca: base: component_find: unable to open:
dlopen(/usr/local/openmpi-1.1/lib/openmpi/mca_coll_sm.so, 9): Symbol
not found: _ompi_mpi_local_convertor
Referenced from: /usr/local/openmpi-1.1/lib/openmpi/mca_coll_sm.so
Expected in: flat namespace
(ignored)
[localhost:00973] mca: base: component_find: unable to open:
dlopen(/usr/local/openmpi-1.1/lib/openmpi/mca_coll_tuned.so, 9):
Symbol not found: _mca_pml
Referenced from: /usr/local/openmpi-1.1/lib/openmpi/
mca_coll_tuned.so
Expected in: flat namespace
(ignored)
[localhost:00973] mca: base: component_find: unable to open:
dlopen(/usr/local/openmpi-1.1/lib/openmpi/mca_osc_pt2pt.so, 9):
Symbol
not found: _ompi_request_t_class
Referenced from: /usr/local/openmpi-1.1/lib/openmpi/
mca_osc_pt2pt.so
Expected in: flat namespace
(ignored)
---------------------------------------------------------------------
-----
No available pml components were found!
This means that there are no components of this type installed on
your
system or all the components reported that they could not be used.
This is a fatal error; your MPI process is likely to abort. Check
the
output of the "ompi_info" command and ensure that components of this
type are available on your system. You may also wish to check the
value of the "component_path" MCA parameter and ensure that it has at
least one directory that contains valid MCA components.
---------------------------------------------------------------------
-----
[localhost:00973] PML ob1 cannot be selected
Any Ideas?
Thanks
Brian Granger
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
Brian E Granger, Ph.D.
Research Scientist
Tech-X Corporation
phone: 720-974-1850
bgran...@txcorp.com