-
Notifications
You must be signed in to change notification settings - Fork 263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow users to specify the use of the DIRECT driver #2236
Comments
Since we use a couple of file drivers already, this is certainly possible. |
Is PR 2066 a possible solution when it gets integrated? |
Do you mean to ask: The answer is yes. |
A couple of questions: |
Is this the driver to which you refer? |
yes. I guess my original reference to the official documentation was missed. |
The difference is subtle, but eventually you get down deep in thesource code. H5FDSec2 on the left, H5FDDirect On the right
I think there are other differences too, but the https://github.com/HDFGroup/hdf5/blob/develop/src/H5FDsec2.c#L329 |
Sorry, do you want Direct or do you want SEC2? |
SEC2 is the default. Direct is the one I'm requesting. |
(I've definitely been in the HDF5 weeds for too long, sorry for the jargon) |
I see. Anyway, This will require some thinking. Solution will not be soon. |
Cross referencing other benchmarks I ran: |
I must say that something I found rather annoying when building support for this in h5py was that the direct driver symbols are not always visible. This means that you have to selectively enable (and disable!) them at compile time. |
Not sure I follow; can you elaborate? |
On conda forge, I compiled hdf5 with https://github.com/conda-forge/hdf5-feedstock/blob/master/recipe/build.sh#L12 The command:
However,
This means that at compile time you have to detect the capabilities of the underlying hdf5 library, and use macros to enable the appropriate sections of code within the netcdf library (or some other dynamic linking mechanism). |
I see. |
This is somewhat a followup to: #2177
In order to achieve maximum performance on writing large data blocks, I had to do a few things:
With #2177 approaching being fixed #2206
I'm hoping that we can provide users to use different virtual file drivers.
The DIRECT driver fapl documention is:
https://support.hdfgroup.org/HDF5/doc/RM/H5P/H5Pset_fapl_direct.htm
Without the DIRECT driver, on linux, I'm limited to about 1GB/s.
With the DIRECT driver, on linux, I can reach read/write speeds that are limited by the PCIe Interface and the SSD reaching up to 3GB/s.
A secondary effect is that it bypasses the operating system file cache, so the operating system doesn't need to spend time evicting it (or other files) during large disk reads/writes.
Thank you for considering this feature.
I presume that the changes would have to provide a path similar to
In the file:
libhdf5/hdf5create.c
andlibhdf5/hdf5open.c
.Let me know how I can help get this through.
For reference, here is my PR to h5py that exposes the same feature: h5py/h5py#2041
The text was updated successfully, but these errors were encountered: