Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Allow specifying the order that the FFTs will be performed in. This allows optimization based on which data dimensions will be more restricted than others.
Add command line parameters to
bench.py
to allow specifying which FFT dimensions should be performed before, and after, the distdl repartition.For example, consider processing all of the spatial dimensions before the repartition, and process the time dimension after.
To do this, pass one of the following to bench.py:
--fft-order-before 2 3 4
,--fft-order-after 5
,--fft-order-before 2 3 4 --fft-order-after 5
For 4-dimensional data, these all mean the same thing. (If one side is omitted, it will be calculated as the complement of the other.)
If you don't specify either of these parameters, you get the same default as before: do 4 and 5, then repartition, then do 2 and 3. Since the actual ffts count downward, this default causes the time dimension to be processed first. If the time dimension has more modes per data element, compared to the other dimensions, then this will be inefficient.
The fft dimension settings are added to the benchmark output filenames, so multiple experiments can be run and the results will be kept separate. (These filenames are getting pretty long, though!)
TODO:
gen_scripts.py
job sizes as neededxyz
processing but some ranks are unneeded for the time/weight part