Skip to content

Add tick-tock and update run_mpmd.sh for mpiexec stderr#4468

Merged
aerorahul merged 6 commits intoNOAA-EMC:developfrom
aerorahul:feature/tick-tock
Jan 28, 2026
Merged

Add tick-tock and update run_mpmd.sh for mpiexec stderr#4468
aerorahul merged 6 commits intoNOAA-EMC:developfrom
aerorahul:feature/tick-tock

Conversation

@aerorahul
Copy link
Contributor

Description

This PR:

  • adds a mechanism to profile shell scripts by adding two functions tick and tock when used in tandem will provide time elapsed between their invocations
  • includes stderr when using CFP with mpiexec

Type of change

  • New feature (adds functionality)
  • Maintenance (code refactor, clean-up, new CI test, etc.)

Change characteristics

  • Is this change expected to change outputs (e.g. value changes to existing outputs, new files stored in COM, files removed from COM, filename changes, additions/subtractions to archives)? NO
    • GFS
    • GEFS
    • SFS
    • GCAFS
  • Is this a breaking change (a change in existing functionality)? NO
  • Does this change require a documentation update? NO
  • Does this change require an update to any of the following submodules? NO (If YES, please add a link to any PRs that are pending.)
    • EMC verif-global
    • GDAS
    • GFS-utils
    • GSI
    • GSI-monitor
    • GSI-utils
    • UFS-utils
    • UFS-weather-model
    • wxflow

How has this been tested?

  • tick-tock was used in a closed PR and worked as expected. It is not used in any of the current workflow jobs and scripts
  • 2>&1 updated in run_mpmd.sh is standard practice

Checklist

  • Any dependent changes have been merged and published
  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have documented my code, including function, input, and output descriptions
  • My changes generate no new warnings
  • New and existing tests pass with my changes
  • This change is covered by an existing CI test or a new one has been added
  • Any new scripts have been added to the .github/CODEOWNERS file with owners
  • I have made corresponding changes to the system documentation if necessary

@aerorahul
Copy link
Contributor Author

@DavidHuber-NOAA is testing the changes in this PR as part of #4455
@DavidHuber-NOAA when you are satisfied, please update here and if we need to run this PR as its own test on WCOSS

@DavidHuber-NOAA
Copy link
Contributor

@aerorahul This update to run_mpmd.sh is an improvement, but there are a few issues.

  1. At line 9
    ${launcher:-} -np ${nprocs} ${mpmd_opt:-} "${mpmd_cmdfile}"

    The execution returns the following in the log (this is from /lfs/h2/emc/ptmp/david.huber/rt_metp/COMROOT/C96C48_hybatmDA_metp/logs/2021123100/gfs_atmos_prod_f000-f003.log):
