From 78f99f942bf39ef343067659298daecb5f7496f7 Mon Sep 17 00:00:00 2001 From: Prakash Mohan Date: Thu, 24 Oct 2024 16:50:04 -0600 Subject: [PATCH 1/5] Adding slurm jobscript and log file from a 100 timestep run for the stable case --- .../stable/run_info/exawindjob.batch | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 amr-wind/atmospheric_boundary_layer/stable/run_info/exawindjob.batch diff --git a/amr-wind/atmospheric_boundary_layer/stable/run_info/exawindjob.batch b/amr-wind/atmospheric_boundary_layer/stable/run_info/exawindjob.batch new file mode 100644 index 0000000..4686189 --- /dev/null +++ b/amr-wind/atmospheric_boundary_layer/stable/run_info/exawindjob.batch @@ -0,0 +1,28 @@ +#!/bin/bash +#SBATCH --job-name=ablbenchmark +#SBATCH --account=extremedata +#SBATCH --time=00:20:00 +#SBATCH --nodes=20 +#SBATCH --ntasks-per-node=104 +#SBATCH --output=out.%x_%j +#SBATCH --partition=standard +#SBATCH --exclusive +#SBATCH --mail-user=pmohan@nrel.gov +#SBATCH --mail-type=BEGIN,END,FAIL + +#Per: https://nrel.github.io/HPC/Documentation/Systems/Kestrel/Running/performancerecs/#mpi +export MPICH_SHARED_MEM_COLL_OPT=mpi_bcast,mpi_barrier +export MPICH_COLL_OPT_OFF=mpi_allreduce + +module load PrgEnv-intel +module load cray-python +export EXAWIND_MANAGER=/home/pmohan/exawind/exawind-manager +source ${EXAWIND_MANAGER}/start.sh +spack-start +quick-activate ${EXAWIND_MANAGER}/environments/amr-wind +spack load amr-wind +aw_exec="$(spack location -i amr-wind)/bin/amr_wind" + +BINDW='--cpu_bind=map_cpu:0,52,13,65,26,78,39,91,1,53,14,66,27,79,40,92,2,54,15,67,28,80,41,93,3,55,16,68,29,81,42,94,4,56,17,69,30,82,43,95,5,57,18,70,31,83,44,96,6,58,19,71,32,84,45,97,7,59,20,72,33,85,46,98,8,60,21,73,34,86,47,99,9,61,22,74,35,87,48,100,10,62,23,75,36,88,49,101,11,63,24,76,37,89,50,102,12,64,25,77,38,90,51,103' + +srun --distribution=block:cyclic $BINDW ${aw_exec} abl_stable.inp From 91b9a2e6a30c318cd9670f8541bc37bbc8ef6e95 Mon Sep 17 00:00:00 2001 From: Prakash Mohan Date: Thu, 24 Oct 2024 16:59:26 -0600 Subject: [PATCH 2/5] update readme for the run_info --- .../stable/run_info/exawindjob.batch | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 amr-wind/atmospheric_boundary_layer/stable/run_info/exawindjob.batch diff --git a/amr-wind/atmospheric_boundary_layer/stable/run_info/exawindjob.batch b/amr-wind/atmospheric_boundary_layer/stable/run_info/exawindjob.batch deleted file mode 100644 index 4686189..0000000 --- a/amr-wind/atmospheric_boundary_layer/stable/run_info/exawindjob.batch +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -#SBATCH --job-name=ablbenchmark -#SBATCH --account=extremedata -#SBATCH --time=00:20:00 -#SBATCH --nodes=20 -#SBATCH --ntasks-per-node=104 -#SBATCH --output=out.%x_%j -#SBATCH --partition=standard -#SBATCH --exclusive -#SBATCH --mail-user=pmohan@nrel.gov -#SBATCH --mail-type=BEGIN,END,FAIL - -#Per: https://nrel.github.io/HPC/Documentation/Systems/Kestrel/Running/performancerecs/#mpi -export MPICH_SHARED_MEM_COLL_OPT=mpi_bcast,mpi_barrier -export MPICH_COLL_OPT_OFF=mpi_allreduce - -module load PrgEnv-intel -module load cray-python -export EXAWIND_MANAGER=/home/pmohan/exawind/exawind-manager -source ${EXAWIND_MANAGER}/start.sh -spack-start -quick-activate ${EXAWIND_MANAGER}/environments/amr-wind -spack load amr-wind -aw_exec="$(spack location -i amr-wind)/bin/amr_wind" - -BINDW='--cpu_bind=map_cpu:0,52,13,65,26,78,39,91,1,53,14,66,27,79,40,92,2,54,15,67,28,80,41,93,3,55,16,68,29,81,42,94,4,56,17,69,30,82,43,95,5,57,18,70,31,83,44,96,6,58,19,71,32,84,45,97,7,59,20,72,33,85,46,98,8,60,21,73,34,86,47,99,9,61,22,74,35,87,48,100,10,62,23,75,36,88,49,101,11,63,24,76,37,89,50,102,12,64,25,77,38,90,51,103' - -srun --distribution=block:cyclic $BINDW ${aw_exec} abl_stable.inp From b8d2e5f589dea1780ad2bac360953049e8895b58 Mon Sep 17 00:00:00 2001 From: Prakash Mohan Date: Thu, 24 Oct 2024 17:18:46 -0600 Subject: [PATCH 3/5] update run_info for the neutral case --- .../neutral/run_info/README.md | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/amr-wind/atmospheric_boundary_layer/neutral/run_info/README.md b/amr-wind/atmospheric_boundary_layer/neutral/run_info/README.md index f8550de..e9159a1 100644 --- a/amr-wind/atmospheric_boundary_layer/neutral/run_info/README.md +++ b/amr-wind/atmospheric_boundary_layer/neutral/run_info/README.md @@ -1 +1,26 @@ -placeholder file; put log file headers and footers here \ No newline at end of file +AMR-Wind header: + +``` +============================================================================== + AMR-Wind (https://github.com/exawind/amr-wind) + + AMR-Wind version :: v3.1.5-11-g32811b18 + AMR-Wind Git SHA :: 32811b18af31e7b54f7e5cb23c6ead424f21f1f0 + AMReX version :: 24.09-45-g6d9c25b989f1 + + Exec. time :: Tue Oct 15 16:06:18 2024 + Build time :: Oct 14 2024 08:26:23 + C++ compiler :: IntelLLVM 2023.2.0 + + MPI :: ON (Num. ranks = 2080) + GPU :: OFF + OpenMP :: OFF + + Enabled third-party libraries: + NetCDF 4.9.2 + HYPRE 2.31.0 + + This software is released under the BSD 3-clause license. + See https://github.com/Exawind/amr-wind/blob/development/LICENSE for details. +------------------------------------------------------------------------------ +``` From 49d8211766c5375010f6b371371d728e12c8e94f Mon Sep 17 00:00:00 2001 From: Prakash Mohan Date: Thu, 24 Oct 2024 17:19:12 -0600 Subject: [PATCH 4/5] update readme --- amr-wind/atmospheric_boundary_layer/neutral/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amr-wind/atmospheric_boundary_layer/neutral/README.md b/amr-wind/atmospheric_boundary_layer/neutral/README.md index 8f17dce..f7e99a4 100644 --- a/amr-wind/atmospheric_boundary_layer/neutral/README.md +++ b/amr-wind/atmospheric_boundary_layer/neutral/README.md @@ -1 +1 @@ -Put a synopsis of the case here, including which resources were used, which hashes of the codes, and a brief description of the computational performance. \ No newline at end of file +The neutral ABL case was run to convergence with the input file that was used in the upcoming AMR-Wind paper. The computation was done on kestrel, using 20 CPU nodes for 144 hours, with the latest release of AMR-Wind `(v 3.15)`. From 8cfaa20d9cf3ddd81c4e62657c812db119b39a24 Mon Sep 17 00:00:00 2001 From: Prakash Mohan Date: Thu, 24 Oct 2024 17:22:19 -0600 Subject: [PATCH 5/5] update performance info for neutral abl case --- .../neutral/performance/README.md | 2 +- .../neutral/performance/abl_neutral.pdf | Bin 0 -> 29914 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 amr-wind/atmospheric_boundary_layer/neutral/performance/abl_neutral.pdf diff --git a/amr-wind/atmospheric_boundary_layer/neutral/performance/README.md b/amr-wind/atmospheric_boundary_layer/neutral/performance/README.md index afa5fb5..37f3dbf 100644 --- a/amr-wind/atmospheric_boundary_layer/neutral/performance/README.md +++ b/amr-wind/atmospheric_boundary_layer/neutral/performance/README.md @@ -1 +1 @@ -placeholder file; put outputs from code here as well as processed data that can be plotted. If numerical performance cannot be succinctly summarized in the README of this case, add file to describe numerical performance. \ No newline at end of file +The netural ABL case was run on kestrel using 20 CPU nodes, and was run for 144 hours. The postprocessed plot comparing the results with the reference literature is attaced as `abl_netural.pdf`. diff --git a/amr-wind/atmospheric_boundary_layer/neutral/performance/abl_neutral.pdf b/amr-wind/atmospheric_boundary_layer/neutral/performance/abl_neutral.pdf new file mode 100644 index 0000000000000000000000000000000000000000..12b415bd0530b8495c2055cc759f6134efc84b86 GIT binary patch literal 29914 zcmcG$1z254vo@Lp2=4A1m*BF|kl^kFcXxLS!QCOayA#~q-62S@Ai*s-{F`L*&73p2 zXXgIr-e*5e_gbr^x~jVC?dopGWCVn08R=MH$V!#~#f>nG00w}St|<&RH-KKj#o7Qs z&#z;zV{T;xpqJ4xGOzu9fcZxTdSz){Qv*GF0Nc+; zL1%kmd3zmu0|3j<7cx5b_6D|=0M@5R7d@Au* zo;-d2#Y71MOCx(@0OKDG3z?XMx(%QgG6(TOz(CJR-{6UQJ9}FL9Sa!el(+;*D?Bz7 z|D*d?&antt{nVZWr5C+k9|X14L=bEc!b{kh^p7|-``RCFJc3_m?-Gb+iy|F-Z#Idx z@@RQCa<)D9epy|k&C_P>;lz;h%YEYwr{HB&8zNnO#GQxJM9b-p+{ESB}tT=B;0W8%>gm z$6E}Eh_}y7;Ev%@**`}LOMS^KbXy?c(OC66n! zdBy$O(c^pi8_T7$_f1M?-x6wvT%va%C;V??7;&4rztVl-`2s~g!eyR%FLIAbcsT*t zh3}q*A5|nxx;ph@l`!xsTmZ2ZV}YWQA2G&wA)mA_GLoM(i$$UNpbEqU69L%>Tl_8( z{7u>ZtF*(D`3~u0%8C4>@HJV4lgLQ-5S{eC7oOh2M?4qSa1oA?!YHPjn!$9dUEBi2 zV{3t=VF57;I3kT7b78Nb30QAwgf~sNQ}RO;+cqnco*|sbgb%w4r1d(ac_x~tGcU^S zMDR-1=6>jmH<~OW!G*TdJK0Y=(zG)hhN{I68*jioDgLG}X4ghpxRErPia@|H*>&2xk z?_pZL21=RoR$gZ|q|CpziFcU7^N_BlvS}WdQws7GLp=~Oh3;`S6wl?>K9K+nlFzO( z^UOTgb2n|EP%0`f6@DqLZNYP1)bnnghAOYJ24y-WTS55nBJIT{e6QF1>N*Z1-RIkR z{^+CJNg?$vo!lDWN_c8+i#>RQD;DDwHl9%9JEj0nOx+q`i|W;r5tG_?TR#h_p+bAD8W>Y(rU=B}I@QpT zg~d-%qCRAyhou!&W#i#v^p&YJSRF*9ZShjetJ+|nBlb1JW*5;;0>cfnQ^BJ}F@bws z5>%C(_?}3acsm#(3x&aYU05n_9G+ralBTBJCQBwd(GGhEJCMK5P7)8tj%X@Cwgz*e9HOl72ldLtN+y%yOP_2nPq&)Mus-4rrKa0&N07N2U9DI9#SomI$1SUAnjg^~jGk7S zEa4~hUeejf29(0*IT)ZSpdPm(s=W`q{6bKO3cR-MGqQ_myzADLTcI-qBw^CGR&?H+ zeOqYLOy`VYSmESYeEr~VI>)*7Ehc&F=%bc)0O#>%MI9DCuuF;MOmXp#J3jtAx;diq z1bYN^C+jz3@|g;#`pxjegT!AXz%|HEV0mWurV_-v4Q{-!*2l-;~%K-7h?Je0{=vjKfeE> z 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 literal 0 HcmV?d00001