netcdf-c/libsrc4
Dennis Heimbigner ee509ff4f3 Re-Implement the nc_get/put_vars operations for netcdf-4 using the
corresponding HDF5 operations.

re: github issue https://github.com/Unidata/netcdf-c/issues/908
also in reference to https://github.com/pydata/xarray/issues/2004

The netcdf-c library has implemented the nc_get_vars and nc_put_vars
operations as element at a time. This has resulted in very slow
operation.

This pr attempts to improve the situation for netcdf-4/hdf5 files
by using the slab operations provided by the hdf5 library. The new
implementation passes the get/put vars stride information down to
the hdf5 slab operations.

The result appears to improve performance significantly. Some simple
tests on large 2-D arrays shows speedups in excess of 150.

Misc. other changes:
1. fix bug in ncgen/semantics.c; using a list's allocated length
   instead of actual length.
2. Added a temporary hook in the netcdf library plus a performance
   test case (tst_varsperf.c) to estimate the speedup. After users
   have had some experience with this, I will remove it, probably
   after the 4.7 release.
2018-05-22 16:50:52 -06:00
..
CMakeLists.txt merged changes from master 2018-05-08 12:13:03 -06:00
error4.c Primary change: add dap4 support 2017-03-08 17:01:10 -07:00
Makefile.am merged changes from master 2018-05-08 12:13:03 -06:00
nc4attr.c Re: github issues 2018-03-29 14:57:40 -06:00
nc4dim.c This completes (for now) the refactoring of libsrc4. 2018-03-16 11:46:18 -06:00
nc4dispatch.c Re-Implement the nc_get/put_vars operations for netcdf-4 using the 2018-05-22 16:50:52 -06:00
nc4grp.c This completes (for now) the refactoring of libsrc4. 2018-03-16 11:46:18 -06:00
nc4internal.c Follow-up trivial typos 2018-04-26 23:04:01 -04:00
nc4mem.c re: esupport MQO-415619 2018-05-03 21:02:32 -06:00
nc4memcb.c re: esupport MQO-415619 2018-05-03 21:02:32 -06:00
nc4printer.c Primary change: add dap4 support 2017-03-08 17:01:10 -07:00
nc4type.c This completes (for now) the refactoring of libsrc4. 2018-03-16 11:46:18 -06:00
nc4var.c Re-Implement the nc_get/put_vars operations for netcdf-4 using the 2018-05-22 16:50:52 -06:00
ncfunc.c moved HDF4 to its own dispatch layer 2018-02-08 06:20:58 -07:00
ncindex.c Re: github issues 2018-03-29 14:57:40 -06:00