New URL for NEMO forge!   http://forge.nemo-ocean.eu

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.
#1539 (Performance optimizations on NEMO 3.6 limhdf routine) – NEMO

Opened 9 years ago

Closed 8 years ago

Last modified 6 years ago

#1539 closed Enhancement (fixed)

Performance optimizations on NEMO 3.6 limhdf routine

Reported by: mcastril Owned by: nemo
Priority: low Milestone:
Component: LIM3 Version: trunk
Severity: Keywords: LIM* optimization
Cc:

Description

The limtrp routine uses the limhdf subroutine in several fields. The computation for each one of these fields is almost independent from one to the other, so it is possible to reorganize the way how it is computed in order to increase the granularity taking advantage of the multisend routine (see #1523), that lets to use a single collective communication for several different variables at the same time. This way the number of interchanges is dramatically decreased, having much less collective communications.

By increasing the time dedicated to computation between consecutive MPI calls and at the same time reducing the number of messages, the scalability of this specific routine is increased a lot, having a very high impact in the overall efficiency (see figures).

With 5 ice categories and 2 sea ice layers per category, it is possible to gather 40 different fields. The results with ORCA1 are really good.This change does not have to affect the model outputs.

Commit History (5)

ChangesetAuthorTimeChangeLog
6478mcastril2016-04-15T18:43:21+02:00

Merging of branch dev_r5546_CNRS19_HPC_scalability #1539

6477mcastril2016-04-15T15:30:53+02:00

#1539 fix for last merge

6476mcastril2016-04-15T14:50:29+02:00

Merging of branch dev_r5546_CNRS19_HPC_scalability #1539

5579mcastril2015-07-09T18:07:16+02:00

ticket #1539 Performance optimizations on NEMO 3.6 limhdf routine

5430mcastril2015-06-16T13:22:55+02:00

ticket #1539 Performance optimizations on NEMO 3.6 limhdf routine

Attachments (2)

new_opt_syph.png (48.6 KB) - added by mcastril 9 years ago.
Optimizations scalability
new_opt_eff.png (47.1 KB) - added by mcastril 9 years ago.
Optimizations efficiency

Download all attachments as: .zip

Change History (11)

Changed 9 years ago by mcastril

Optimizations scalability

Changed 9 years ago by mcastril

Optimizations efficiency

comment:1 Changed 9 years ago by gm

Thanks ! Very good idea leading to a significant increase in the mpp performances.

comment:2 Changed 8 years ago by mcastril

Created serial versions of mpp_lnk_2d_9 & mpp_lnk_2d_multiple

comment:3 Changed 8 years ago by mcastril

Links to technical memoranda & poster explaining this optimizations:

Technical Memoranda
Poster

comment:4 Changed 8 years ago by mcastril

This optimization also includes the implementation of mpp_lbc_north_2d_multiple , which applies the multiple messages (packed messages #1523) routine to the north folding.

comment:5 Changed 8 years ago by mcastril

  • Resolution set to fixed
  • Status changed from new to closed

comment:6 Changed 8 years ago by nicolasmartin

  • Keywords limhdf removed

comment:7 Changed 8 years ago by nicolasmartin

  • Keywords efficiency removed

comment:8 Changed 6 years ago by nemo

  • Keywords performance removed

comment:9 Changed 6 years ago by nemo

  • Keywords LIM* added; LIM3 removed
Note: See TracTickets for help on using tickets.