Parallel HDF5 support

Hi everyone,
I would like to add parallel HDF5 support to fesapi and I’m wondering what is the best way to do so.
Just looking at the fesapi code I would say that I need to do is something down the line:

  • add a custom HDFProxy to manage the added requirement of the MPI communicator
  • manage the data access property list within the custom HDFProxy for independent/collective IO
  • create a custom HDFproxy builder to be used by the EpcDocument class

not sure if I also need to customize the EpcDocument class to integrate the parallel HDFProxy.
btw has anyone already tried to do parallel IO by using fesapi? Do you have any design suggestions?

Hi Mario,

As far as I know, only one of our adopter uses parallel HDF5 for reservoir simulation outputs.
This adopter did/does not want to share their code about that. But, I think you understood perfectly what they have brought to fesapi for being able to create their own (proprietary) HdfProxy which deals with parallelization.

I think your 3 points are sufficient.

You should not have to change anything in EPC Document. The design should have been done to allow other people to create their own HDF proxy without having to change anything in Fesapi. But, to be honest, I personally never tried, I just verified that it would not screw up “normal” fesapi.

I have not really thought about it so the short answer is no. To me, the design looks a lot C and not really C++, that’s my only feedback for now (which might be untrue since I did not study it a lot).

Hi Philippe,
thank you so much for your suggestions.
I’ll update the topic with my findings. I really hope I will be able to share the actual code of the implementation (need to ask the management for that).