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
NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.