Hi,

I would suggest to check the order of the libraries on the linking line. HDF5 
should probably be the first, then all MPI libraries, then all compression 
libraries. You may also try to use the h5pfc script (found under the bin 
directory of the HDF5 install directory) to compile and link your application.

Elena 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Elena Pourmal  The HDF Group  http://hdfgroup.org   
1800 So. Oak St., Suite 203, Champaign IL 61820
217.531.6112
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



On Dec 11, 2012, at 11:41 AM, Robert Seigel wrote:

> Hello,
> 
> I am trying to update a numerical model (RAMS) so that it has distributive 
> memory capabilities when run in parallel. I would like to do this using 
> PHDF5. Currently, RAMS uses MPI for the parallel computing, but it assembles 
> the grids on a single node before writing to HDF5 in serial. I have re-built 
> both MPI and HDF5 locally for this upgrade. Here is my problem:
> 
> While compiling RAMS with the new parallel HDF5 libraries, the loader stage 
> complains that within the HDF5 libraries it has "undefined reference to" MANY 
> MPI routines. If I look in the HDF5 .a libraries (using nm), I see the 
> references. I have tried adding MPI libraries to the loader  using -lxxx, but 
> that does not seem to solve my problem. Because of this, I have tried many 
> different configurations of the libraries. My latest configurations are:
> 
> MPI
> ./configure --prefix=/home/rseigel/mpich2-1.5-install --enable-romio 
> --enable-mpe 2>&1 | tee c.txt
> 
> HDF5
> ./configure --prefix=/home/rseigel/hdf5-1.8.10 --enable-fortran 
> --enable-parallel --enable-shared=no CFLAGS="-D_LARGEFILE_SOURCE 
> -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" 
> CC=/home/rseigel/mpich2-1.5-install/bin/mpicc
> 
> I have checked all of the paths in my environment and the makefile for RAMS 
> numerous times. Everything is okay from that standpoint. I am not sure what 
> to do next, as I do not know why there are undefined references. 
> 
> Thanks!
> Rob
> 
> Here are the loader errors:
> 
> /usr/local/pgi/linux86-64/8.0-4/bin/pgf90 -o rams-6.0-opt rammain.o -v 
> -Wl,-zmuldefs -Wl, -ldl -lc -lgcc_eh -lpthread -lsz rams-6.0-opt.a \
>         ./utils/libutils-2.4-opt.a -L./utils -lncarg-2.4  
> -L/home/rseigel/mpich2-1.5-install/lib -lmpich -lmpl -lmpichf90 -ltmpe -lampe 
> -lfmpich -llmpe -lmpe -lmpe_collchk -lmpe_f2cmpi -lmpe_nompi -lmpe_nompi_null 
> -lmpe_null -lmpichcxx -lopa -L/usr/lib64 -L/home/rseigel/hdf5-1.8.10/lib 
> -lhdf5 -L/usr/lib64 -lsz -lz -lm
> 
> /usr/bin/ld /usr/lib64/crt1.o /usr/lib64/crti.o 
> /usr/local/pgi/linux86-64/8.0-4/lib/trace_init.o 
> /usr/lib/gcc/x86_64-redhat-linux/4.1.2/crtbegin.o 
> /usr/local/pgi/linux86-64/8.0-4/lib/f90main.o -m elf_x86_64 -dynamic-linker 
> /lib64/ld-linux-x86-64.so.2 /usr/local/pgi/linux86-64/8.0-4/lib/pgi.ld 
> -L./utils -L/home/rseigel/mpich2-1.5-install/lib -L/usr/lib64 
> -L/home/rseigel/hdf5-1.8.10/lib -L/usr/lib64 
> -L/usr/local/pgi/linux86-64/8.0-4/lib -L/usr/lib64 
> -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 rammain.o -zmuldefs -ldl -lc 
> -lgcc_eh -lpthread -lsz rams-6.0-opt.a ./utils/libutils-2.4-opt.a -lncarg-2.4 
> -lmpich -lmpl -lmpichf90 -ltmpe -lampe -lfmpich -llmpe -lmpe -lmpe_collchk 
> -lmpe_f2cmpi -lmpe_nompi -lmpe_nompi_null -lmpe_null -lmpichcxx -lopa -lhdf5 
> -lsz -lz -lm -rpath /usr/local/pgi/linux86-64/8.0-4/lib -o rams-6.0-opt 
> -lpgf90 -lpgf90_rpm1 -lpgf902 -lpgf90rtl -lpgftnrtl -lnspgc -lpgc -lrt 
> -lpthread -lm -lgcc -lc -lgcc /usr/lib/gcc/x86_64-redhat-linux/4.1.2/crtend.o 
> /usr/lib64/crtn.o
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5AC.o): In function 
> `H5AC_propagate_flushed_and_still_clean_entries_list':
> H5AC.c:(.text+0xf03): undefined reference to `MPI_Error_string'
> H5AC.c:(.text+0xfdd): undefined reference to `MPI_Error_string'
> H5AC.c:(.text+0x10aa): undefined reference to `MPI_Error_string'
> H5AC.c:(.text+0x12ea): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5AC.o): In function 
> `H5AC_rsp__p0_only__flush_to_min_clean':
> H5AC.c:(.text+0x15a2): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5AC.o):H5AC.c:(.text+0x177c): more 
> undefined references to `MPI_Error_string' follow
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5Eint.o): In function `H5E_walk2_cb':
> H5Eint.c:(.text+0xa52): undefined reference to `MPI_Initialized'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5Eint.o): In function `H5E_walk1_cb':
> H5Eint.c:(.text+0xcc7): undefined reference to `MPI_Initialized'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpi.o): In function 
> `H5FD_mpi_comm_info_free':
> H5FDmpi.c:(.text+0x273): undefined reference to `MPI_Info_free'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpi.o): In function 
> `H5FD_mpi_comm_info_dup':
> H5FDmpi.c:(.text+0x337): undefined reference to `MPI_Info_dup'
> H5FDmpi.c:(.text+0x3c8): undefined reference to `MPI_Info_free'
> H5FDmpi.c:(.text+0x3ed): undefined reference to `MPI_Error_string'
> H5FDmpi.c:(.text+0x460): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpio.o): In function 
> `H5FD_get_mpio_atomicity':
> H5FDmpio.c:(.text+0xf2): undefined reference to `MPI_File_get_atomicity'
> H5FDmpio.c:(.text+0x12b): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpio.o): In function 
> `H5FD_set_mpio_atomicity':
> H5FDmpio.c:(.text+0x1c3): undefined reference to `MPI_File_set_atomicity'
> H5FDmpio.c:(.text+0x1e1): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpio.o): In function 
> `H5FD_mpio_truncate':
> H5FDmpio.c:(.text+0x29c): undefined reference to `MPI_File_set_size'
> H5FDmpio.c:(.text+0x2d3): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x35e): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpio.o): In function 
> `H5FD_mpio_flush':
> H5FDmpio.c:(.text+0x405): undefined reference to `MPI_File_sync'
> H5FDmpio.c:(.text+0x41a): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpio.o): In function 
> `H5FD_mpio_write':
> H5FDmpio.c:(.text+0x541): undefined reference to `MPI_File_write_at'
> H5FDmpio.c:(.text+0x55d): undefined reference to `MPI_Get_elements'
> H5FDmpio.c:(.text+0x573): undefined reference to `MPI_Type_size'
> H5FDmpio.c:(.text+0x63c): undefined reference to `MPI_File_set_view'
> H5FDmpio.c:(.text+0x681): undefined reference to `MPI_File_write_at_all'
> H5FDmpio.c:(.text+0x6a8): undefined reference to `MPI_File_set_view'
> H5FDmpio.c:(.text+0x6c1): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x773): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x81c): undefined reference to `MPI_File_write_at'
> H5FDmpio.c:(.text+0x835): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x8ad): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x920): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x9e7): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0xaae): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpio.o): In function 
> `H5FD_mpio_read':
> H5FDmpio.c:(.text+0xbc1): undefined reference to `MPI_File_read_at'
> H5FDmpio.c:(.text+0xbdd): undefined reference to `MPI_Get_elements'
> H5FDmpio.c:(.text+0xbf3): undefined reference to `MPI_Type_size'
> H5FDmpio.c:(.text+0xd1d): undefined reference to `MPI_File_set_view'
> H5FDmpio.c:(.text+0xd64): undefined reference to `MPI_File_read_at_all'
> H5FDmpio.c:(.text+0xd8d): undefined reference to `MPI_File_set_view'
> H5FDmpio.c:(.text+0xda6): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0xe47): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0xeca): undefined reference to `MPI_File_read_at'
> H5FDmpio.c:(.text+0xee3): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0xf5d): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0xfd0): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x1097): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x115e): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpio.o): In function 
> `H5FD_mpio_close':
> H5FDmpio.c:(.text+0x11dd): undefined reference to `MPI_File_close'
> H5FDmpio.c:(.text+0x120f): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpio.o): In function 
> `H5FD_mpio_open':
> H5FDmpio.c:(.text+0x1ecf): undefined reference to `MPI_File_open'
> H5FDmpio.c:(.text+0x1ee8): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x1f82): undefined reference to `MPI_Info_free'
> H5FDmpio.c:(.text+0x1fc3): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x203d): undefined reference to `MPI_File_close'
> H5FDmpio.c:(.text+0x216d): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x2231): undefined reference to `MPI_File_get_size'
> H5FDmpio.c:(.text+0x2253): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x22d9): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x2347): undefined reference to `MPI_File_set_size'
> H5FDmpio.c:(.text+0x2360): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x2442): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpio.o): In function 
> `H5Pget_fapl_mpio':
> H5FDmpio.c:(.text+0x2909): undefined reference to `MPI_Info_dup'
> H5FDmpio.c:(.text+0x29aa): undefined reference to `MPI_Error_string'
> H5FDmpio.c:(.text+0x2a1d): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpiposix.o): In function 
> `H5FD_mpiposix_truncate':
> H5FDmpiposix.c:(.text+0x1f8): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpiposix.o): In function 
> `H5FD_mpiposix_fapl_get':
> H5FDmpiposix.c:(.text+0x9c3): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpiposix.o): In function 
> `H5FD_mpiposix_fapl_copy':
> H5FDmpiposix.c:(.text+0xac2): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5FDmpiposix.o):H5FDmpiposix.c:(.text+0xe29):
>  more undefined references to `MPI_Error_string' follow
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5Smpio.o): In function 
> `H5S_obtain_datatype':
> H5Smpio.c:(.text+0x462): undefined reference to `MPI_Type_hindexed'
> H5Smpio.c:(.text+0x47b): undefined reference to `MPI_Error_string'
> H5Smpio.c:(.text+0x52a): undefined reference to `MPI_Error_string'
> H5Smpio.c:(.text+0x59d): undefined reference to `MPI_Error_string'
> H5Smpio.c:(.text+0x744): undefined reference to `MPI_Error_string'
> H5Smpio.c:(.text+0x7b7): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5Smpio.o): In function 
> `H5S_mpio_space_type':
> H5Smpio.c:(.text+0xecd): undefined reference to `MPI_Type_extent'
> H5Smpio.c:(.text+0x10a2): undefined reference to `MPI_Error_string'
> H5Smpio.c:(.text+0x1128): undefined reference to `MPI_Error_string'
> H5Smpio.c:(.text+0x1202): undefined reference to `MPI_Error_string'
> H5Smpio.c:(.text+0x1275): undefined reference to `MPI_Error_string'
> H5Smpio.c:(.text+0x1302): undefined reference to `MPI_Error_string'
> /home/rseigel/hdf5-1.8.10/lib/libhdf5.a(H5Smpio.o):H5Smpio.c:(.text+0x13a7): 
> more undefined references to `MPI_Error_string' follow
> pgf90-Fatal-linker completed with exit code 1
> 
> make: *** [rams-6.0-opt] Error 2
> 
> 
> 
> ____________________________
> Robert Seigel, Ph.D.
> Colorado State University
> Department of Atmospheric Science
> 1371 Campus Delivery
> Fort Collins, CO 80523
> (970) 491-8331
> [email protected]
> 
> 
> 
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Reply via email to