On 05/04/2017 09:08 PM, gil...@rist.or.jp wrote:

William,

the link error clearly shows libcaffe.so does require C++ bindings.

did you build caffe from a fresh tree ?

what if you

ldd libcaffe.so

nm libcaffe.so | grep -i ompi

if libcaffe.so does require mpi c++ bindings, it should depend on it

(otherwise the way it was built is questionnable)

you might want to link with mpic++ instead of g++


This is a great point I missed in my previous e-mail on this topic. When compiling a program that uses MPI, you want to specify the MPI compiler wrappers for your C, C++ and Fortran Compilers, and not your chosen compiler directly, For example:

./configure --prefix=/usr/local/foo-1.2.3 CC=mpicc CXX=mpicxx FC=mpif90

or something similar. This guarantees that the actual compiler is called with all the write flags for the C preprocessor, linker, etc. This will almost always prevent those linking errors.

note mpi C++ bindings are no more built by default since v2.0, so you likely have to

configure --enable-mpi-cxx

last but not least, make sure caffe and openmpi were built with the same c++ compiler

Cheers,

Gilles

----- Original Message -----

    I know this could possibly be off-topic, but the errors are
    OpenMPI errors and if anyone could shed light on the nature of
    these errors I figure it would be this group:

        CXX/LD -o .build_release/tools/upgrade_solver_proto_text.bin
        g++ .build_release/tools/upgrade_solver_proto_text.o -o
        .build_release/tools/upgrade_solver_proto_text.bin -pthread
        -fPIC -DCAFFE_VERSION=1.0.0-rc5 -DNDEBUG -O2 -DUSE_OPENCV
        -DUSE_LEVELDB -DUSE_LMDB -DCPU_ONLY -DWITH_PYTHON_LAYER
        -I/hpc/apps/python27/include/python2.7
        
-I/hpc/apps/python27/externals/numpy/1.9.2/lib/python2.7/site-packages/numpy/core/include
        -I/usr/local/include -I/hpc/apps/hdf5/1.8.17/include
        -I.build_release/src -I./src -I./include
        -I/hpc/apps/atlas/3.10.2/include -Wall -Wno-sign-compare
        -lcaffe -L/hpc/apps/gflags/lib -L/hpc/apps/python27/lib
        -L/hpc/apps/python27/lib/python2.7
        -L/hpc/apps/atlas/3.10.2/lib -L.build_release/lib-lglog
        -lgflags -lprotobuf -lboost_system -lboost_filesystem -lm
        -lhdf5_hl -lhdf5 -lleveldb -lsnappy -llmdb -lopencv_core
        -lopencv_highgui -lopencv_imgproc -lboost_thread -lstdc++
        -lboost_python -lpython2.7 -lcblas -latlas \
        -Wl,-rpath,\$ORIGIN/../lib
        .build_release/lib/libcaffe.so: undefined reference to
        `ompi_mpi_cxx_op_intercept'
        .build_release/lib/libcaffe.so: undefined reference to
        `MPI::Datatype::Free()'
        .build_release/lib/libcaffe.so: undefined reference to
        `MPI::Comm::Comm()'
        .build_release/lib/libcaffe.so: undefined reference to
        `MPI::Win::Free()'
        collect2: error: ld returned 1 exit status

    I've read this may be due to a dependency of Caffe that uses
    OpenMPI (since I've been told Caffe itself doesn't use OpenMPI).

    Would adding -l directives to LIBRARIES line in the Makefile for
    Caffe that reference all OpenMPI libraries fix this problem?

    For example, -l mpi.

    Thank you in advance. Hopefully this isn't entirely OT.

    William L.

    IMPORTANT WARNING: This message is intended for the use of the
    person or entity to which it is addressed and may contain
    information that is privileged and confidential, the disclosure of
    which is governed by applicable law. If the reader of this message
    is not the intended recipient, or the employee or agent
    responsible for delivering it to the intended recipient, you are
    hereby notified that any dissemination, distribution or copying of
    this information is strictly prohibited. Thank you for your
    cooperation. IMPORTANT WARNING: This message is intended for the
    use of the person or entity to which it is addressed and may
    contain information that is privileged and confidential, the
    disclosure of which is governed by applicable law. If the reader
    of this message is not the intended recipient, or the employee or
    agent responsible for delivering it to the intended recipient, you
    are hereby notified that any dissemination, distribution or
    copying of this information is strictly prohibited. Thank you for
your cooperation.


_______________________________________________
users mailing list
users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/users

_______________________________________________
users mailing list
users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/users

Reply via email to