output of memory requirements #576
-
Dear Neks, I've been using Nek5000 (v17) and want to switch to NekRS (v23). Background to my below question In NekRS, I found the option to pre-compile a job for a given (maximum) number of MPI tasks. Unfortunately, this does not output the resulting memory usage. Instead, I can submit a batch job to run the simulation and find an output of
Question Relevance of the question I would appreciate any help or advice. Best, |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
Estimating memory usage is complex and depends on various factors, such as solver settings and the number of MPI ranks. Additionally, there might be two different memory spaces: device and host. Keep in mind that besides the memory consumed by nekRS itself, several other components such as MPI, GSLIB, nek5000 (required for legacy support), and HYPRE also allocate memory. As a rule of thumb, a good starting point is to assume 1GB of device memory and 0.2GB of host memory per 1000 elements (using N=7). |
Beta Was this translation helpful? Give feedback.
-
How did you obtain these memory figures?On 11 Jul 2024, at 20:08, turbulentphil ***@***.***> wrote:
Meanwhile I performed some test RBC simulations with N=7 and 640,000 spectral elements on JUWELS Booster and Cluster. I would like to share the results since this can be of help for others that come across the same question.
CUDA backend: Running the simulation on 4 nodes on JUWELS Booster required in total 551 GB device and 476 GB host memory.
CPU backend: Running the identical simulation again on 16 nodes of JUWELS Cluster required in total 1,472 GB memory.
This breaks down to
0.9 GB of device memory and 0.8 GB of host memory (CUDA backend), or
2.3 GB memory usage per 1,000 spectral elements (CPU backend)
per 1,000 spectral elements at N=7.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
Estimating memory usage is complex and depends on various factors, such as solver settings and the number of MPI ranks. Additionally, there might be two different memory spaces: device and host. Keep in mind that besides the memory consumed by nekRS itself, several other components such as MPI, GSLIB, nek5000 (required for legacy support), and HYPRE also allocate memory.
As a rule of thumb, a good starting point is to assume 1GB of device memory and 0.2GB of host memory per 1000 elements (using N=7).