Opened 3 years ago

Closed 20 months ago

#1943 closed Task (fixed)

HPC-02(2017WP)_Francesca Development of the NEMO hybrid parallel version based on MPI/OpenMP

Reported by: mocavero Owned by: francesca
Priority: normal Milestone: 2018 WP
Component: OCE Version: trunk
Severity: minor Keywords:
Cc: mocavero Review: failed
MP ready?: no
Progress: Hybrid fine-grained and coarse-grained approaches have been tested and results have been discussed within the HPC-WG (see Conclusion section). No development branch to be included in NEMO 4.0.

Description (last modified by francesca)

Context

Evaluation of the scalability improvement due to the introduction of a second level of parallelism in NEMO based on the MPI+X model (where X is OpenMP). A new coarse-grained approach is evaluated in order to improve the efficiency of the fine-grained version developed during 2016.

Implementation

  1. the new ZDF package, rewritten by Gurvan is considered as test case (2017) —> done
  2. a single OpenMP parallel region that includes all the ZDF packages (2017) —> done
  3. implementation of a module for the OpenMP horizontal decomposition; introduction of OpenMP directives within the ZDF manager (2017) —> done
  4. tests of restartability and reproducibility on GYRE_PISCES (2017) —> done
  5. definition of the computational performance test plan and performance evaluation on different HPC systems (2017) —> done
  6. discussion with the NEMO ST and HPC-WG (2017) —> done
  7. extension of the approach to the tracers advection (2018) —> done
  8. definition of the computational performance test plan and performance evaluation on CMCC HPC system (2018) —> done
  9. discussion with the HPC-WG (2018) —> done

Conclusions

The introduction of the OpenMP directives, following the fine grained or course grained approach, heavily impacts on code maintainability. The effort required from the ocean models developers to maintain the NEMO code with the OpenMP support is not rewarded by the improvement of the code performance. The development of the second level of parallelisation based on shared memory will be reconsidered when new code refactoring more suitable for OpenMP will be found. In this regards, the tiling approach that will be investigated in 2019 in the context of the IMMERSE project could reduce the impact of OpenMP directives, making the hybrid code maintainability more easy.

Commit History (0)

(No commits)

Change History (9)

comment:1 Changed 3 years ago by nemo

  • Type changed from Development to Task

Remove 'Development' type

comment:2 Changed 3 years ago by mocavero

  • Milestone changed from 2017 WP to 2018 WP
  • Severity set to minor

comment:3 Changed 3 years ago by nicolasmartin

  • Summary changed from HPC-6_Silvia Development of the NEMO hybrid parallel version based on MPI/OpenMP to HPC-02_Silvia Development of the NEMO hybrid parallel version based on MPI/OpenMP

Updating of the ticket summary to be in phase with 2018WP

comment:4 Changed 2 years ago by nicolasmartin

  • Summary changed from HPC-02_Silvia Development of the NEMO hybrid parallel version based on MPI/OpenMP to HPC-02(2017WP)_Silvia Development of the NEMO hybrid parallel version based on MPI/OpenMP

Modification of summary for standardisation

comment:5 Changed 2 years ago by mocavero

  • Cc mocavero added; francesca removed
  • Owner changed from mocavero to francesca
  • Priority changed from low to normal
  • Status changed from new to assigned

comment:6 Changed 2 years ago by mocavero

  • Summary changed from HPC-02(2017WP)_Silvia Development of the NEMO hybrid parallel version based on MPI/OpenMP to HPC-02(2017WP)_Francesca Development of the NEMO hybrid parallel version based on MPI/OpenMP

comment:7 Changed 2 years ago by mocavero

  • Description modified (diff)
  • Progress modified (diff)

comment:8 Changed 22 months ago by francesca

  • Cc timgraham removed
  • Description modified (diff)
  • Progress modified (diff)

comment:9 Changed 20 months ago by francesca

  • Description modified (diff)
  • Progress modified (diff)
  • Resolution set to fixed
  • Status changed from assigned to closed
Note: See TracTickets for help on using tickets.