Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/feature/tclune/#3146-merge-field…
Browse files Browse the repository at this point in the history
…-subdirs' into feature/tclune/#3146-merge-field-subdirs
  • Loading branch information
tclune committed Nov 4, 2024
2 parents 3ee5edc + 871b3d5 commit 88f2800
Show file tree
Hide file tree
Showing 5 changed files with 623 additions and 46 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- Added commandline options to `checkpoint_benchmark.x` and `restart_benchmark.x` to allow for easier testing of different configurations. Note that the old configuration file style of input is allowed via the `--config_file` option (which overrides any other command line options)
- Update ESMF version for Baselibs to match that of Spack for consistency
- Update `components.yaml`
- ESMA_env v4.32.0
Expand Down
39 changes: 30 additions & 9 deletions benchmarks/io/checkpoint_simulator/README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,40 @@
This benchmark simulates writing a series of 3D variables of a given cubed-sphere resolution to a file using the same strategies as used by the real checkpoint code in MAPL

The code has the following options and needs an ESMF rc file named checkpoint\_benchmark.rc
The code has the following command line options:
```
optional arguments:
-h, --help This message.
--config_file The configuration file to use
--nx The number of cells in the x direction (default: 4)
--ny The number of cells in the y direction (default: 4)
--im_world The resolution of the cubed sphere (default: 90)
--lm The number of levels in each 3D variable (default: 137)
--num_writers The number of processes that will write (default: 1)
--num_arrays The number of 3D arrays to write (default: 5)
--ntrials The number of trials to run (default: 3)
--split_file Split the file into multiple files (default: do not split)
--gather_3d Gather all levels at once instead of one at a time (default: gather one at a time)
--write_barrier Add a barrier after every write (default: no barrier)
--static_data Use static data (rank of process) instead of random data (default: random data)
--suppress_writes Do not write data (default: write data)
--write_binary Write binary data instead of NetCDF (default: write NetCDF)
--no_chunking Do not chunk output (default: chunk the output)
```

NOTE 1: If you specify a `config_file` it must be an ESMF Config file with the following options:

- "NX:" the x distribution for each face
- "NY:" the y distribution for each face
- "IM\_WORLD:" the cube resolution
- "LM:" the number of levels
- "NUM\_WRITERS:" the number of writing processes either to a single or independent files
- "NUM\_ARRAYS:" the number of 3D variables to write to the file
- "CHUNK:" whether to chunk, default true
- "GATHER\_3D:" gather all levels at once (default is false which means a level at a time is gathered)
- "SPLIT\_FILE:" default false, if true, each writer writes to and independent file
- "WRITE\_BARRIER:" default false, add a barrier before each write to for synchronization
- "DO\_WRITES:" default true, if false skips writing (so just an mpi test at that point)
- "NTRIALS:" default 1, the number of trials to make writing
- "RANDOM\_DATA:" default true, if true will arrays with random data, if false sets the array to the rank of the process
- "CHUNK:" whether to chunk, default `.true.`
- "GATHER\_3D:" gather all levels at once (default is `.false.` which means a level at a time is gathered)
- "SPLIT\_FILE:" default `.false.`, if `.true.`, each writer writes to and independent file
- "WRITE\_BARRIER:" default `.false.`, add a barrier before each write to for synchronization
- "DO\_WRITES:" default `.true.`, if `.false.` skips writing (so just an mpi test at that point)
- "NTRIALS:" default 3, the number of trials to make writing
- "RANDOM\_DATA:" default `.true.`, if `.true.` will arrays with random data, if `.false.` sets the array to the rank of the process

Note that whatever you set NX and NY to the program must be run on `6*NX*NY` processors and the number of writers must evenly divide `6*NY`
NOTE 2: that whatever you set NX and NY to the program must be run on `6*NX*NY` processors and the number of writers must evenly divide `6*NY`
Loading

0 comments on commit 88f2800

Please sign in to comment.