+ run_mpmd.sh[95]mpiexec -l -np 24 --cpu-bind verbose,core cfp /lfs/h2/emc/stmp/david.huber/RUNDIRS/C96C48_hybatmDA_metp/gfs.2021123100/atmos_products_f000.2256799/mpmd_cmdfile
nid003400.dogwood.wcoss2.ncep.noaa.gov 0: cpubind:core nid003400 pid 2259826 rank 0 0: mask 0x100000000000000000000000000000001
nid003400.dogwood.wcoss2.ncep.noaa.gov 1: cpubind:core nid003400 pid 2259827 rank 1 1: mask 0x200000000000000000000000000000002
nid003400.dogwood.wcoss2.ncep.noaa.gov 2: cpubind:core nid003400 pid 2259828 rank 2 2: mask 0x400000000000000000000000000000004
nid003400.dogwood.wcoss2.ncep.noaa.gov 3: cpubind:core nid003400 pid 2259829 rank 3 3: mask 0x800000000000000000000000000000008
nid003400.dogwood.wcoss2.ncep.noaa.gov 4: cpubind:core nid003400 pid 2259830 rank 4 4: mask 0x1000000000000000000000000000000010
nid003400.dogwood.wcoss2.ncep.noaa.gov 5: cpubind:core nid003400 pid 2259831 rank 5 5: mask 0x2000000000000000000000000000000020
nid003400.dogwood.wcoss2.ncep.noaa.gov 6: cpubind:core nid003400 pid 2259832 rank 6 6: mask 0x4000000000000000000000000000000040
nid003400.dogwood.wcoss2.ncep.noaa.gov 7: cpubind:core nid003400 pid 2259833 rank 7 7: mask 0x8000000000000000000000000000000080
nid003400.dogwood.wcoss2.ncep.noaa.gov 8: cpubind:core nid003400 pid 2259834 rank 8 8: mask 0x10000000000000000000000000000000100
nid003400.dogwood.wcoss2.ncep.noaa.gov 9: cpubind:core nid003400 pid 2259835 rank 9 9: mask 0x20000000000000000000000000000000200
nid003400.dogwood.wcoss2.ncep.noaa.gov 10: cpubind:core nid003400 pid 2259836 rank 10 10: mask 0x40000000000000000000000000000000400
nid003400.dogwood.wcoss2.ncep.noaa.gov 11: cpubind:core nid003400 pid 2259837 rank 11 11: mask 0x80000000000000000000000000000000800
nid003400.dogwood.wcoss2.ncep.noaa.gov 12: cpubind:core nid003400 pid 2259838 rank 12 12: mask 0x100000000000000000000000000000001000
nid003400.dogwood.wcoss2.ncep.noaa.gov 13: cpubind:core nid003400 pid 2259839 rank 13 13: mask 0x200000000000000000000000000000002000
nid003400.dogwood.wcoss2.ncep.noaa.gov 14: cpubind:core nid003400 pid 2259840 rank 14 14: mask 0x400000000000000000000000000000004000
nid003400.dogwood.wcoss2.ncep.noaa.gov 15: cpubind:core nid003400 pid 2259841 rank 15 15: mask 0x800000000000000000000000000000008000
nid003400.dogwood.wcoss2.ncep.noaa.gov 16: cpubind:core nid003400 pid 2259842 rank 16 16: mask 0x1000000000000000000000000000000010000
nid003400.dogwood.wcoss2.ncep.noaa.gov 17: cpubind:core nid003400 pid 2259843 rank 17 17: mask 0x2000000000000000000000000000000020000
nid003400.dogwood.wcoss2.ncep.noaa.gov 18: cpubind:core nid003400 pid 2259844 rank 18 18: mask 0x4000000000000000000000000000000040000
nid003400.dogwood.wcoss2.ncep.noaa.gov 19: cpubind:core nid003400 pid 2259845 rank 19 19: mask 0x8000000000000000000000000000000080000
nid003400.dogwood.wcoss2.ncep.noaa.gov 20: cpubind:core nid003400 pid 2259846 rank 20 20: mask 0x10000000000000000000000000000000100000
nid003400.dogwood.wcoss2.ncep.noaa.gov 21: cpubind:core nid003400 pid 2259847 rank 21 21: mask 0x20000000000000000000000000000000200000
nid003400.dogwood.wcoss2.ncep.noaa.gov 22: cpubind:core nid003400 pid 2259848 rank 22 22: mask 0x40000000000000000000000000000000400000
nid003400.dogwood.wcoss2.ncep.noaa.gov 23: cpubind:core nid003400 pid 2259849 rank 23 23: mask 0x80000000000000000000000000000000800000
nid003400.dogwood.wcoss2.ncep.noaa.gov 20: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 21: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 22: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 23: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 12: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 13: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 14: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 15: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 4: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 5: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 6: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 7: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 16: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 17: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 18: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 19: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 3: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 0: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 1: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 2: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 8: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 9: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 10: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 11: + Unknown[0]rm -rf .o
nid003400.dogwood.wcoss2.ncep.noaa.gov 11: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_11 pgb2afile_f000_11 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 8: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_8 pgb2afile_f000_8 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 12: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_12 pgb2afile_f000_12 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 14: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_14 pgb2afile_f000_14 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 22: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_22 pgb2afile_f000_22 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 20: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_20 pgb2afile_f000_20 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 21: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_21 pgb2afile_f000_21 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 23: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_23 pgb2afile_f000_23 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 16: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_16 pgb2afile_f000_16 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 6: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_6 pgb2afile_f000_6 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 7: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_7 pgb2afile_f000_7 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 4: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_4 pgb2afile_f000_4 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 19: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_19 pgb2afile_f000_19 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 18: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_18 pgb2afile_f000_18 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 2: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_2 pgb2afile_f000_2 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 3: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_3 pgb2afile_f000_3 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 1: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_1 pgb2afile_f000_1 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 15: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_15 pgb2afile_f000_15 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 5: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_5 pgb2afile_f000_5 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 10: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_10 pgb2afile_f000_10 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 13: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_13 pgb2afile_f000_13 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 17: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_17 pgb2afile_f000_17 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 0: + Unknown[0]/lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/interp_atmos_master.sh tmpfilea_f000_24 pgb2afile_f000_24 0p25:0p50:1p00
nid003400.dogwood.wcoss2.ncep.noaa.gov 1: CFP RANK   1    TOTAL RANK RUN TIME:  15.5 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 2: CFP RANK   2    TOTAL RANK RUN TIME:  18.9 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 3: CFP RANK   3    TOTAL RANK RUN TIME:  19.1 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 4: CFP RANK   4    TOTAL RANK RUN TIME:  19.1 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 5: CFP RANK   5    TOTAL RANK RUN TIME:  19.1 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 6: CFP RANK   6    TOTAL RANK RUN TIME:  19.1 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 7: CFP RANK   7    TOTAL RANK RUN TIME:  19.3 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 8: CFP RANK   8    TOTAL RANK RUN TIME:  16.5 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 9: CFP RANK   9    TOTAL RANK RUN TIME:  16.3 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 10: CFP RANK  10    TOTAL RANK RUN TIME:  14.8 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 11: CFP RANK  11    TOTAL RANK RUN TIME:  16.4 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 12: CFP RANK  12    TOTAL RANK RUN TIME:  16.7 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 13: CFP RANK  13    TOTAL RANK RUN TIME:  17.5 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 14: CFP RANK  14    TOTAL RANK RUN TIME:  17.6 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 15: CFP RANK  15    TOTAL RANK RUN TIME:  17.2 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 16: CFP RANK  16    TOTAL RANK RUN TIME:  10.7 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 17: CFP RANK  17    TOTAL RANK RUN TIME:  12.2 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 18: CFP RANK  18    TOTAL RANK RUN TIME:  12.1 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 19: CFP RANK  19    TOTAL RANK RUN TIME:  12.1 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 20: CFP RANK  20    TOTAL RANK RUN TIME:   6.9 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 21: CFP RANK  21    TOTAL RANK RUN TIME:   9.0 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 22: CFP RANK  22    TOTAL RANK RUN TIME:  11.4 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 23: CFP RANK  23    TOTAL RANK RUN TIME:  10.9 sec    Return status: 00000000 hex
nid003400.dogwood.wcoss2.ncep.noaa.gov 0: CFP RANK   0    TOTAL RANK RUN TIME:  19.0 sec    Return status: 00000000 hex
+ run_mpmd.sh[96]err=0

