We've got an open bug related to using the Intel Fortran compiler on OSX. http://trac.mpich.org/projects/mpich/ticket/2024 What's missing from that bug description is that it appears that the convenience libraries (mpl, romio, etc.) are not properly embedded when linking with ifort on OSX. Your error output below is consistent with this issue. Is it possible to disable fortran in your MPICH build in this instance? That would at least confirm the source of the problem. Ken On 12/17/2014 02:28 PM, Jeff Hammond wrote:
This is what I do right now to get it working:
../configure --prefix=/Users/jrhammon/Work/MADNESS/install-intel CC=icc CXX=icpc --with-tbb=/opt/intel/composer_xe_2015/tbb --with-mkl CPPFLAGS=-I/opt/mpich/dev/intel/default/include LDFLAGS=/opt/mpich/dev/intel/default/lib/libmpicxx.a /opt/mpich/dev/intel/default/lib/libmpi.a /opt/mpich/dev/intel/default/lib/libpmpi.a MPICC=icc MPICXX=icpc
If I do the more straightforward invocation:
../configure --prefix=/Users/jrhammon/Work/MADNESS/install-intel CC=icc CXX=icpc --with-tbb=/opt/intel/composer_xe_2015/tbb --with-mkl MPICC=/opt/mpich/dev/intel/default/bin/mpicc MPICXX=/opt/mpich/dev/intel/default/bin/mpicxx
Then configure fails like this:
mpicc configure:5840: checking that the /opt/mpich/dev/intel/default/bin/mpicc linker works configure:5853: /opt/mpich/dev/intel/default/bin/mpicc -o conftest -g -O2 conftest.c >&5 Undefined symbols for architecture x86_64: "_MPIO_Err_return_file", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPIR_ROMIO_Get_file_errhand", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPIR_ROMIO_Set_file_errhand", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPIX_File_iread_all", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPIX_File_iread_at_all", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPIX_File_iwrite_all", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPIX_File_iwrite_at_all", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_c2f", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_close", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_delete", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_f2c", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_get_amode", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_get_atomicity", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_get_byte_offset", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_get_group", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_get_info", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_get_position", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_get_position_shared", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_get_size", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_get_type_extent", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_get_view", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_iread", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_iread_at", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_iread_shared", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_iwrite", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_iwrite_at", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_iwrite_shared", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_open", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_preallocate", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_read", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_read_all", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_read_all_begin", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_read_all_end", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_read_at", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_read_at_all", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_read_at_all_begin", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_read_at_all_end", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_read_ordered", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_read_ordered_begin", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_read_ordered_end", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_read_shared", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_seek", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_seek_shared", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_set_atomicity", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_set_info", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_set_size", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_set_view", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_sync", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_write", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_write_all", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_write_all_begin", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_write_all_end", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_write_at", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_write_at_all", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_write_at_all_begin", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_write_at_all_end", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_write_ordered", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_write_ordered_begin", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_write_ordered_end", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_File_write_shared", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPI_Register_datarep", referenced from: import-atom in libmpi.dylib import-atom in libpmpi.dylib "_MPL_TrSetMaxMem", referenced from: import-atom in libpmpi.dylib "_MPL_env2bool", referenced from: import-atom in libpmpi.dylib "_MPL_env2int", referenced from: import-atom in libpmpi.dylib "_MPL_env2range", referenced from: import-atom in libpmpi.dylib "_MPL_env2str", referenced from: import-atom in libpmpi.dylib "_MPL_large_readv", referenced from: import-atom in libpmpi.dylib "_MPL_large_writev", referenced from: import-atom in libpmpi.dylib "_MPL_strncpy", referenced from: import-atom in libpmpi.dylib "_MPL_trDebugLevel", referenced from: import-atom in libpmpi.dylib "_MPL_trcalloc", referenced from: import-atom in libpmpi.dylib "_MPL_trdump", referenced from: import-atom in libpmpi.dylib "_MPL_trfree", referenced from: import-atom in libpmpi.dylib "_MPL_trid", referenced from: import-atom in libpmpi.dylib "_MPL_trinit", referenced from: import-atom in libpmpi.dylib "_MPL_trlevel", referenced from: import-atom in libpmpi.dylib "_MPL_trmalloc", referenced from: import-atom in libpmpi.dylib "_MPL_trrealloc", referenced from: import-atom in libpmpi.dylib "_MPL_trspace", referenced from: import-atom in libpmpi.dylib "_MPL_trstrdup", referenced from: import-atom in libpmpi.dylib "_MPL_trvalid", referenced from: import-atom in libpmpi.dylib "_PMPIX_File_iread_all", referenced from: import-atom in libpmpi.dylib "_PMPIX_File_iread_at_all", referenced from: import-atom in libpmpi.dylib "_PMPIX_File_iwrite_all", referenced from: import-atom in libpmpi.dylib "_PMPIX_File_iwrite_at_all", referenced from: import-atom in libpmpi.dylib "_PMPI_File_close", referenced from: import-atom in libpmpi.dylib "_PMPI_File_delete", referenced from: import-atom in libpmpi.dylib "_PMPI_File_get_amode", referenced from: import-atom in libpmpi.dylib "_PMPI_File_get_atomicity", referenced from: import-atom in libpmpi.dylib "_PMPI_File_get_byte_offset", referenced from: import-atom in libpmpi.dylib "_PMPI_File_get_group", referenced from: import-atom in libpmpi.dylib "_PMPI_File_get_info", referenced from: import-atom in libpmpi.dylib "_PMPI_File_get_position", referenced from: import-atom in libpmpi.dylib "_PMPI_File_get_position_shared", referenced from: import-atom in libpmpi.dylib "_PMPI_File_get_size", referenced from: import-atom in libpmpi.dylib "_PMPI_File_get_type_extent", referenced from: import-atom in libpmpi.dylib "_PMPI_File_get_view", referenced from: import-atom in libpmpi.dylib "_PMPI_File_iread", referenced from: import-atom in libpmpi.dylib "_PMPI_File_iread_at", referenced from: import-atom in libpmpi.dylib "_PMPI_File_iread_shared", referenced from: import-atom in libpmpi.dylib "_PMPI_File_iwrite", referenced from: import-atom in libpmpi.dylib "_PMPI_File_iwrite_at", referenced from: import-atom in libpmpi.dylib "_PMPI_File_iwrite_shared", referenced from: import-atom in libpmpi.dylib "_PMPI_File_open", referenced from: import-atom in libpmpi.dylib "_PMPI_File_preallocate", referenced from: import-atom in libpmpi.dylib "_PMPI_File_read", referenced from: import-atom in libpmpi.dylib "_PMPI_File_read_all", referenced from: import-atom in libpmpi.dylib "_PMPI_File_read_all_begin", referenced from: import-atom in libpmpi.dylib "_PMPI_File_read_all_end", referenced from: import-atom in libpmpi.dylib "_PMPI_File_read_at", referenced from: import-atom in libpmpi.dylib "_PMPI_File_read_at_all", referenced from: import-atom in libpmpi.dylib "_PMPI_File_read_at_all_begin", referenced from: import-atom in libpmpi.dylib "_PMPI_File_read_at_all_end", referenced from: import-atom in libpmpi.dylib "_PMPI_File_read_ordered", referenced from: import-atom in libpmpi.dylib "_PMPI_File_read_ordered_begin", referenced from: import-atom in libpmpi.dylib "_PMPI_File_read_ordered_end", referenced from: import-atom in libpmpi.dylib "_PMPI_File_read_shared", referenced from: import-atom in libpmpi.dylib "_PMPI_File_seek", referenced from: import-atom in libpmpi.dylib "_PMPI_File_seek_shared", referenced from: import-atom in libpmpi.dylib "_PMPI_File_set_atomicity", referenced from: import-atom in libpmpi.dylib "_PMPI_File_set_info", referenced from: import-atom in libpmpi.dylib "_PMPI_File_set_size", referenced from: import-atom in libpmpi.dylib "_PMPI_File_set_view", referenced from: import-atom in libpmpi.dylib "_PMPI_File_sync", referenced from: import-atom in libpmpi.dylib "_PMPI_File_write", referenced from: import-atom in libpmpi.dylib "_PMPI_File_write_all", referenced from: import-atom in libpmpi.dylib "_PMPI_File_write_all_begin", referenced from: import-atom in libpmpi.dylib "_PMPI_File_write_all_end", referenced from: import-atom in libpmpi.dylib "_PMPI_File_write_at", referenced from: import-atom in libpmpi.dylib "_PMPI_File_write_at_all", referenced from: import-atom in libpmpi.dylib "_PMPI_File_write_at_all_begin", referenced from: import-atom in libpmpi.dylib "_PMPI_File_write_at_all_end", referenced from: import-atom in libpmpi.dylib "_PMPI_File_write_ordered", referenced from: import-atom in libpmpi.dylib "_PMPI_File_write_ordered_begin", referenced from: import-atom in libpmpi.dylib "_PMPI_File_write_ordered_end", referenced from: import-atom in libpmpi.dylib "_PMPI_File_write_shared", referenced from: import-atom in libpmpi.dylib "_PMPI_Register_datarep", referenced from: import-atom in libpmpi.dylib ld: symbol(s) not found for architecture x86_64
Recall:
/opt/mpich/dev/intel/default/bin/mpicc -show icc -Wl,-flat_namespace -I/opt/mpich/dev/intel/default/include -L/opt/mpich/dev/intel/default/lib -lmpi -lpmpi
Thanks,
Jeff
On Wed, Dec 17, 2014 at 12:18 PM, Kenneth Raffenetti <[email protected]> wrote:
AFAICT, the Darwin linker includes the full path to all dynamic libraries needed by the library by default. Rpath flags shouldn't be strictly necessary.
mpich-mac1:pt2pt raffenet$ otool -L large_message large_message: /Users/raffenet/mpich/i/lib/libmpi.0.dylib (compatibility version 1.0.0, current version 1.0.0) /Users/raffenet/mpich/i/lib/libpmpi.0.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
The concept of rpath was added in OSX 10.4 apparently, but I don't see much in the way of adoption in other open source projects. Are your binaries running into library not found issues?
Ken
On 12/17/2014 11:41 AM, Jeff Hammond wrote:
Am I doing something wrong here? Why is the rpath option not being added to the wrapper script? This issue makes it impossible for me to use MPICH on my laptop without excessive tedium.
Thanks,
Jeff
mobl:build-intel jrhammon$ /opt/mpich/dev/intel/default/bin/mpichversion MPICH Version: 3.2a2 MPICH Release date: unreleased development copy MPICH Device: ch3:nemesis MPICH configure: CC=icc CXX=icpc FC=ifort F77=ifort --enable-fortran --enable-threads=runtime --enable-g=dbg --with-pm=hydra --prefix=/opt/mpich/dev/intel/default --enable-wrapper-rpath --enable-static --enable-shared MPICH CC: icc -g -O2 MPICH CXX: icpc -g -O2 MPICH F77: ifort -g -O2 MPICH FC: ifort -g -O2
mobl:build-intel jrhammon$ /opt/mpich/dev/intel/default/bin/mpicc -show icc -Wl,-flat_namespace -I/opt/mpich/dev/intel/default/include -L/opt/mpich/dev/intel/default/lib -lmpi -lpmpi
_______________________________________________ To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/devel