Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Question about build options for pre-requisite libraries

RSAPIAIN_DMC

New member
Good morning from Chile.

I'm in the process of building MPAS, and it seems that I would require custom-tailored compilations of:
- HDF5
- netCDF
- netCDF-Fortran
- PnetCDF

And it seems I would also require netCDF-CXX.

I would like to know for HDF5:
  1. If in HDF5, would it be necessary to enable C++ and Fortran bindings?
  2. In HDF5, is --enable-parallel required ? (because enabling this, is incompatible with C++/Fortran bindings, unless you do --enable-unsupported)

Regarding netCDF and PnetCDF, they would have some sort of circular dependency... or:
  • Do I build PnetCDF first, without netCDF4 support?
  • Then build netCDF4 referencing PnetCDF as include?
Also, for netCDF4, which configure-options would be required to have MPAS-atmosphere to have a good performance?

Thank you in advance for the help
 
Hello!

  1. If in HDF5, would it be necessary to enable C++ and Fortran bindings?
  2. In HDF5, is --enable-parallel required ? (because enabling this, is incompatible with C++/Fortran bindings, unless you do --enable-unsupported)
You're on the right track, --enable-parallel is required. I haven't turned on --enable-unsuported in installs I've done.

And it seems I would also require netCDF-CXX
Not to my knowledge, I've only needed to install netCDF-C and netCDF-F

  • Do I build PnetCDF first, without netCDF4 support?
  • Then build netCDF4 referencing PnetCDF as include?
This is what I've done! First build PnetCDF with ./configure --prefix=${LIBBASE} (LIBBASE is the directory I put all these libraries into). Then build netCDF-C with commands like:

Code:
export CPPFLAGS="-I${LIBBASE}/include"
export LDFLAGS="-L${LIBBASE}/lib"
./configure --prefix=${LIBBASE}  --disable-dap --enable-netcdf4 --enable-pnetcdf \
  --enable-cdf5 --enable-parallel-tests --disable-shared
make
make install

And netCDF-F:
Code:
export LIBS="-L${LIBBASE}/lib -lnetcdf -lpnetcdf -lhdf5_hl -lhdf5 -lm -lz -lcurl"
./configure --prefix=${LIBBASE} --enable-parallel-tests --disable-shared
make
make install

I'm unsure about the best options to netCDF for performance.
 
Hello.

Thank you very much for the answer... it will help us a lot.

I only have another couple questions about the HDF5 and enable-parallel:
Using intel 2023.2 classic compilers (without OpenMPI or MPICH, just the intel MPI), I'm having these issues.

Even setting CC=mpiicc FC=mpiifort before configuring (or even CC=icc MPICC=mpiicc

1.- Test, parallel;
-- t_2Gio fails with an MPI error after some time (timeout? it algo happens with GOMPI-2022b stacks but is a bit more explicit on the timeout terminatino)
All the other tests, run fine.

2.- Even compiled with --enable-parallel (on intel 2023.2), when configuring NetCDF-C, it does not detect HDF5 as parallel-build (installed, in libraries vars, path properly set, HDF5 var set to the release-dir, etc)
I will try the specific include-directives that you mention in this case


I need to build with intel, because by some obscure reason (using easybuild 4.8.2 and modules), rockylinux9-system SLURM 23.2, when I enqueue jobs with sbatch, I cannot run with 'srun' the required binaries (mpirun executes fine)... And last time I used a long simulation with mpirun (with gompi-stack), it crashed the cluster (a shared disk array); and I can´t seem to find the proper includes/configuration options for OpenMPI to work with my slurm installation.

Kind regards,
 
Top