Javascript must be enabled to continue!
Porting NEMO diagnostics to GPU accelerators
View through CrossRef
<p>This work makes part of an effort to make NEMO capable of taking advantage of modern accelerators. To achieve this objective we focus on port routines in NEMO that have a small impact on code maintenance and the higher possible overall time footprint reductions. Our candidates to port were the diagnostic routines, specifically <em>diahsb</em> (heat, salt, volume budgets) and <em>diawri</em> (Ocean variables) diagnostics. These two diagnostics correspond to 5% of the NEMO's runtime each on our test cases. Both can be executed in an asynchronous fashion allowing overlap between diagnostic GPU and other NEMO routines CPU computations. <br>We report a methodology to port runtime diagnostics execution on NEMO to GPU using CUDA Fortran and OpenACC. Both synchronous and asynchronous are implemented on <em>diahsb</em> and <em>diawri</em> diagnostics. Associated time step and stream interleave are proposed to allow the overlap of CPU execution of NEMO and data communication between CPU, and GPU.<br><br>In the case of constraint computational resources and high-resolution grids, synchronous implementation of <em>diahsb</em> and <em>diawri</em> show up to 3.5x speed-up. With asynchronous implementation we achieve a higher speed-up from 2.7x to 5x with <em>diahsb</em> in the study cases. The results for this diagnostic optimization point out that the asynchronous approach is profitable even in the case where plenty of computational resources are available and the number of MPI ranks is in the threshold of parallel effectiveness for a given computational workload. For <em>diawri</em> on the other hand, the results of the asynchronous implementation depart from the <em>diahsb</em>. In the <em>diawri</em> diagnostic module there are 30 times more datasets demanding pinned memory to overlap communication between CPU and GPU with CPU execution. Pinned memory attribute limits data management of datasets allocated on main memory, therefore makes possible to the GPU access to main memory, overlapping CPU computation. The result is a scenario where the improvement from offloading the diagnostic computation impacts on NEMO CPU general execution. Our main hypothesis is that the amount of pinned memory used decreases the performance on runtime data management, this is confirmed by the 7% increase of the L3 data cache misses in the study case. Although the necessity of evaluating the amount of datasets needed for asynchronous communication on a diagnostic port, the payout of asynchronous diagnostic may be worth given the higher speed-up values that we can achieve with this technique. This work proves that models such as NEMO, developed only for CPU architectures, can port some of their computation to accelerators. Additionally, this work explains a successful and simple way to implement an asynchronous approach, where CPU and GPU are working in parallel, but without modifying the CPU code itself, since the diagnostics are extracted as kernels for the GPU and the CPU is yet working in the simulation.</p>
Title: Porting NEMO diagnostics to GPU accelerators
Description:
<p>This work makes part of an effort to make NEMO capable of taking advantage of modern accelerators.
To achieve this objective we focus on port routines in NEMO that have a small impact on code maintenance and the higher possible overall time footprint reductions.
Our candidates to port were the diagnostic routines, specifically <em>diahsb</em> (heat, salt, volume budgets) and <em>diawri</em> (Ocean variables) diagnostics.
These two diagnostics correspond to 5% of the NEMO's runtime each on our test cases.
Both can be executed in an asynchronous fashion allowing overlap between diagnostic GPU and other NEMO routines CPU computations.
<br>We report a methodology to port runtime diagnostics execution on NEMO to GPU using CUDA Fortran and OpenACC.
Both synchronous and asynchronous are implemented on <em>diahsb</em> and <em>diawri</em> diagnostics.
Associated time step and stream interleave are proposed to allow the overlap of CPU execution of NEMO and data communication between CPU, and GPU.
<br><br>In the case of constraint computational resources and high-resolution grids, synchronous implementation of <em>diahsb</em> and <em>diawri</em> show up to 3.
5x speed-up.
With asynchronous implementation we achieve a higher speed-up from 2.
7x to 5x with <em>diahsb</em> in the study cases.
The results for this diagnostic optimization point out that the asynchronous approach is profitable even in the case where plenty of computational resources are available and the number of MPI ranks is in the threshold of parallel effectiveness for a given computational workload.
For <em>diawri</em> on the other hand, the results of the asynchronous implementation depart from the <em>diahsb</em>.
In the <em>diawri</em> diagnostic module there are 30 times more datasets demanding pinned memory to overlap communication between CPU and GPU with CPU execution.
Pinned memory attribute limits data management of datasets allocated on main memory, therefore makes possible to the GPU access to main memory, overlapping CPU computation.
The result is a scenario where the improvement from offloading the diagnostic computation impacts on NEMO CPU general execution.
Our main hypothesis is that the amount of pinned memory used decreases the performance on runtime data management, this is confirmed by the 7% increase of the L3 data cache misses in the study case.
Although the necessity of evaluating the amount of datasets needed for asynchronous communication on a diagnostic port, the payout of asynchronous diagnostic may be worth given the higher speed-up values that we can achieve with this technique.
This work proves that models such as NEMO, developed only for CPU architectures, can port some of their computation to accelerators.
Additionally, this work explains a successful and simple way to implement an asynchronous approach, where CPU and GPU are working in parallel, but without modifying the CPU code itself, since the diagnostics are extracted as kernels for the GPU and the CPU is yet working in the simulation.
</p>.
Related Results
On the programmability of multi-GPU computing systems
On the programmability of multi-GPU computing systems
Multi-GPU systems are widely used in High Performance Computing environments to accelerate scientific computations.
This trend is expected to continue as integrated GPUs will be i...
Efficient data movement in large-scale heterogeneous systems
Efficient data movement in large-scale heterogeneous systems
(English) Modern computer systems have become universally heterogeneous. Computer architects have addressed the slowdown of Moore’s Law and the end of Dennard scaling by incorporat...
Heat transfer in supercritical fluids: computational approaches & studies
Heat transfer in supercritical fluids: computational approaches & studies
(English) This thesis delves into investigating the complexities of heat transfer in supercritical fluids through the application of advanced theoretical and computational methodol...
CPU AND GPU (CUDA) TEMPLATE MATCHING COMPARISON / CPU IR GPU (CUDA) PALYGINIMAS VYKDANT ŠABLONŲ ATITIKTIES ALGORITMĄ
CPU AND GPU (CUDA) TEMPLATE MATCHING COMPARISON / CPU IR GPU (CUDA) PALYGINIMAS VYKDANT ŠABLONŲ ATITIKTIES ALGORITMĄ
Image processing, computer vision or other complicated opticalinformation processing algorithms require large resources. It isoften desired to execute algorithms in real time. It i...
Benchmarking GPU Passthrough Performance on Docker for AI Cloud System
Benchmarking GPU Passthrough Performance on Docker for AI Cloud System
The use of artificial intelligence (AI), which depends only on CPU resources, tends to result in longer execution times or CPU time. Especially when handling large amounts or compl...
Performance evaluation of NEMO4.2 with Paraver
Performance evaluation of NEMO4.2 with Paraver
The last release of the NEMO v4.2 ocean model includes many modifications that have a significant impact on the model performance. The goal of the work is to assess NEMO performanc...
MROM Scheme to Improve Handoff Performance in Mobile Networks
MROM Scheme to Improve Handoff Performance in Mobile Networks
Mobile Router (MR) mobility supported by Network Mobility Basic Support Protocol (NEMO BS) is a Mobile IPv6 (MIPv6) extension that supports Host Mobility. Proposed Multihoming and ...

