Skip to content

Investigating why mom5 is slower with oneAPI #49

@manodeep

Description

@manodeep

This issue tracks my investigation into why mom5 is significantly slower when compiled with oneAPI. For starters, I compared the timings from the logfile.0000.out for two runs - the released config (with ifort, atmosphere layout 16x13, ocean layout 14x14) and one of the faster oneAPI versions that still used 416 cores (atmosphere layout 12x13, ocean layout 19x13)

Two functions (assuming the time for one doesn't include the other) - (Ocean shortwave) and (Ocean shortwave penetrate) together contribute to nearly 200 seconds of slowdown.

Here's the list of the functions that stood out as taking significantly more time with oneAPI:

Comparing the last 204 lines from logfile.00000.out

Generated from vimdiff'ing last_204_lines_ocean_logfile_000000_out_pr98-29-atm-layout-12x13-ocean-layout-19x13-cice4-12.txt and last_204_lines_ocean_logfile_000000_out_Jun20-released-config.txt in /g/data/tm70/ms2335/performance_optimisation_runs/classic/access-esm1p6/intel@19.0.3.199+target-x86-v4/sapphirerapids (or, via symlink, as /home/593/ms2335/perf-opt-classic-esm1.6/sapphirerapids)

function time with ifort time with ifx
(Ocean update density) 68.753486 130.024669
(Ocean shortwave) 23.124541 117.218480
(Ocean surface flux) 41.250250 189.090736
(Ocean barotropic dynamics) 46.788131 152.962205
(Ocean diagnostics) 62.194185 98.986182
(Ocean tracer halo updates) 275.070814 322.911296
(Ocean sum ocean surface) 88.946095 127.932427
(Ocean tracer tmask limit) 22.219161 82.341906
(Ocean tracer: advection) 233.915603 264.396445
(Ocean generic tracer: source) 781.969017 851.825148
(Ocean neutral: diffuse) 345.828021 418.568721
(Ocean ndiffuse: fx-flux) 64.232973 117.111274
(Ocean ndiffuse: fy-flux) 59.803690 109.397266
(Ocean advect: MDFL-sweby-cui) 37.223727 63.833007
(Ocean shortwave penetrate) 15.296601 103.740304
(Ocean tracer_diag: total water 5.859774 37.781129

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions