Skip to content

Commit be76f43

Browse files
committed
Weak Scaling documentation
1 parent 2d35e82 commit be76f43

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

examples/3D_weak_scaling/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# 3D Weak Scaling
2+
3+
The [**3D_weak_scaling**](case.py) case depends on two parameters:
4+
5+
- **The number of MPI ranks** (_procs_): As _procs_ increases, the problem
6+
size per rank remains constant. _procs_ is determined using information provided
7+
to the case file by `mfc.sh run`.
8+
9+
- **GPU memory usage per rank** (_gbpp_): As _gbpp_ increases, the problem
10+
size per rank increases and the number of timesteps decreases so that wall times
11+
consistent. _gbpp_ is a user-defined optional argument to the [case.py](case.py)
12+
file. It can be specified right after the case filepath when invoking `mfc.sh run`.
13+
14+
Weak scaling benchmarks can be produced by keeping _gbpp_ constant and varying _procs_.
15+
16+
For example, to run a weak scaling test that uses ~4GB of GPU memory per rank
17+
on 8 2-rank nodes with case optimization, one could:
18+
19+
```console
20+
./mfc.sh run examples/3D_weak_scaling/case.py 4 -t pre_process simulation \
21+
-e batch -p mypartition -N 8 -n 2 -w "01:00:00" -# "MFC Weak Scaling" \
22+
--case-optimization -j 32
23+
```
24+

examples/3D_weak_scaling/case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
1212

1313
parser.add_argument("dict", type=str, metavar="DICT", help=argparse.SUPPRESS)
14-
parser.add_argument("gbpp", type=int, metavar="MEM", default=16, help="Adjusts the problem size per rank to fit into [MEM] GB of GPU memory")
14+
parser.add_argument("gbpp", type=int, metavar="MEM", default=16, help="Adjusts the problem size per rank to fit into [MEM] GB of GPU memory per GPU.")
1515

1616
ARGS = vars(parser.parse_args())
1717
DICT = json.loads(ARGS["dict"])

0 commit comments

Comments
 (0)