I believe the Unknown messages are all coming from the mpiexec wrapper. Do we want this echoed to the log?

Next, on lines 111-115:

for file in ${out_files}; do
cat "${file}" >> mpmd.out
rm -f "${file}"
done
cat mpmd.out

the MPMD log files are concatenated and then printed to the log. However, the MPMD index is not printed. Here are the first few lines from the log:

+ run_mpmd.sh[111]for file in ${out_files}
+ run_mpmd.sh[112]cat ./mpmd.6.out
+ run_mpmd.sh[113]rm -f ./mpmd.6.out
+ run_mpmd.sh[115]cat mpmd.out
+ interp_atmos_master.sh[7]input_file=tmpfilea_f000_3
+ interp_atmos_master.sh[8]output_file_prefix=pgb2afile_f000_3
+ interp_atmos_master.sh[9]grid_string=0p25:0p50:1p00
+ interp_atmos_master.sh[12]defaults='-set_grib_type same -set_bitmap 1 -set_grib_max_bits 16'
+ interp_atmos_master.sh[13]interp_winds='-new_grid_winds earth'
+ interp_atmos_master.sh[14]interp_bilinear='-new_grid_interpolation bilinear'
+ interp_atmos_master.sh[15]interp_neighbor='-if :(CSNOW|CRAIN|CFRZR|CICEP|ICSEV): -new_grid_interpolation neighbor -fi'
+ interp_atmos_master.sh[16]interp_budget='-if :(APCP|ACPCP|PRATE|CPRAT|DZDT): -new_grid_interpolation budget -fi'
+ interp_atmos_master.sh[17]increased_bits='-if :(APCP|ACPCP|PRATE|CPRAT): -set_grib_max_bits 25 -fi'
+ interp_atmos_master.sh[21]grid0p25='latlon 0:1440:0.25 90:721:-0.25'
+ interp_atmos_master.sh[23]grid0p50='latlon 0:720:0.5 90:361:-0.5'
+ interp_atmos_master.sh[25]grid1p00='latlon 0:360:1.0 90:181:-1.0'
+ interp_atmos_master.sh[28]source /lfs/h2/emc/global/noscrub/David.Huber/GW/gw_vg_upgrade/ush/product_functions.sh
+ interp_atmos_master.sh[31]IFS=:
+ interp_atmos_master.sh[31]read -ra grids
+ interp_atmos_master.sh[33]output_grids=
+ interp_atmos_master.sh[34]for grid in "${grids[@]}"
+ interp_atmos_master.sh[35]gridopt=grid0p25
+ interp_atmos_master.sh[36]output_grids=' -new_grid latlon 0:1440:0.25 90:721:-0.25 pgb2afile_f000_3_0p25'
+ interp_atmos_master.sh[34]for grid in "${grids[@]}"
+ interp_atmos_master.sh[35]gridopt=grid0p50
+ interp_atmos_master.sh[36]output_grids=' -new_grid latlon 0:1440:0.25 90:721:-0.25 pgb2afile_f000_3_0p25 -new_grid latlon 0:720:0.5 90:361:-0.5 pgb2afile_f000_3_0p50'
+ interp_atmos_master.sh[34]for grid in "${grids[@]}"
+ interp_atmos_master.sh[35]gridopt=grid1p00

