Opened 2 years ago

Last modified 9 months ago

#2133 closed Task

HPC-09_Maisonnave-ATOS-ESIWACE — at Version 26

Reported by: smasson Owned by: emalod
Priority: low Milestone: Unscheduled
Component: LBC Version: trunk
Severity: minor Keywords:
Cc: Review: failed
MP ready?: yes
Progress:

Description (last modified by smasson)

Context

HPC improvement in the frame of ESIWACE project

Proposal

action 1: add a BENCH test case
action 2: instrumentation of the communication time
action 3: improve North fold communications
action 4: less communications in sea-ice
action 5: less communications in oce
action 6: find best mpi domain decomposition

Commit History (46)

ChangesetAuthorTimeChangeLog
10424smasson2018-12-19T22:51:49+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: to allow merge toward the trunk, see #2133

10423smasson2018-12-19T22:39:14+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: switch off optimisation introduced in [10175], see #2133

10422smasson2018-12-19T22:34:53+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: improve mppini messages, see #2133

10421smasson2018-12-19T22:32:59+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: missing commit following [10420], see #2133

10420smasson2018-12-19T21:04:32+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: force STOP when fail to allocate array, see #2133

10419smasson2018-12-19T20:46:30+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: merge with trunk@10418, see #2133

10417smasson2018-12-19T15:14:45+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: suppress the use of nstop out of ctl_stop, see #2133

10412smasson2018-12-18T18:12:14+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: zpshde: no more lbc_lnk in the loops, see #2133

10410smasson2018-12-18T16:04:05+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: mssing commit in test following [10380], see #2133

10409smasson2018-12-18T12:53:24+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 6 add print when using non-optimal domain decomposition, see #2133

10408smasson2018-12-18T12:21:21+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 8 introduce sum3x3 and supress glob_sum in trcrad, see #2133

10402smasson2018-12-17T17:07:54+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: no more need of lk_mpp for mpp_sum/max/min, see #2133

10397smasson2018-12-14T17:27:24+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 5 introduce mpp_delay_sum, see #2133

10386smasson2018-12-14T11:55:21+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: safer use of l_full_nf_update (2 lines north fold exchange), see #2133

10380smasson2018-12-11T09:27:54+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: iom cleaning: (1) get rid of jpnf90, jprstlib, jlibalt, iolib and (2) improve iom_getatt and iom_putatt, see #2133

10377smasson2018-12-10T08:45:39+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: merge with trunk@10376, see #2133

10372smasson2018-12-04T16:19:46+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 8: remove communications in TOP, see #2133

