Draft: Region per file storage strategy#287
Conversation
b2a04b2 to
36cdffb
Compare
f98bb9e to
79a45b9
Compare
a3ae926 to
844ae19
Compare
|
We might want to compare the performance between the storage strategies before merging. |
|
@TheAssembler1 do you have any updates on this PR? |
|
Object level property for setting the storage strategy. Add documentation for setting the storage strategy. Add performance numbers. |
8b02ce2 to
597bc3b
Compare
PDC Writeout Strategy Benchmark (cache=ON, Perlmutter)
Table 1: Client Operation Times (avg across 5 steps)All times in seconds.
Config: 8,388,608 particles/rank, 5 steps, 20s sleep between steps, cache=ON, Lustre 256 OSTs.
Incomplete configs: |
|
Writeout optimization: increased region slice size from 4 MB to 128 MB for STORE_FLATTENED_REGION_PER_FILE. Tested on Perlmutter with 1 server, 16 clients, 8388608 particles/rank, 5 steps, 20s sleep, cache=ON. The larger slice size reduces the number of individual file flush operations the server has to perform per object, which significantly cuts per-region flush time and total server drain time at shutdown.
|
Adds the following
enumso the storage strategy can be selected:The
STORE_REGION_BY_REGION_SINGLE_FILEis the default strategy. TheSTORE_FLATTENED_REGION_PER_FILEis the new strategy which stores each region of an object in a separate file. The region size the object is sliced into is decided in:By default it will try to slice the object into regions that are 4 MB in size by halving the largest dimension of the object iteratively until within the <= 4 MB.
This is set here
uint64_t max_bytes_per_file = 4ULL * 1024 * 1024;within thePDC_shrink_file_dimsfunction.