New URL for NEMO forge!

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
#1523 (Optimizations on NEMO 3.6 communications) – NEMO

Opened 8 years ago

Closed 5 years ago

Last modified 12 months ago

#1523 closed Task (fixed)

Optimizations on NEMO 3.6 communications

Reported by: mcastril Owned by: mcastril
Priority: low Milestone: 2015 release-3.6
Component: OCE Version: v3.6
Severity: minor Keywords: MPI OPA nemo_v3_6* nemo_v3_6_STABLE performance v3.6


Many of the NEMO model bottlenecks have its cause in the communications system

In order to mitigate this issue we studied the NEMO efficiency by applying our methodology, that is based on the BSC performance tools.

After getting some interesting results we developed two improvements that will be included in this branch.

The first optimization is focused on improving the scalability. In order to pack an undetermined number of messages and send them all at the same, a new subroutine was created in the in lbc_lnk routine. The communication cost when exchanging variables is highly reduced. This improvement does not entail any modification in the final results of the simulation.

The second one optimization affects the convergence test used in limhdf, that performs global communications in each iteration to get the maximum value over the global domain. With the aim of reducing the number of times this check is performed, we created a X parameter in the namelist that is used to perform this check only in N/X out of N iterations, in order to reduce the calls to the mpp_max routine. The tradeoff is that, in the worst case, up to N-1 computation phases could be done in excess, but the computational cost is much lower than the communication cost when using a high number of cores, so this optimization improves the scalability.

A short visual preview about the analyses and results is included in the attached presentation.

Commit History (5)


merge dev_r5302_CNRS18_HPC_scalability into the trunk, see #1523


ticket #1523 Convergence Check namelist parameters addition


ticket #1523 Message Packing


ticket #1523 Convergence Check


ticket #1523 Optimizations on NEMO 3.6 communications - Branch create

Attachments (1)

NEMO_optimizations.pdf (765.6 KB) - added by mcastril 8 years ago.

Download all attachments as: .zip

Change History (16)

Changed 8 years ago by mcastril

comment:1 Changed 7 years ago by mcastril

Links to technical memoranda & poster explaining this optimizations:

Technical Memoranda

comment:2 Changed 7 years ago by nicolasmartin

  • Keywords MPI added; communications removed

comment:3 Changed 7 years ago by nicolasmartin

  • Keywords efficiency removed

comment:4 Changed 7 years ago by nicolasmartin

  • Keywords nemo_v3_6* added

comment:5 Changed 7 years ago by nicolasmartin

  • Keywords packing removed

comment:6 Changed 5 years ago by nicolasmartin

  • Owner changed from nemo to mcastril
  • Status changed from new to assigned

comment:7 Changed 5 years ago by nemo

  • Type changed from Development to Task

Remove 'Development' type

comment:8 Changed 5 years ago by nicolasmartin

  • Milestone 2015 nemo_v3_6_STABLE deleted
  • workplan_status set to unknown

comment:9 Changed 5 years ago by nemo

  • Keywords release-3.6* added; nemo_v3_6* removed

comment:10 Changed 5 years ago by nemo

  • Keywords performance removed

comment:11 Changed 5 years ago by nemo

  • Keywords release-3.6* removed

comment:12 Changed 5 years ago by nemo

Is there any reason to not closing this ticket ? If yes, please do so.
If not, thanks for switching to 'Miscellaneous' milestone (unscheduled).

comment:13 Changed 5 years ago by mcastril

  • Milestone 2015 nemo_v3_6_STABLE deleted
  • Resolution set to fixed
  • Status changed from assigned to closed

comment:14 Changed 5 years ago by nemo

  • Milestone set to 2015 nemo_v3_6_STABLE

comment:15 Changed 12 months ago by nemo

  • Keywords OPA nemo_v3_6_STABLE v3.6 added
Note: See TracTickets for help on using tickets.