-
Notifications
You must be signed in to change notification settings - Fork 267
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
re-implement the nc_def_var_szip() function, including for parallel I/O #1589
Conversation
What is the recommended method for a NetCDF client to check whether the library they are linking too support SZIP compression? Should I check based on version, or ?. I don't seen anything in |
Of course you can try to invoke nc_def_var_szip and it will fail. |
Ed asks if szip should be in the dispatch table. |
I think Dave is right; the ifdef flags for szip are wrong. |
@DennisHeimbigner actually szip is not like any other filter (except zlib). For example, the existing code handles setting of the szip filter with nc_def_var_filter() differently from setting other filters. The szip code is checked for, and H5Pset_szip() is called instead of H5Pset_filter(). Also, netcdf filters do not currently allow parallel, so if I set this through nc_def_var_filter() it would disallow parallel I/O, which works, and works very well. It's necessary, to achieve performance. So we definitely don't want to limit szip (or other filters) to sequential-only builds. Also, also, the current filter implementation seems to only allow one filter. We are intending to add a bit-grooming filter for HDF5, and if we want to use that filter with szip we need szip to be handled separately, or filters to handle multiple filters. Our config.h has:
Do we think I should be using something else? |
Also @DennisHeimbigner WRT moving prototype to netcdf_filter.h: I will do so. |
I don't think this will allow me to |
@gsjaardema OK I see what you mean. Standby and I will add. Also I need to resolve the conflict, and see if Travis test are back up and running again... |
@gsjaardema thanks for pointing this out. I have added NC_HAS_SZIP_WRITE and NC_HAS_PAR_FILTERS to netcdf_meta.h, and similar fields to libnetcdf.settings. |
@WardF this PR is now ready to merge. Thanks! |
Looks great, thanks! |
Fixes #1546
Fixes #1602
In this PR I re-add the old nc_def_var_szip() function.
The capability of using szip compression, when supported by HDF5, was already present in the library (though not mentioned in the documentation). This PR adds the old function to help users achieve this.
The code has also been changed so that parallel I/O works with szip. This is fully supported by HDF5, we just need to let it work.
I have deferred the question of whether this function should be added to the dispatch table. @DennisHeimbigner, do you agree that it should be?
After this PR is merged I will add support in the Fortran APIs.
This PR also includes open PR #1582
My travis runs are all failing because of the remote access tests. I believe you guys are working on that problem...