Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: [OMPI devel] oshmem link failure on trunk
From: Paul Hargrove (phhargrove_at_[hidden])
Date: 2014-01-31 14:13:03


I am testing Wednesday (Jan 29) night's trunk tarball (1.9a1r30495) on an
SGI UV system.
Apologies if this has been fixed since then.

When I run "make" in the examples directory I find that the C and Fortran
MPI examples link fine, but the Open SHMEM examples do not:

$ make
mpicc -g hello_c.c -o hello_c
mpicc -g ring_c.c -o ring_c
mpicc -g connectivity_c.c -o connectivity_c
make[1]: Entering directory
`/brashear/hargrove/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/BLD/examples'
make[2]: Entering directory
`/brashear/hargrove/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/BLD/examples'
mpifort -g hello_mpifh.f -o hello_mpifh
mpifort -g ring_mpifh.f -o ring_mpifh
make[2]: Leaving directory
`/brashear/hargrove/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/BLD/examples'
make[2]: Entering directory
`/brashear/hargrove/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/BLD/examples'
mpifort -g hello_usempi.f90 -o hello_usempi
mpifort -g ring_usempi.f90 -o ring_usempi
make[2]: Leaving directory
`/brashear/hargrove/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/BLD/examples'
make[1]: Leaving directory
`/brashear/hargrove/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/BLD/examples'
make[1]: Entering directory
`/brashear/hargrove/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/BLD/examples'
make[2]: Entering directory
`/brashear/hargrove/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/BLD/examples'
shmemcc -g hello_oshmem_c.c -o hello_oshmem
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld:
cannot find -ltorque
collect2: ld returned 1 exit status
make[2]: *** [hello_oshmem] Error 1
make[2]: Leaving directory
`/brashear/hargrove/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/BLD/examples'
make[2]: Entering directory
`/brashear/hargrove/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/BLD/examples'
shmemcc -g ring_oshmem_c.c -o ring_oshmem
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld:
cannot find -ltorque
collect2: ld returned 1 exit status
make[2]: *** [ring_oshmem] Error 1
make[2]: Leaving directory
`/brashear/hargrove/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/BLD/examples'
make[1]: *** [oshmem] Error 2
make[1]: Leaving directory
`/brashear/hargrove/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/BLD/examples'
make: *** [all] Error 2

Comparing the --show outputs (below) there are MANY more explicit -l
options for oshcc than mpicc.
The torque lib directory appears in both commands as:
   -Wl,-rpath -Wl,/usr/local/packages/torque/2.3.13_psc/lib

$ mpicc --show -g hello_c.c
gcc -g hello_c.c
-I/usr/users/6/hargrove/SCRATCH/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/INST/include
-pthread -Wl,-rpath -Wl,/usr/local/packages/torque/2.3.13_psc/lib
-Wl,-rpath -Wl,/usr/lib64 -Wl,-rpath
-Wl,/usr/users/6/hargrove/SCRATCH/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/INST/lib
-Wl,--enable-new-dtags
-L/usr/users/6/hargrove/SCRATCH/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/INST/lib
-lmpi

$ shmemcc --show -g hello_oshmem.c
gcc -std=gnu99 -g hello_oshmem.c
-I/usr/users/6/hargrove/SCRATCH/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/INST/include
-pthread -Wl,-rpath -Wl,/usr/local/packages/torque/2.3.13_psc/lib
-Wl,-rpath -Wl,/usr/lib64 -Wl,-rpath
-Wl,/usr/users/6/hargrove/SCRATCH/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/INST/lib
-Wl,--enable-new-dtags
-L/usr/users/6/hargrove/SCRATCH/OMPI/openmpi-trunk-linux-x86_64-uv-trunk/INST/lib
-loshmem -lmpi -lopen-rte -lopen-pal -lm -lnuma -lpciaccess -ldl -ltorque
-lxpmem -llustreapi -lrt -lnsl -lutil

-Paul

-- 
Paul H. Hargrove                          PHHargrove_at_[hidden]
Future Technologies Group
Computer and Data Sciences Department     Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900