E3SM-Project / scorpio

A high-level Parallel I/O Library for structured grid applications
Other
21 stars 16 forks source link

Very slow IO time when writing sub-hourly data #168

Open johnmauff opened 5 years ago

johnmauff commented 5 years ago

When sub-hourly data is turned on in CESM2, the write call gets progressively slower. There is what looks like a linear cost term that is based on the number of calls to PIO_write_darray. I believe it is due to the use of a single linked list in the subroutine "add_data_to_buffer" in the piodarray.F90.in file. Because each write is so small when generating sub-hourly data, the linked list file%data_list_top gets to be very long before the buffer data is actually written to disk. A reduction in the pio_buffer_size_limit appears to significantly increase IO performance because it reduces the maximum length of the linked list. Replacing a single linked list with a double linked list should resolve this issue while still maximizing the size of IO to disk.

rljacob commented 5 years ago

Similar issue in parent repo: https://github.com/NCAR/ParallelIO/issues/1339