hpc / hpc/ior

Cannot build with backends other than default ones

Open
#421 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
487
Forks
200
Avg merge
1d 21h
Merged PRs (30d)
2

Description

I'm trying to build IOR with some backends. So far I tried HDF5, Parallel NetCDF, and AIO, and I don't manage to compile IOR with any of them.

HDF5

I have the hdf5 package installed via spack and loaded, with the +mpi variant.

If I do

$ ../configure --with-hdf5`

The configure process runs without any error, however the make command fails with this error:

Making all in .
  CC       ior-aiori-HDF5.o
../../src/aiori-HDF5.c:25:10: fatal error: hdf5.h: No such file or directory
   25 | #include <hdf5.h>

If I do

$ ../configure --with-hdf5=`spack location -i hdf5`

Then IOR simply doesn't compile ior-aiori-HDF5.c and the HDF5 backend isn't available when running IOR.
Note that spack location -i hdf5 correctly gives me the location where HDF5 is installed.

The latter seems normal per the configure.ac file, which has AM_CONDITIONAL([USE_HDF5_AIORI], [test x$with_hdf5 = xyes]), so it doesn't expect a path, only "yes" or "no" (or just --with-hdf5) however I don't know why it doesn't find HDF5 when it's loaded.

With the former (just passing --with-hdf5, I can see this in the log:

checking for H5Pset_all_coll_metadata_ops... no

which corresponds to this in the configure.ac file:

AM_COND_IF([USE_HDF5_AIORI],[
        AC_DEFINE([USE_HDF5_AIORI], [], [Build HDF5 backend AIORI])
        AC_SEARCH_LIBS([H5Pset_all_coll_metadata_ops], [hdf5])
        AC_CHECK_FUNCS([H5Pset_all_coll_metadata_ops])
])

Yes I can confirm with nm that the installed hdf5 library does have this symbol, and it's in the headers as well.

Parallel NetCDF

I have the parallel-netcdf package install via spack and loaded.

If I do

$ ../configure --with-ncmpi

The configure command fails with this error:

configure: error: --with-ncmpi was given but pnetcdf.h not found

If I do

../configure  --with-ncmpi=`spack location -i parallel-netcdf`

The configure command runs fine, but aiori-NCMPI.c is not compiled and the NetCDF backend isn't available to IOR.

Once again, it seems that the configure.ac file is not expecting a path, and even though Parallel NetCDF is installed, IOR does not find it when passing just --with-ncmpi.

AIO

I have the libaio package installed via spack, and loaded.

If I do

$ ../configure --with-aio

The configure command runs fine, but the make command fails with this error:

../../src/aiori-aio.c:10:10: fatal error: libaio.h: No such file or directory
   10 | #include <libaio.h>

Once again, if I provide the path to libaio as --with-aio=... then configure runs fine but does not compile the AIO backend.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with configure.ac and the reported backend sources: src/aiori-HDF5.c, src/aiori-NCMPI.c, and src/aiori-aio.c. Reproduce the configure and make commands with the Spack installations, then inspect the configure checks and generated build conditions. Done means supported HDF5, Parallel NetCDF, and AIO backends are detected and compiled when their installations are provided.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.