You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/UsersGuide/BuildingRunningTesting/FIRE.rst
+36-3Lines changed: 36 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -98,13 +98,44 @@ The fire module has the ability to print out additional messages to the log file
98
98
fire:
99
99
FIRE_PRINT_MSG: 1
100
100
101
-
The fire module now supports OpenMP parallelization. By default, parallelization is off, but it can be enabled by setting ``OMP_NUM_THREADS_FIRE`` to a value greater than 1. In testing with the default case (200x200 domain) we have observed a 10-25% speedup with ``OMP_NUM_THREADS_FIRE: 2`` vs 1, with only marginal additional speedup for ``OMP_NUM_THREADS_FIRE>2``. However, larger domains may benefit from additional parallel threads.
101
+
The fire module supports both OpenMP and MPI parallelization; they can be used individually or together. By default, parallelization is off, but it can be enabled at runtime with the following settings.
102
+
103
+
OpenMP parallelization can be activated by setting ``OMP_NUM_THREADS_FIRE`` to a value greater than 1.
102
104
103
105
.. code-block:: console
104
106
105
107
fire:
106
108
OMP_NUM_THREADS_FIRE: 2
107
109
110
+
MPI parallelization can be activated by setting ``FIRE_NUM_TASKS`` to a value greater than 1.
111
+
112
+
.. code-block:: console
113
+
114
+
fire:
115
+
FIRE_NUM_TASKS: 2
116
+
117
+
We tested several combinations of parallelization methods using a 15-hour one-way coupled (ATM->FIRE) forecast; the results are shown in the table below. As a summary, MPI parallelization shows more efficient speedup per core than OpenMP parallelization, though multiple combinations resulted in significant speedup. Scaling from single-core to 2 MPI tasks resulted in nearly linear speedup (45% reduction in wallclock time). It is likely that larger domains will benefit more from additional tasks, both for OpenMP and MPI.
118
+
119
+
.. list-table:: Tests of different parallelization options with 200x200 3km atmospheric grid, 200x200 100m fire grid
120
+
:header-rows: 1
121
+
:stub-columns: 1
122
+
123
+
* - Timings for parallel tests (s)
124
+
- MPI 1
125
+
- MPI 2
126
+
- MPI 4
127
+
* - OpenMP 1
128
+
- 2820.200802
129
+
- 1577.748477
130
+
- 1343.323408
131
+
* - OpenMP 2
132
+
- 2168.499091
133
+
- 1372.190139
134
+
- 1334.157103
135
+
* - OpenMP 4
136
+
- 1867.509120
137
+
- 1373.244105
138
+
- 1340.811422
108
139
109
140
Additional boundary conditions file
110
141
-----------------------------------
@@ -119,7 +150,9 @@ Once the file is acquired/created, you will need to specify its location in your
0 commit comments