[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netCDF #AWC-509858]: H5Fflush not found
- Subject: [netCDF #AWC-509858]: H5Fflush not found
- Date: Thu, 16 May 2013 10:56:09 -0600
Hi Gabe,
> I'm trying to get some parallel IO support through netCDF but the
> installation is killing me. I am running Ubuntu 13.04 and couldn't find a
> package online that supports parallel netCDF (there is libhdf5-mpich2-dev
> but nothing like that for netCDF).
>
> So, I tried to build it myself. First I tried to use the HDF5 package and
> just build netCDF but it could find the HDF5 libraries. So I removed the
> package and built HDF5 (and zlib) but the netCDF configure script still
> can't find the hdf5 library. Here is the command I used:
Note that HDF5 libraries have to be built to support parallel I/O in order for
parallel I/O to be enabled for netCDF-4. This is typically accomplished by
configuring with CC=mpicc, where for me mpicc is a wrapper around gcc:
http://www.unidata.ucar.edu/software/netcdf/docs/build_parallel.html
As an example, here's what I just used for hdf5-1.8.11:
$ H5DIR=/machine/russ/installs/hdf5-1811-par
$ CC=mpicc ./configure --prefix=${H5DIR} && make check install
The resulting installs/lib directory has the libraries as well as a
libhdf5.settings file that lists features of the library and contains this line
when
parallel I/O is enabled:
Parallel HDF5: mpicc
Then I built netcdf-4.3.0 thusly, (which only found H5Fflush when I included the
LIBS=-ldl setting, for some reason I don't understand):
$ LIBS=-ldl CC=mpicc CPPFLAGS=-I${H5DIR}/include LDFLAGS=-L${H5DIR}/lib
./configure --enable-parallel-tests --prefix=/machine/russ/installs/nc430-par
&& make check install
I'm adding a mention of the necessity for "LIBS=-ldl" to the document above, but
I would really like to know why it seems to be necessary and is not
automatically
supplied by the configure script ...
The above may work for you, but still didn't complete successfully for me,
instead
resulting in a linking error having to do with trying to use shared libraries:
/usr/bin/ld: /machine/russ/installs/hdf5-1811-par/lib/libhdf5_hl.a(H5DS.o):
relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a
shared object; recompile with -fPIC
/machine/russ/installs/hdf5-1811-par/lib/libhdf5_hl.a: could not read
symbols: Bad value
It turns out the HDF5 configure disables shared libraries when enabling
parallel I/O,
so I finally had to add "--disable-shared" as a configure option to get a
successful
parallel I/O build:
$ LIBS=-ldl CC=mpicc CPPFLAGS=-I${H5DIR}/include LDFLAGS=-L${H5DIR}/lib
./configure --disable-shared --enable-parallel-tests
--prefix=/machine/russ/installs/nc430-par && make check install
By the way, if you get that working, you should also be able to use
parallel-I/O
on netCDF classic format files if you also install the pnetcdf library from
Argonne/Northwestern in a place where configure can find it and add
"--enable-pnetcdf" to the above configure command.
Also, we're currently experiencing some sort of test server failure for the
remote tests, so if you're going to try this right away, you may want to add
--disable-dap-remote-tests to the configure options.
--Russ
> $ CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib
> LD_LIBRARY_PATH=/usr/local/lib CXX=null FC=null ./configure
> --prefix=/usr/local --enable-netcdf-4 --enable-parallel-tests
>
> and here is the configure script response:
>
> checking for library containing H5Fflush... no
> configure: error: Can't find or link to the hdf5 library. Use
> --disable-netcdf-4, or see config.log for errors.
>
> I've attached the config.log. Any help would be appreciated.
>
> Thanks,
>
> Gabriel D Weymouth
> SMMI Lecturer
> The University of Southampton
> Highfield Campus, Building 28, Room 2021
> Southampton, SO17 1BJ, UK
>
>
> Hello,
>
> I'm trying to get some parallel IO support through netCDF but the
> installation is killing me. I am running Ubuntu 13.04 and couldn't find a
> package online that supports parallel netCDF (there is libhdf5-mpich2-dev
> but nothing like that for netCDF).
>
> So, I tried to build it myself. First I tried to use the HDF5 package and
> just build netCDF but it could find the HDF5 libraries. So I removed the
> package and built HDF5 (and zlib) but the netCDF configure script still
> can't find the hdf5 library. Here is the command I used:
>
> $ CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib
> LD_LIBRARY_PATH=/usr/local/lib CXX=null FC=null ./configure
> --prefix=/usr/local --enable-netcdf-4 --enable-parallel-tests
>
> and here is the configure script response:
>
> checking for library containing H5Fflush... no
> configure: error: Can't find or link to the hdf5 library. Use
> --disable-netcdf-4, or see config.log for errors.
>
> I've attached the config.log. Any help would be appreciated.
>
> Thanks,
>
> Gabriel D Weymouth
> SMMI Lecturer
> The University of Southampton
> Highfield Campus, Building 28, Room 2021
> Southampton, SO17 1BJ, UK
>
>
Russ Rew UCAR Unidata Program
address@hidden http://www.unidata.ucar.edu
Ticket Details
===================
Ticket ID: AWC-509858
Department: Support netCDF
Priority: Normal
Status: Closed