10369smasson2018-12-03T15:28:36+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: missing modifications in test/*/MY_SRC/domvvl.F90, see #2133

10368smasson2018-12-03T12:45:01+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: merge with trunk@10365, see #2133

10365smasson2018-12-01T12:33:31+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: merge with dev_r9866_HPC_03_globcom, see #2133

10360smasson2018-11-25T22:47:43+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: key_nosignedzero not related to configurations but to the arch files, see #2133

10359smasson2018-11-25T22:33:50+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 4c: introduce a better version of the non-blocking mpp_max, see #2133

10358smasson2018-11-25T15:24:21+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 5b: by default, suppress global communication in stpctl, see #2133

10357smasson2018-11-23T09:23:26+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: bugfix, see #2133

10345smasson2018-11-21T11:25:53+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: merge with trunk@10344, see #2133

10343smasson2018-11-20T14:37:10+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 1b: add TOP in BENCH test case, see #2133

10337smasson2018-11-19T15:55:42+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 3d: force safe NPF (2 lines update) for field recieved from oasis, see #2133

10336smasson2018-11-19T15:34:28+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 7: zdfiwm.F90 and zdftke.F90 optimization from ATOS, see #2133

10330smasson2018-11-19T10:41:29+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 6: find the best mpi domain decomposition, see #2133

10329smasson2018-11-19T10:33:35+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 3c: slight cleanning/optimisation of lbc_lnk, see #2133

10316smasson2018-11-15T17:58:34+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2; add missing modifications for {10314}, see #2133

10314smasson2018-11-15T17:27:18+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2: add generic glob_min/max/sum and locmin/max, complete timing and report (including bdy and icb), see #2133

10300smasson2018-11-12T17:49:08+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2b: add waiting time for mpp_min/max/sum, see #2133

10299smasson2018-11-12T16:48:52+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2a: add missing routine from changeset [10297] and [10298], see #2133

10298smasson2018-11-12T16:45:32+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2a: add missing routine from changeset [10297], see #2133

10297smasson2018-11-12T16:20:57+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2a: add report calls of mppmin/max/sum, see #2133

10293smasson2018-11-09T16:47:05+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 5: reduce communications in oce, see #2133

10292smasson2018-11-09T16:35:08+01:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 4b: reduce communications in si3, see #2133

10180smasson2018-10-08T17:06:04+02:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 4b: reduce communications in si3, see #2133

10179smasson2018-10-08T14:47:55+02:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 4a: add si3 in BENCH, see #2133

10178smasson2018-10-08T14:31:33+02:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2b-bis: print cleaning in timing, see #2133

10175smasson2018-10-05T17:20:12+02:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 3b: north fold nogather performance optimisation , see #2133

10173smasson2018-10-05T14:38:01+02:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 3a: north fold bugfix for U and F upper-right corner with jperio=6, see #2133

10172smasson2018-10-04T17:32:54+02:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2b: improve of timing, add computing and waiting time, see #2133

10170smasson2018-10-03T16:49:50+02:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2a: add report calls of lbc_lnk, see #2133

10166smasson2018-10-03T11:25:38+02:00

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 1: add BENCh test case, see #2133

Change History (26)

comment:1 Changed 2 years ago by smasson

In 10166:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 1: add BENCh test case, see #2133

comment:2 Changed 2 years ago by smasson

action 1: done, see [10166]

comment:3 Changed 2 years ago by smasson

In 10170:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2a: add report calls of lbc_lnk, see #2133

comment:4 Changed 2 years ago by smasson

Last edited 2 years ago by smasson (previous) (diff)

comment:5 Changed 2 years ago by smasson

In 10172:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2b: improve of timing, add computing and waiting time, see #2133

comment:6 Changed 2 years ago by smasson

In 10173:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 3a: north fold bugfix for U and F upper-right corner with jperio=6, see #2133

comment:7 Changed 2 years ago by smasson

jperio = 4: nogather and gather differ… to be solved…
jperio = 6 is ok (at least on our bench tests…)

comment:8 Changed 2 years ago by smasson

In 10175:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 3b: north fold nogather performance optimisation , see #2133

comment:9 Changed 2 years ago by smasson

Warning: [10175] change the results because in fortran (a + b) + c /= a + (b + c )…
For example, in north fold, triad won't be computed in the exact same order, creating very small differences in duplicated grid points (2 points of the grid having the same geographical location).

comment:10 Changed 2 years ago by smasson

In 10178:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2b-bis: print cleaning in timing, see #2133

comment:11 Changed 2 years ago by smasson

In 10179:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 4a: add si3 in BENCH, see #2133

comment:12 Changed 2 years ago by smasson

In 10180:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 4b: reduce communications in si3, see #2133

comment:13 Changed 2 years ago by emalod

Warning: [10180] change the results because convergence criteria in icethd_zdf_bl99 subroutine is changed.
Before: convergence loop is stopped in all MPI sub-domains when criteria is fulfilled everywhere.
Now: convergence loop is stopped locally for each MPI sub-domain and, at each point, the variable is filled with the value obtained when criteria is fulfilled in that point (and not the value got when criteria is fulfilled everywhere in the whole sub-domain)
In both cases, the results are MPI-decomposition independent but they are changed by the implementation.

comment:14 Changed 2 years ago by smasson

  • MP ready? set to no
  • Progress modified (diff)

comment:15 Changed 2 years ago by smasson

  • MP ready? changed from no to yes
  • Progress modified (diff)

comment:16 Changed 2 years ago by smasson

In 10292:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 4b: reduce communications in si3, see #2133

comment:17 Changed 2 years ago by smasson

  • Description modified (diff)

comment:18 Changed 2 years ago by smasson

In 10293:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 5: reduce communications in oce, see #2133

comment:19 Changed 2 years ago by smasson

In 10297:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2a: add report calls of mppmin/max/sum, see #2133

Last edited 2 years ago by smasson (previous) (diff)

comment:20 Changed 2 years ago by smasson

In 10298:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2a: add missing routine from changeset [10297], see #2133

comment:21 Changed 2 years ago by smasson

In 10299:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2a: add missing routine from changeset [10297] and [10298], see #2133

comment:22 Changed 2 years ago by smasson

In 10300:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2b: add waiting time for mpp_min/max/sum, see #2133

comment:23 Changed 2 years ago by smasson

In 10314:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2: add generic glob_min/max/sum and locmin/max, complete timing and report (including bdy and icb), see #2133

Get back the possibility to compile and run without key_mpp_mpi

In action 2a, we used the following script to automatically modify (almost) all the calls to lbc_lnk, lbc_bdy_lnk, mpp_min/max/sum, mpp_min/maxloc and glob_min/max/sum

set -u

for dd in $( find . -wholename "*/MY_SRC" ) $( find src -type d | grep -v svn )
do
    cd $dd
    pwd
    echo
    for file in `grep -i "call  *lbc_lnk *( *[a-zA-Z_0-9]" * | awk '{print $1}' | sed s/\:'.*'// | uniq`
    do
        routinename=` echo $file | sed s/\\\.'.*'//`
        sed -e "s/ lbc_lnk\( *\)(\( *\)\([a-zA-Z_0-9]\)/ lbc_lnk\1(\2\'${routinename}\', \3/g"              \
            -e "s/ lbc_lnk_multi\( *\)(\( *\)\([a-zA-Z_0-9]\)/ lbc_lnk_multi\1(\2\'${routinename}\', \3/g"  \
            $file > toto
        mv toto $file
        echo $file done
    done
    for file in `grep -i "call  *lbc_bdy_lnk *( *[a-zA-Z_0-9]" * | awk '{print $1}' | sed s/\:'.*'// | uniq`
    do
        routinename=` echo $file | sed s/\\\.'.*'//`
        sed -e "s/ lbc_bdy_lnk\( *\)(\( *\)\([a-zA-Z_0-9]\)/ lbc_bdy_lnk\1(\2\'${routinename}\', \3/g"  \
            $file > toto
        mv toto $file
        echo $file done
    done
    for file in `grep -i "call  *mpp_... *( *[a-zA-Z_0-9]" * | awk '{print $1}' | sed s/\:'.*'// | uniq | grep -v lib_fortran_generic.h90`
    do
        routinename=` echo $file | sed s/\\\.'.*'//`
        sed -e "s/ mpp_min\( *\)(\( *\)\([a-zA-Z_0-9]\)/ mpp_min\1(\2\'${routinename}\', \3/g" \
            -e "s/ mpp_max\( *\)(\( *\)\([a-zA-Z_0-9]\)/ mpp_max\1(\2\'${routinename}\', \3/g" \
            -e "s/ mpp_sum\( *\)(\( *\)\([a-zA-Z_0-9]\)/ mpp_sum\1(\2\'${routinename}\', \3/g" \
            $file > toto
        mv toto $file
        echo $file done
    done
    for file in `grep -i "call  *mpp_...loc *( *[a-zA-Z_0-9]" * | awk '{print $1}' | sed s/\:'.*'// | uniq`
    do
        routinename=` echo $file | sed s/\\\.'.*'//`
        sed -e "s/ mpp_minloc\( *\)(\( *\)\([a-zA-Z_0-9]\)/ mpp_minloc\1(\2\'${routinename}\', \3/g" \
            -e "s/ mpp_maxloc\( *\)(\( *\)\([a-zA-Z_0-9]\)/ mpp_maxloc\1(\2\'${routinename}\', \3/g" \
            $file > toto
        mv toto $file
        echo $file done
    done
    for file in `grep -i "glob_... *( *[a-zA-Z_0-9(]" * | awk '{print $1}' | sed s/\:'.*'// | uniq`
    do
        routinename=` echo $file | sed s/\\\.'.*'//`
        sed -e "s/ glob_min\( *\)(\( *\)\([a-zA-Z_0-9(]\)/ glob_min\1(\2\'${routinename}\', \3/g" \
            -e "s/ glob_max\( *\)(\( *\)\([a-zA-Z_0-9(]\)/ glob_max\1(\2\'${routinename}\', \3/g" \
            -e "s/ glob_sum\( *\)(\( *\)\([a-zA-Z_0-9(]\)/ glob_sum\1(\2\'${routinename}\', \3/g" \
            -e "s/ glob_sum_full\( *\)(\( *\)\([a-zA-Z_0-9(]\)/ glob_sum_full\1(\2\'${routinename}\', \3/g" \
            $file > toto
        mv toto $file
        echo $file done
    done
    echo
    cd -
done
Last edited 2 years ago by smasson (previous) (diff)

comment:24 Changed 2 years ago by smasson

In 10316:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2; add missing modifications for {10314}, see #2133

comment:25 Changed 2 years ago by smasson

In 10329:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 3c: slight cleanning/optimisation of lbc_lnk, see #2133

comment:26 Changed 2 years ago by smasson

  • Description modified (diff)
Note: See TracTickets for help on using tickets.