Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] installation with two different compilers
From: Francesco Pietra (chiendarret_at_[hidden])
Date: 2009-10-22 13:28:49


Hi:
Sure there is the howto somewhere, though not found. With Debian Linux
amd64 lenny I have a working installation of openmpi-1.2.6, intel
compiled, mpif90 etc in /usr/local/bin. For program OCTOPUS I need
gfortran-compiled openmpi. I did so with openmpi-1.3.3, mpif90 etc (as
symlink to /opt/bin/opal_wrapper) in /opt/bin.

The compilation was carried out as follows:
./configure --prefix=/opt FC=/usr/bin/gfortran F77=/usr/bin/gfortran
CC=/usr/bin/gcc CXX=/usr/bin/g++ --with-libnuma=/usr/lib

As I am the only user, I use to place everything in my .bashrc. Specifically,

#For openmpi-1.2.6 Intel compiler

if [ "$LD_LIBRARY_PATH" ] ; then
  export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
else
  export LD_LIBRARY_PATH="/usr/local/lib"
fi

#For openmpi-1.3.3 gnu (gfortran) compiled

if [ "$LD_LIBRARY_PATH" ] ; then
  export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/lib"
else
  export LD_LIBRARY_PATH="/opt/lib"
fi

Command
$ompi_info
always reports about the intel compiled. How can I have info about the
gfortran compiled (and runtime) ?

If relevant:

francesco_at_tya64:~$ $PATH
bash: /opt/etsf/bin:/usr/local/delphi_4.1.1:/opt/intel/cce/10.1.015/bin:/opt/intel/fce/10.1.015/bin:/usr/local/bin/vmd:/usr/local/chimera/bin:/opt/etsf/bin:/usr/local/delphi_4.1.1:/opt/intel/cce/10.1.015/bin:/opt/intel/fce/10.1.015/bin:/usr/local/bin/vmd:/usr/local/chimera/bin:/opt/etsf/bin:/usr/local/delphi_4.1.1:/opt/intel/cce/10.1.015/bin:/opt/intel/fce/10.1.015/bin:/usr/local/bin/vmd:/usr/local/chimera/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/francesco/hole2/exe:/usr/local/amber10/exe:/usr/local/dock6/bin:/home/francesco/hole2/exe:/usr/local/amber10/exe:/usr/local/dock6/bin:/home/francesco/hole2/exe:/usr/local/amber10/exe:/usr/local/dock6/bin:
No such file or directory
francesco_at_tya64:~$

francesco_at_tya64:~$ $LD_LIBRARY_PATH
bash: /opt/intel/mkl/10.0.1.014/lib/em64t:/opt/intel/cce/10.1.015/lib:/opt/intel/fce/10.1.015/lib:/opt/intel/mkl/10.0.1.014/lib/em64t:/opt/intel/cce/10.1.015/lib:/opt/intel/fce/10.1.015/lib:/usr/local/lib:/opt/lib:/opt/acml4.2.0/gfortran64_mp_int64/lib:/usr/local/lib:/opt/lib:/opt/acml4.2.0/gfortran64_mp_int64/lib:
No such file or directory
francesco_at_tya64:~$

I do not understand this "No such file or directory"; the library
exists. Surely there is something wrong with my handling.

Under these conditions the parallel ./configure of OCTOPUS with

export FC=/opt/bin/mpif90
export CC=/opt/bin/mpicc (C++ is not used)

reports errors of the type:
configure:5478: /opt/bin/mpicc -E conftest.c
conftest.c:13:28: error: ac_nonexistent.h: No such file or directory

and

$ make
fails, finding a lot of problems with mpi:

......
/usr/lib/libmpi.so: undefined reference to `orte_data_value_t_class'
/usr/lib/libmpi.so: undefined reference to `opal_progress_event_increment'
/usr/lib/libmpi_f77.so: undefined reference to `mpi_conversion_fn_null__'
/usr/lib/libmpi.so: undefined reference to `opal_progress_events'
/usr/lib/libmpi.so: undefined reference to `orte_hash_table_set_proc'
/usr/lib/libmpi_f77.so: undefined reference to `mpi_conversion_fn_null'
/usr/lib/libmpi.so: undefined reference to `orte_gpr'
/usr/lib/libmpi.so: undefined reference to `orte_init_stage2'
/usr/lib/libmpi.so: undefined reference to `orte_schema'
/usr/lib/libmpi.so: undefined reference to `orte_gpr_trigger_t_class'
/usr/lib/libmpi_f77.so: undefined reference to `MPI_CONVERSION_FN_NULL'
/usr/lib/libmpi.so: undefined reference to `orte_ns'
/usr/lib/libmpi_f77.so: undefined reference to `ompi_registered_datareps'
/usr/lib/libmpi_f77.so: undefined reference to `mpi_conversion_fn_null_'
/usr/lib/libmpi.so: undefined reference to `opal_progress_mpi_init'
/usr/lib/libmpi.so: undefined reference to `orte_gpr_base_selected_component'
/usr/lib/libmpi.so: undefined reference to `orte_smr'
/usr/lib/libmpi.so: undefined reference to `opal_progress_mpi_disable'
/usr/lib/libmpi.so: undefined reference to `orte_app_context_map_t_class'
/usr/lib/libmpi.so: undefined reference to `orte_ns_name_wildcard'
/usr/lib/libmpi.so: undefined reference to `orte_system_info'
/usr/lib/libmpi.so: undefined reference to `orte_buffer_t_class'
/usr/lib/libmpi.so: undefined reference to `orte_rmgr'
/usr/lib/libmpi.so: undefined reference to `opal_progress_event_decrement'
/usr/lib/libmpi.so: undefined reference to `orte_hash_table_get_proc'
/usr/lib/libmpi.so: undefined reference to `orte_init_stage1'
/usr/lib/libmpi.so: undefined reference to `orte_dss'
/usr/lib/libmpi.so: undefined reference to `orte_gpr_subscription_t_class'
/usr/lib/libmpi.so: undefined reference to `opal_progress_mpi_enable'
make[3]: *** [octopus_mpi] Error 1
make[3]: Leaving directory `/home/francesco/octopus/octopus-3.1.0/src/main'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/francesco/octopus/octopus-3.1.0/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/francesco/octopus/octopus-3.1.0'
make: *** [all] Error 2
francesco_at_tya64:~/octopus/octopus-3.1.0$

Thanks for help

francesco pietra