I would expect each of these lines to be prepended by CFP RANK 1. At the least, the log for each member should start/stop with something like Begin CFP Rank 1...End CFP Rank 1.

aerorahul and others added 4 commits January 27, 2026 14:52
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@aerorahul aerorahul requested review from Copilot and removed request for Copilot January 28, 2026 15:07
Copy link
Contributor

@DavidHuber-NOAA DavidHuber-NOAA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

@DavidHuber-NOAA
Copy link
Contributor

I'll just run this through a quick C48_ATM case to check output on WCOSS2.

@DavidHuber-NOAA
Copy link
Contributor

The quick test looks good. Merging.

@aerorahul
Copy link
Contributor Author

The quick test looks good. Merging.

Thanks for testing @DavidHuber-NOAA

@aerorahul aerorahul merged commit 932a7dd into NOAA-EMC:develop Jan 28, 2026
5 checks passed
@aerorahul aerorahul deleted the feature/tick-tock branch January 28, 2026 19:59
JessicaMeixner-NOAA pushed a commit to JessicaMeixner-NOAA/global-workflow that referenced this pull request Jan 30, 2026
# Description
This PR:
- adds a mechanism to profile shell scripts by adding two functions
`tick` and `tock` when used in tandem will provide time elapsed between
their invocations
- includes `stderr` when using CFP with `mpiexec`
DavidHuber-NOAA pushed a commit that referenced this pull request Feb 2, 2026
This PR is pulling in 3 PRs that went into the develop branch to the
dev/gfs.v17 branch.

These PRs are: 
[4394](#4394) - atmos
prod dependency
[4486](#4486) - Fix
linking sequence
[4468](#4468) - add
timing functions and improve run_mpmd logging
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants