Skip to content
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

Enabling netcdf deflation in CMOR output files #57

Closed
durack1 opened this issue May 31, 2016 · 8 comments
Closed

Enabling netcdf deflation in CMOR output files #57

durack1 opened this issue May 31, 2016 · 8 comments
Milestone

Comments

@durack1
Copy link
Contributor

durack1 commented May 31, 2016

I am hoping to use the default netcdf4 deflation in output files written by CMOR. Is this possible using the python interface?

@durack1 durack1 added this to the 3.0 milestone May 31, 2016
@durack1
Copy link
Contributor Author

durack1 commented Jun 3, 2016

@dnadeau4 following our discussion today here are the discussion points:

  • What should defaults be, speed of read vs file sizes?
  • Should shuffling and chunking be enabled by default?
  • How should a user specify deflation (in the CMIP6_Amon.json tables) or in the CMOR3 driver file (my preference is driver file, the tables should only contain information not runtime options for CMOR3)

We'll need to consult with @taylor13 to finalize the default behavior of CMOR3

@durack1
Copy link
Contributor Author

durack1 commented Jun 6, 2016

@doutriaux1 has comments about this - regarding "standards". Long story short, a user should be able to over-ride the Table default at runtime, however including the attributes deflate, deflate_level and shuffle in the Tables ensures that across variables the same default compression is applied regardless of whether the CMOR user is aware of the deflation functionality or not.

@taylor13
Copy link
Collaborator

taylor13 commented Jun 7, 2016

Balaji is strongly advising for us to check out performance issues. GFDL
has all but ruled out any sort of compression. We'll talk Wednesday.

On 6/6/16 12:40 PM, Paul J. Durack wrote:

@doutriaux1 https://github.com/doutriaux1 has comments about this -
regarding "standards". Long story short, a user should be able to
over-ride the Table default at runtime, however including the
attributes |deflate|, |deflate_level| and |shuffle| in the Tables
ensures that across variables the same default compression is applied
regardless of whether the CMOR user is aware of the deflation
functionality or not.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#57 (comment), or
mute the thread
https://github.com/notifications/unsubscribe/AEwxn9qRjJFGX3eaq_1qtoZQCNIpUh3Fks5qJHefgaJpZM4Iqtd1.

@durack1
Copy link
Contributor Author

durack1 commented Jun 8, 2016

@dnadeau4 has this implemented in 3.0.6 with the following (python) notation:

cmor.set_deflate(varid,1,1,1) ; # shuffle=1,deflate=1,deflate_level=1 ; CMOR 3.0.6+
cmor.write( ...

@dnadeau4
Copy link
Collaborator

dnadeau4 commented Jun 8, 2016

You can put the shuffle/deflation flag in the tables or call cmor.set_deflate. I have also add the API to C and Fortran. By default everything is netcdf3, I would like to default to netcdf4 with no compression.

@durack1
Copy link
Contributor Author

durack1 commented Jun 8, 2016

@dnadeau4 I think defaulting to netcdf4 is a good idea - it is the requested format for CMIP6 as far as I know

@durack1
Copy link
Contributor Author

durack1 commented Jun 8, 2016

Just FYI, here is what the file sizes look like using various deflate_level (level=X) flags with the AMIP boundary forcing datasets (1x1 lat/lon grid and 1752 timesteps):

variable cdms2 deflated CMOR3 no-deflation CMOR3 level=1 CMOR3 level=3 CMOR3 level=9
areacello 32.8KB 303.7KB 41.4KB - -
siconc 29.3MB 433.1MB 44.6MB 43.2MB 39.9MB
siconcbcs 75.2MB 433.1MB 73.0MB 72.3MB 69.6MB
tos 225.9MB 433.1MB 177.1MB 174.8MB 171.3MB
tosbcs 239.2MB 433.1MB 185.1MB 182.6MB 178.4MB

It would be useful to have associated timing/CPU load equivalents to validate the statement by Balaji

@dnadeau4
Copy link
Collaborator

create test Test/cmor_speed_and_compression_03.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants