From 24d404e47c7e57dafb8e853e31c728d108e52a9e Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Thu, 20 Oct 2022 19:24:34 -0300 Subject: [PATCH 01/75] Update readme.md --- apps/wrf/readme.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index e748a6341..8e4850dc6 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -1,4 +1,13 @@ -## Install and run WRF v4 and WPS v4 +## Install and run WRF v4 and WPS v4 - Setup guide + +## Install Azure CycleCloud +CycleCloud can be installed via Azure Marketplace, see this link: +[Quickstart - Install via Marketplace - Azure CycleCloud | Microsoft Docs](https://learn.microsoft.com/en-us/azure/cyclecloud/qs-install-marketplace?view=cyclecloud-8) + +After installation, to create clusters, CycleCloud will need to use a [“Managed Identity”](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/managed-identities?view=cyclecloud-8) or “Service Principal” (either of which may need access granting via IT), to create/destroy resources. Managed Identities is the route preferred if CycleCloud will only be creating clusters in a single Azure subscription. + +## Create NFS Storage cluster +- It can be possible to include an external NFS share at this point (in the example, I have shared from an NFS cluster using on CycleCloud template) ## Prerequisites From fd66f10d3caa9a4c2b2d8f084ab6d70ed9ff1966 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Thu, 20 Oct 2022 19:29:35 -0300 Subject: [PATCH 02/75] Update readme.md --- apps/wrf/readme.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 8e4850dc6..59fd9aeae 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -9,6 +9,40 @@ After installation, to create clusters, CycleCloud will need to use a [“Manage ## Create NFS Storage cluster - It can be possible to include an external NFS share at this point (in the example, I have shared from an NFS cluster using on CycleCloud template) +Add Picture1 +Add Picture2 +Add Picture3 + +Changes: +- Change OS to use CentOS 7 versions +- Use +300GB storage size (space to download WRF data) +- Change cloud-init + +``` +#!/bin/bash + +set -x +yum install -y epel-release +yum install -y Lmod at +systemctl enable --now atd.service +cat </mnt/exportfs.sh +#!/bin/bash +set -x +mkdir -p /mnt/exports/data /mnt/exports/apps +sudo exportfs -o rw,sync,no_root_squash 10.4.0.0/20:/mnt/exports/data +sudo exportfs -o rw,sync,no_root_squash 10.4.0.0/20:/mnt/exports/apps +EOF +chmod 755 /mnt/exportfs.sh +at now + 2 minute -f /mnt/exportfs.sh +``` + +Connect to NFS storage cluster and check mounts: +``` +# check mount +sudo exportfs -s +showmount -e 10.4.4.4 +``` + ## Prerequisites Cluster is built with the desired configuration for networking, storage, compute etc. You can see the tutorial or examples folder in this repo for how to set this up. Spack is installed (See [here](../spack/readme.md) for details). From df79228e2765567a0892f44cdf872844901af1b8 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 21 Oct 2022 12:12:53 -0300 Subject: [PATCH 03/75] upload images --- apps/wrf/readme.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 59fd9aeae..3c23a6eba 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -1,6 +1,7 @@ -## Install and run WRF v4 and WPS v4 - Setup guide +# Install and run WRF v4 and WPS v4 - Setup guide ## Install Azure CycleCloud + CycleCloud can be installed via Azure Marketplace, see this link: [Quickstart - Install via Marketplace - Azure CycleCloud | Microsoft Docs](https://learn.microsoft.com/en-us/azure/cyclecloud/qs-install-marketplace?view=cyclecloud-8) @@ -40,9 +41,23 @@ Connect to NFS storage cluster and check mounts: ``` # check mount sudo exportfs -s -showmount -e 10.4.4.4 ``` +## Setup WRF cluster using HBv2 VM +Summary of steps: +- Start NFS storage cluster on CycleCloud +- Import WRF cluster template +- Start WRF cluster using HBv2 VM +- Prepare required folders +- Install WRF/WPS 4 software (via “azurehpc” scripts) +- Download data for WRF 4 +- Edit data locations in WRF config files +- Generate WRF 4 input files, change permissions +- Run WRF 4 applications for testing + + + + ## Prerequisites Cluster is built with the desired configuration for networking, storage, compute etc. You can see the tutorial or examples folder in this repo for how to set this up. Spack is installed (See [here](../spack/readme.md) for details). From 8516c5b5699017f2508ad89c0a4cc7aa5bfd55b3 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 21 Oct 2022 12:15:36 -0300 Subject: [PATCH 04/75] upload images --- apps/wrf/images/NFS-Cluster1.png | Bin 0 -> 59897 bytes apps/wrf/images/NFS-Cluster2.png | Bin 0 -> 65005 bytes apps/wrf/images/NFS-Cluster3.png | Bin 0 -> 77622 bytes apps/wrf/images/wrf-logo.jpg | Bin 0 -> 4757 bytes apps/wrf/opbswrf-template.txt | 505 +++++++++++++++++++++++++++++++ 5 files changed, 505 insertions(+) create mode 100644 apps/wrf/images/NFS-Cluster1.png create mode 100644 apps/wrf/images/NFS-Cluster2.png create mode 100644 apps/wrf/images/NFS-Cluster3.png create mode 100644 apps/wrf/images/wrf-logo.jpg create mode 100644 apps/wrf/opbswrf-template.txt diff --git a/apps/wrf/images/NFS-Cluster1.png b/apps/wrf/images/NFS-Cluster1.png new file mode 100644 index 0000000000000000000000000000000000000000..5d81fb0ecc50ab903eb63f63afe9d3e18f378036 GIT binary patch literal 59897 zcmbTe1yGw^*Dl=R?ykj(TPYqwaf(w~+@0d?P~3yNmEy(SA-F>+?pEAA_{l?`_x=8V z&YU?jCliLrJ$JIR_g-u5OBRGFDM+ECkf6MJ^$Pu?wD_l2uV7AJy?Tv}gaExlt{M-9 z{(9~BNlNrp`54(A^aY%mh`h+FS5?ud4+iki*T{C#8ji1C;W+*C^LoXU((To&J%Wv zgDpt?J3s7q9@0a{P3w&=5f(mP^@LD#$3=RR$?;O^Yp)fq9ibar+_!Synwt2Df(>4t zx0co3_by(yTgi~U!fY_iI0styKTltK^)=$Z_iV%X!)N`y+koxO|KaizGtBC5FBtm8 zg=xBN{~vAWQKRzaThY-k?<Qh%;Oh`63+Vk{7#<`d|>Pzoj zE4LaTpsStytg@;us0P4`IJe+IeWA4D_=RjpJSLg+FjE^lEd_L!w4!c-dR<5d?(W4N zJJy{`%cR%s?Ug#~lq*G5M@H0=f3OZ%3ZYRxj{>< zZAQ(nh7Cd2t6dD{7|y1{Rlj-eLqVxG>^bj z-X0n*`=RF!D^S8#Qa-)9$x4xhr@)jMm5{-jTjI28BE-+lmPfpgnoWQp_5fzBfr_Hv z+}LS@BgsvGs^!M0oT7MWxGN2!vybz#^CQnlN27C%LvZn?<>2z_@?(u8{HVS7x81__ z9nA%1V=8M0Yb{{1^qWkjWKXGteljcmDY2w>7s74Ca(oYOk9T5fYYmLT-C&bUru|H^ z<nYa~~zP>@XiJHdtt{$O{+3N;2D#Su zH~1irj*V&C_I?L3F1SFO6NaD(lf`}f)5VlPK3-ftL}z@k3j7L1`=E)#$K>WEaUwac z&Qug{4{EMHl1a6`B3YgJ^vc($K2KPykMD>jx9dX}b$-}bi0PWXYt1+^FgOa|Et@x= zDxPAL9u!qxS2ng?ctwiH`-j3B+g5}5rz{5b*E)7N)>15@OqXyaHNqp2%0jLYmdx0g z*obg{7P5h1wFVsYflxh6PfJ`kxWHTpWFFPq;m6YV6Osb9Oa%G0;=qD7j4;7!WgpRo z%OYYymwc*1P4ewpZYsx30d=j^E>;d0eEJ2Ym?nY<)2Gme_H+ytBcmRh6EYKuC2UMH zPv$vyIDKDaZ>=9nO=j#E$Nc_XLRtp4CQ%6iLdnX1*IJvXR)3R8WkmaHKooM0I>1rj zfhSXECCmpKk}`?xb&pJopx!;kMO3_(Iv_V6ISnL8;o7v!!)KIfHr=uf9V(WPwI;4M zY(0HM!L^c+Cw!+lWAxTXYrvtg-&C1|+*Fp3#?aQx&o>$-+vz7b_lVD{l&}j-L&ELN zpl{2xidi$yRViQ}-CPi#D-lxJ=}r-8O;vF2; ztSl_OZwzFE=dywzMXy-W?l6|ba1+VXqG`ZOXbL4fZ?@uF41zWtcH@HB#J{D}}$TtA0c-&juxA0)~s0@)NC(?}t~BzTDy; z!~ws1jKY}|9!-N@%IUT!&D2+fET47fxsc5Ln^ED4@0ER^@}BL>=U{nNkvX-*Dn!G9r)?a3I<6D}x5t@T zhP!&ErPI^8Z*Mq$AJZV`$S^O1wQ5;nO}1)j5U~ZcpXE)S5ttFO6LDe5>Yq9abGWw- z%et5zx^syAXSZJQl*97C__cEwE&xHx{PCfY1ygW{RI^KBG{Rh98SgXiMbt18w z1qZh63s9w|lVM>MB+g}sgP8yNY1 z_Vo6c$Exh*DV(OS;EwNoH;+&=E+-K z<4V&}y7Tq6U;~Xss}hfKpLF>PbTf`^BfyVCA0(3ZAC*(~8#PxH-#JQp#r+PF+T2~w zw5xj;5^_Rf^>Hz5Y58M{^?F!F{0HS80XTl9R2Llw-gzq8;J`-o0%ih(jS)JIcklK? zO(J%TOajjv@AhdnoGmKYN!=6QJ6ZUb_#w{}WYhKk6S0+38c1Gs$3;aHY zGVLu9V8TNEay=|icKui`y&vHex&M)&805CJlQLrV0I5~TD^6kb+l~0sSHZb-Tcu== zahYg*I|XI9hc!u0IEkL2`}1@JU;0K#XVYEoa~yy^cFLO*`n2XZHjc5a>=w4)IySw; zk0*-HY*>4|RAdh=VZOeb1$Rx{Bz#IadXinI5EWelU5zov%FwZR|FLVO-zN3Us0u8O z05>EX^*Rt5tL}mtL7f9GoLv{SCtRO3K}KymhI8V!$q^x3hLsGJj&G_RGjVzH@QY*% ztJyiQI(0MYc>m&7LJDiXjOy1NDh;Wl{QCkrfj##rYstiSbM}zSBULDPv0UdGM@zrC zD)ma_NB*T{8Wo_qfX_OYPUJs`yCUI`Q_VK@jM+n>q)=IAg=jiohSv=fl*KmF%{Epk-vkAy6Z;%!Pc4itIm}uqRB^%SoIhX5&E0!VCh?1x zM39pq4}_YQ*oIX|!=qmIjoLdQ1$D2bn1&KR)}n`0O-*VX z!LEk8NqM^k=TG|Qy*EM!W(mMgT;A4m=QjVms5=RB4(KE?`C)BuN}I%I5kPJ~N3&O{ zZ4jW-o0)0$^W4$yyEHM`F)GrB7^(2qzqG;8;CHxnPP=+rm8ZW}GJzG!xu_dc;>_iU zJBkY2@F^1#eq zhg~f`8h6`bZ7FMPYt}LYTeH`w%${?C^E7WSVwNNgGtG}ZWRT@=SB&RMIleXJ(*acP zXc&Pw5!(J$Ei!x5jsSXC1?CZb6C(^udNsK6h`#189vecF9={r>=xn%ISj+Tj5K!61 zZ0t1lLcFB}wjh^NRDH7)lEKV97o^>v9{_v;3x;2I-%kB@`_4&;P_k5|RhIUZWf4~K zY(7mhrAq^#C~gcFsoM0WUJ321Lio62B5Pz1zdGMs_cSXJVl+eQZG3+OmigDvt+z>Y zDfz}L7xlfJA{jM7QH+N=8S5L(C|Wnnu&Ixoo$5!UbnpKr$`0dcLLyu5ajBfKsVSB0 zQh}NA#;@4&WepM#0TnYBIpR4!v7q|~Uz#SKps=!Dl;l-=ULD50iwRA|BIo-w5>W1O z&z{-t45e^RQgUtXwL0s5x`K+*>Zj<|451A#*B>8v7rhA5zA{z$x)Qu|ITAB@Ebh1A z*A35{Z&6Y%aRfz8&n0L2MV1Ox%jdC0ao3q!0j~H)>rCcSWBmdoWVHI5?>yc&?0eDK zR}76RYP2kmh&;4-G}2?vqO$&u3~uOZp*@^Nf3D zX$jWB?g)rIIPe~A)%%7V74X8< z(7GR{=c|mQW^qWkxVSO^?r{PCeQdH5l$Di9fBd+Y(Q|h-tJnSO7ZyG~KA*!MB*gzd z`t=x?n3=IjNl|559SKSPGpkqMaY$@v2LJPgkd_etuL8jTK^IV8OMOkn%d4hq{_U@X zu&4KONk~XXmo@VLcZr!f;$NM?^p(D!83NqDb5HT}gU=$y`p*Ce2sjY-b_k5{6NCm8 zFzH(f=6Z=}G_-$~?N7WS2XxsUj!G(^<2*s%`7(y7{%)M#^Y#IzWe&`is5YrO@?f7_EAk19tSC7IsKblurR0qsSd<{cWDIN2{S%%GC}WWYc29c8C&Kj zC|5@(sE@`jQTqNqhUHxUsLO6uz0 zx_%hGFJdn)sK&a54`N_o0H58xHKF@U*|T5$GoF+l9FX0DE{n*6^w`sa+9d(S;_cTP zqpp-3H|wPIYOk#KNjv)9bEZ?ZKbb#+th54VL(n@fHVJd2ollKCyH6oBH(l?&C|TF~ z=_&f=q$oOZHz_(d$2&msAthBpzi=vm-k22bmz)5%RU)DgD`kq2mjJn-hss9K>3RCu zN`W^NIj<)W&(?|%4QhRotDBGC_)y%u0csEwv1Aj<+dUuYMBds_^h7%m$~3@j*0lt$ z^({*32Wv%YtJRog#+Ftpr8)MRuy)l}w>|A)_?hZ`>NpZf?@~6qPcFiMZhW zz9tt<_j><#?%?j1(JlQd7Ngj+ypb+gbvRCj&CV9aRbzTt&=JoLR5nkarc5ez0OTj_ z&&X)AR$^S%mco8;zRX^?$AWGF;gNKSGLHAM}xKGm`N zAM(6}hSz1cDc6_XZo5GZ`a65CA1Q@ei+&K^ewXC0ApoF&>5-ET;7V1|mPf*h0I-mVX}WCuGg z@$CBE^Q~kaMs~rHo=tTd;rR*Ilj2e|Q;xSkqtlot4d@H`o_p#PYmB(Ry8m&f})oO@rAMl=n%qjZnB1fTzc* z&3xnV^zHjAFWSr%S^KLtDx>FPZ8XfBy7 zFi5x~YP|uo53OICE$1&$R?Lk6``(YbBel*6-!!^uD=zXq75?CbS#_X=&ldK^%<{St zihRB_@_O2G16=%K@ZuOIkCM+%x$A*-vkcB$Y7m&l$3$-)!+4`1$C88i=JRX|7q)@@#KPT-$)=9M)>k|ip0eC z*P+$V$T#SepotsctBBA?8T5zcn+@Iu+NMl%KFuJ>G986SmsVjHj;t)JkeV;|e~a2B zp$^b>y#oy}|@-DZ(*#)YtT* z&b7tQB-xj|N6FR86|$@avjP}T0D;fiTu65Z*RQ0w&h|$e)=($W9R%&&a(Ul+Jz%`` zxe;o2d*)xdUz@B%TQ0USd0{fdZp}y!DgDAdXhK|g?=v*kE&}1KSCZhOQ(!-ZI*5}E z2qHP|yrNA;Y7%zYH}ar7np2y9i-;^_y8|idpNDTp*WmQ4biwG04F(;b6agyH>u1KK z7k#m+fVxO1(GuU1SudklV|5lRR)UD_IrQrBWYyI5H;-xd7gY0l;6xNxu_ita&aEAM zt2=AiN-8)fgQydWC_Z=*FmiLmE%@u$)j0Gd1-!rblH;aEX2mjEMJH7%s0{ib=xHS_ zRAhs1=EH)S<-7@t8mbRD&u?^snShWJ|>xIJa zKS^xb4=Od>lwXsp?GTX>N?y9)F#iPtldjMeT#oksHi#;3VllD@2UL@GUbq&YyYK1j zpM|9$jZmIrso&ZHcd-&7dk$k|rhp)aOn+vW`v(c5=hNyiNqJ1D?DfboA~sK$%fyB{ zjppbw}?IPyF$PH;fEP4oFf;w#ed-9S&gLHzo1B{}AO6TcA z;>XT60m9N_hgcPVxVwhioiFXoLReEW$Z{)1J`~DbZ*XBnOV;S(<)nlcJ?{1w)!#lu zJeeldH#82Kp5Gc6oAd7_cpAX+*JTM@SzSh9TfdJ`jxDf< z`RE<95%J#{$-6N`K5iJ#qshAnrTD%IW(Hsw%z&Xt`m8A{32 zsJE3$GFTQL$@re`CP@8+?Kj{+;p5HC&1wIFyiH$$fv|xn57}(ECp#Tns0Ou8pvE9L ztt9jSN>FFvy%CcXVMMz`tMbuf?kSfBX~EJYo97*^z`a@Z}5szv!|5*(nA$ zmh>t~7xkf2Q~#!2jz!BR3XWoF z2@7_{`pKi~HuunFA1n(A`oxdbqEC)Y=`jhh0X^Q+8&&i%It%_8o8YHv0jn`UAi2b- zgYfdj8sy-A(Az{I4oRH-P^fE%%+HJ^Ch>F|3qhf$n8wvD`?|t%dj8~t9-~?#rNPMh zEG=o>6e!qx!9`qlm-1`;d>+{UMTO9h{NGUF|J+>(cD(fbpPYI@2>)+y)q(T*fd$zT zUEBL1d;bM{b8Xl1uo$lXzn_f+&DU;ZTzzvx&~Mxiu`zBKAjdF&k~hv$1PhuPYtMuh zwzkO=GcyI^p6S&rKkCZxp-jTTyG8wFVsfi{Os9JC-}0N9n!^mnGD}NYG5~`xzB##} zji5-&i3Rs;;LhD0LPBEVI@piwa4y!br-xQtQqpL2;R*>wGwK@{i@5#i_38DQgt>Xj z96R~+^z=U0i_tKt)jR|C<$Ar%aw;bbhVeBJ?b20I2@nf8@1YDK4~a=)D7FelsxccU zta{b=cH7R*Avhu;ozI3ZJR)M+?1iBfG&o^Hq*jSAnVAXPwjT`qo=YY`xbzC&^YY+4 zuMZ_;WYQ9B<4zkJ-K_9%+W8qZ#BmG_H!5wGJs`L6;OS|d2l-0Bs$ya^RU(6V2Ur%J zpV4%(Nk*K#8zvi1?^v{chL{Xrey`|&@t{sR*b~zm{{Wn^+>*gwv9q)DFUy3L>#0g& z(Fp(bOX>5MFU33k|HO}+?H=_hCg7S=u8d_$9?kK%68!95TU-16#}62Oe#9!HehkKq zbRHYYjRIO)I_usU>tbnnc`?Hc(?BV4Y6b?lV+!5M`ud=%D&osaRVO5f1Jy19LNLes z_XIzzF;uXb(V{Ai_Z&ttTV8c2W(N(%7jE2B`t&91$@kD_gZe#Bd;@27JyFL2_b?RX zH?&zEckW)0b@~(@X9TpU$n`&eV5FqXShO4AvZJ3-FoggZio%a9Ufz#NT3RLTC@)OX zLzd7l`*cf9TeSNUmF4siR{j#8s}kVv4|6zQgPEEtC}A9S<4W&xw7_apQ)M#D6Br`Z zxyt@wpt^=dWnz*G>vvg5uk2-&Q>q_}5ho94Kz=^=;UW3j+AbU^sUQ(?s(xozZ_3@h z6XO=`oNdR&YhABBZot_eN4JNtLKDC>go`?>tFb>TF79a{R}l%@mkblYhjFv~T-oT2 zHx9hP0Y2<<$z=+Vzuh1M^t|!QvRtU$bK8t+*aEt)dJ7-7I`UBv-!$Su?(RIU65sv9 z?VtgQ^f0UEhz^((t_0s?ZEu?mM4)Z;m&?Glrdqv{F!&dm!L_M)h; z=(USVHvun=>zAYls)<=xO7mkD=jVs3@o9{3q53)=m+4p^d%REY?5Y=i%@%YXKwY0L z^w!f2%TK?veb@1+R@gU+3$qBjo+7a>>CaASqBlE3`V0Vr5}P`$*mLk= zF4pJkkEU@~kM!sVaT2gd&T#}sP*nn%k6e+_H5~beRGgLySuSJ`_sFvXh3ikCeYvW#1qTtxSf(lYMFV1 zB9hFz0&CxsQ!|v?r0=BNtQ602A$p_zp7Im?lL6yVt=vH|+;(wcHtxpL>jJq<3}#EM zQq3*qn)`U4TY1w(MoYzN_GtQztb2->ad{YDM3c2%{@Yu7gclw&22bE-`T?Sc2N9sk z-NMIbU}BQ=@$tiR3irOp7`VFtf5)1e7Ze!>tDFA%_$w-E)PSldxo2s9{!3DQ3X+9h ztvRC)q5sq5c>L*fU>Ia~bKIotw&lb-ly}t&v7+@ZcqB{sapc17u&U5xCIilMAV$!B zN2mL=7VA(=*Bu|KW4zP#y2Wq3JTGy(O`Pp%o;}+yso1QW)g}D#Sim>4=yq`A8W`CT z0*yyKKtCd6tvmX3U5auuHyYSUpY0V4O**n{A0CSAFe2e6S+D2r=oIb)OpO8~wz281 zu1^YbI<@AUKI!k!SACype4zQ8di#9TP@M8E$WT-2;cgLcBuhvN#p~-=rr(p3Rld(Y z{GHdk6S>vgf0c#8kbk5XHdDVs)d+NS^rCWL@X!#`=L9wV@fB~R=urQV9hsC=EhvIU zLO^)S!BrEOn3##>L_e=OF}jR;jiFFY;l2KYE(NF~eWw@?Ed{G@PP6}zTAb#VmYArwAnn7~U08&U_vz9`a=eA#5fEg4%l$h}eGI1?mP zy-o&|a!a-RCa9vK0?z`)x61d!H(?l9SS(s<4h}34kxpuVEHbjlX(}r9HjlbcZY1mm zDk{yufvq~rS;NP>t2wM@5tkHXR8-uPFr;~pcQCQov7wQXqMvJV4Au=CvQy^NtrQj_ z|NJqwT5800cXvM*`g=&2{i9s18{)bRp{TUEG{rclNt57IOU|UJEZOijeK}6HbG!2FPU%y9v+Z^z2GZoC2{Elj4Mo z`g;w^dvIg|MdYyZC3TMBJdUuAOygsq>L^qVh|q+O}N>rjxnP%&!nDo(qk)W zkU^SPr4eOeJ}-k?R-@J)Xd=L_E^Hydepl;EdphKS<6@!_+7hZnbwYbLC7d-DJtjy+ zMPYAm&*uf9C7GH0#d&`4$kHd7hr{^` z4(A0Y#(m)j2x|M|HDcuRgKX=~ij>>dG_Q%J1dg?aluyUo-AoOqxXTblnq9L9!DF&; zDGKk;8PS;|-&Fbl3`*ik-_s=2sFg}{O-#tGXGK{i1)Ag!C#{<{)g6RbEf>wnk1EIt z`%Rh@4p*ymHD<2kZ>As3DTg*xRDC83i(T-*W@H>mSJWx zNv%Tgk}F*+K&Tf;-3kz__nh#s*8{2s&q?MS(}a5=F!l8lG9qFK z$XWrUK)z^wWVOXZPhSY?pI->SdS}%O)GX@9IdG1axT(8xG4#D9x~dx5JQBD*V%$AD zK0dCdXs<6kvmYq?-)__WE{`n+ZM)!xXSHRS)^9ILK89*s7OXlco-*IH+`NV+}37|9Y zbhcrV!tV$=ta{qkIvFH!9x6RR@l^a>PKtSjN3H?k3W~X@=^2Q1-Q3CcO)|8yus}wI z`Z@yLUH$^S>Td)DG+PVEh~FC|h%bzc$Q|0gR#8#Wh*oIZEv7+Bto4dlX;C{VQZi9rZ z9s-VWp3|E7woz)_Q}|~{?E4iT4s~vqU z#mY~1j?R)wJ#VLmM<5^V52aHzFm*{^k-~EIoctb*Yk1Q+OK|NsxC^8$VqA^_Co->Z z)T3A+M(1qp`ZT7GbUp<2A%)FH_BiXNaCu`Ks+RTToRb*ahIKxjznw}x6m?sAOB-bS zttNtb!-aqu(aKWPRGXo-$5M~9mg2P~O^n_ms9;~z3h6vJqJ@yUfecG5^qKr6C>dDQ zE5(yWl=_L9e_>zA2&Y$Ovw7g%)&yfY6AM|B(!=>gLg1fJBqb%)s|?}M&;*QvTDiZq zw*xQHFMG}6ire4q%dXN24zXy}qahgH$I(T^CS>H9W^ZZ&TWCsWaJOXzrd6yc6m z=gS(Hn}_mI?M-1+(-#$FB49a{dwARpHI;uy{S>y_sN=Wg;Ze<{00l*N(k~$Q{T<6G zBJZ71=O;%vM0hYSAJU+pW6y%A6`D)%b3vQAjg5Fh138Zs^M@}s)Q3y3%AYl&es(W% z+75m0A>#{P&S5q<>G;C0Ka9k%-i-W zH;SbUvdWrEI0Z7HSA>>`f5@!CPi~Z@mr+vkIG$vRrc zz^5JloX>O@A+o0OX)>^9-=MRL?%ZEuYAm+;L}>6fb>lU+$AZf?-~9(a8FS#>u91C~ zY^8ZDkvU6VXCJk@USC&`Ay)N=)?oN|u;r*Gpm(f z>L0gcqc?(6FGH=rDf~j4cFcQ%+MYRSXEdGuU|r*-(RKSXbRX}H9u2lzG59^}yGHc+ ze@6u6)e&@lT7Bg=5w;wY;i3t*P#;Z>27Et`c=9clikU>NY=bAZ3AjO?zt? zlqtxQe|(=k)Q(FS0JdFD3zvw%_j|r-SpDMXi-if0-r~}cHNPVh9lNK<40vt5Y)5r^ z(tgkOlp>_1t8Fn;sVmD>DJ?DwQp zpZ0dh(d;UR^}>6`H4=~l2=a7)^5?1f?Ea*~s4tSZ8a@xf1X8Gw89o?KKfD=}A}A;r z;4wA%&7cp>-e$pl>=2;WoWI%B)KvB2?8#w5xp~-XhR)i@_DtAB%`+N{lB%w^MBMZ; z2DbWd5?B$EZJ?u6l-rz~i=*~#Q;(4kR7gSzC0 z2tLHHmJ;f%&(_5V*`!5-2d#)jHyR?0PQai`D?9=<>Zx%81C9MWl{hOzRB=;tQD3Gg zMBeTx1Mcg?Q2*E}QWxVqqka(iz=G$i{`3VqK1L*}16KyYS&A+hL_IQP`YIQshhz1| zvSn&lYshFipG1J1HoDVTB3j+9TQ!m{m3e zH?6={_Fhq{(|CHt&fLwcgk=)}_$L5eJEb8cbmIKy&yL6IbUcf=tz%A$-?Z+su=+om zn>9^4!`eJ=497C&A$JG1#^?YM7)5e}_WNVO2Wa+GyXXeMJ%mvDfD;&11pKp-vo@3U ze4x@oLTa|KFVF|~{uhtO(#@(b`*kJ@h2y^aKEk8O59Bg#ZP*vJr|_4=TDI@Ath$zF zQM!leECRc_$5�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 literal 0 HcmV?d00001 diff --git a/apps/wrf/images/NFS-Cluster2.png b/apps/wrf/images/NFS-Cluster2.png new file mode 100644 index 0000000000000000000000000000000000000000..fd8fba9ce86529949f91c97dcbb23c3870b9db29 GIT binary patch literal 65005 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

eEx*Q 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

OpenPBS is a highly configurable open source workload manager. See the OpenPBS project site for an overview.

" + +[parameters Required Settings] +Order = 10 + + [[parameters Virtual Machines ]] + Description = "The cluster, in this case, has two roles: the scheduler server-node with shared filer and the execute hosts. Configure which VM types to use based on the requirements of your application." + Order = 20 + + [[[parameter Region]]] + Label = Region + Description = Deployment Location + ParameterType = Cloud.Region + + [[[parameter serverMachineType]]] + Label = Server VM Type + Description = The VM type for scheduler server and shared filer. + ParameterType = Cloud.MachineType + DefaultValue = Standard_D8as_v4 + + [[[parameter Execute1MachineType]]] + Label = Execute1 VM Type + Description = The VM type for Execute1 nodes + ParameterType = Cloud.MachineType + DefaultValue = Standard_HB120rs_v2 + Config.Multiselect = true + + [[[parameter Execute2MachineType]]] + Label = Execute2 VM Type + Description = The VM type for Execute2 nodes + ParameterType = Cloud.MachineType + DefaultValue = Standard_HB120-32rs_v3 + Config.Multiselect = true + + [[[parameter Execute3MachineType]]] + Label = Execute3 VM Type + Description = The VM type for Execute3 nodes + ParameterType = Cloud.MachineType + DefaultValue = Standard_HB120-64rs_v3 + Config.Multiselect = true + + + [[parameters VM Auto-Scaling]] + Description = "The cluster can autoscale to the workload, adding execute hosts as jobs are queued. To enable this check the box below and choose the initial and maximum core counts for the cluster" + Order = 30 + + [[[parameter MaxExecute1CoreCount]]] + Label = Ex1 Max Cores + Description = The total number of Execute1 cores to start + DefaultValue = 1200 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 1 + Config.IntegerOnly = true + + [[[parameter MaxExecute2CoreCount]]] + Label = Ex2 Max Cores + Description = The total number of Execute2 cores to start + DefaultValue = 1200 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 1 + Config.IntegerOnly = true + + [[[parameter MaxExecute3CoreCount]]] + Label = Ex3 Max Cores + Description = The total number of Execute3 cores to start + DefaultValue = 1200 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 1 + Config.IntegerOnly = true + + [[[parameter UseLowPrio1]]] + Label = Low Priority + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Use low priority instances for Ex1 hosts + + [[[parameter UseLowPrio2]]] + Label = Low Priority + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Use low priority instances for Ex2 hosts + + [[[parameter UseLowPrio3]]] + Label = Low Priority + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Use low priority instances for Ex3 hosts + + [[parameters Networking]] + Order = 40 + + [[[parameter SubnetId]]] + Label = Subnet ID + Description = Subnet Resource Path (ResourceGroup/VirtualNetwork/Subnet) + ParameterType = Azure.Subnet + Required = True + +[parameters Network Attached Storage] +Order = 15 + + [[parameters Default NFS Share]] + Order = 10 + [[[parameter About shared]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "

The directory /shared is a network attached mount and exists in all nodes of the cluster. Users' home directories reside within this mountpoint with the base homedir /shared/home.

There are two options for providing this mount:
[Builtin]: The scheduler node is an NFS server that provides the mountpoint to the other nodes of the cluster.
[External NFS]: A network attached storage such as Azure Netapp Files, HPC Cache, or another VM running an NFS server, provides the mountpoint.

" + Order = 20 + + [[[parameter NFSType]]] + Label = NFS Type + ParameterType = StringList + Config.Label = Type of NFS to use for this cluster + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="External NFS"; Value="External"], [Label="Builtin"; Value="Builtin"]} + DefaultValue = Builtin + + [[[parameter NFSAddress]]] + Label = NFS IP Address + Description = The IP address or hostname of the NFS server. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + Conditions.Hidden := NFSType != "External" + + [[[parameter NFSSharedExportPath]]] + Label = Shared Export Path + Description = The path exported by the file system + DefaultValue = /shared + Conditions.Hidden := NFSType != "External" + + [[[parameter NFSSharedMountOptions]]] + Label = NFS Mount Options + Description = NFS Client Mount Options + Conditions.Hidden := NFSType != "External" + + [[[parameter FilesystemSize]]] + Label = Size (GB) + Description = The filesystem size + DefaultValue = 100 + + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 10 + Config.MaxValue = 10240 + Config.IntegerOnly = true + Conditions.Excluded := NFSType != "Builtin" + + [[parameters Additional NFS Mount]] + Order = 20 + [[[parameter Additional NFS Mount Readme]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "

Mount another NFS endpoint on the cluster nodes

" + Order = 20 + + [[[parameter AdditionalNAS1]]] + HideLabel = true + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Add additional NFS mount + + [[[parameter AdditonalNFSAddress1]]] + Label = NFS IP Address + Description = The IP address or hostname of the NFS server. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + DefaultValue = "10.4.4.4" + Conditions.Excluded := AdditionalNAS1 isnt true + + [[[parameter AdditionalNFSMountPoint1]]] + Label = NFS Mount Point + Description = The path at which to mount the Filesystem + DefaultValue = /data + Conditions.Excluded := AdditionalNAS1 isnt true + + [[[parameter AdditionalNFSExportPath1]]] + Label = NFS Export Path + Description = The path exported by the file system + DefaultValue = /mnt/exports/data + Conditions.Excluded := AdditionalNAS1 isnt true + + [[[parameter AdditionalNFSMountOptions1]]] + Label = NFS Mount Options + Description = NFS Client Mount Options + Conditions.Excluded := AdditionalNAS1 isnt true + + [[[parameter AdditionalNAS2]]] + HideLabel = true + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Add additional NFS mount + + [[[parameter AdditonalNFSAddress2]]] + Label = NFS IP Address + Description = The IP address or hostname of the NFS server. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + DefaultValue = "10.4.4.4" + Conditions.Excluded := AdditionalNAS2 isnt true + + [[[parameter AdditionalNFSMountPoint2]]] + Label = NFS Mount Point + Description = The path at which to mount the Filesystem + DefaultValue = /apps + Conditions.Excluded := AdditionalNAS2 isnt true + + [[[parameter AdditionalNFSExportPath2]]] + Label = NFS Export Path + Description = The path exported by the file system + DefaultValue = /mnt/exports/apps + Conditions.Excluded := AdditionalNAS2 isnt true + + [[[parameter AdditionalNFSMountOptions2]]] + Label = NFS Mount Options + Description = NFS Client Mount Options + Conditions.Excluded := AdditionalNAS2 isnt true + + +[parameters Advanced Settings] +Order = 20 + + [[parameters Azure Settings]] + Order = 10 + + [[[parameter Credentials]]] + Description = The credentials for the cloud provider + ParameterType = Cloud.Credentials + + [[parameters PBSPro Settings ]] + Description = "Section for configuring OpenPBS" + Order = 5 + + + + [[parameters Software]] + Description = "Specify the scheduling software, and base OS installed on all nodes, and optionally the cluster-init and chef versions from your Locker." + Order = 10 + + + [[[parameter SchedulerImageName]]] + Label = Scheduler OS + ParameterType = Cloud.Image + Config.OS = linux + DefaultValue = cycle.image.centos7 + Config.Filter := Package in {"cycle.image.centos7", "cycle.image.centos8"} + + [[[parameter ImageName]]] + Label = Compute OS + ParameterType = Cloud.Image + Config.OS = linux + DefaultValue = cycle.image.centos7 + Config.Filter := Package in {"cycle.image.centos7", "cycle.image.centos8"} + + [[[parameter PBSVersion]]] + Label = PBS Version + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="OpenPBS v20, el8-only"; Value="20.0.1-0"], [Label="PBSPro v18, el7-only"; Value="18.1.4-0"]} + DefaultValue = 18.1.4-0 + + [[[parameter serverClusterInitSpecs]]] + Label = Server Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to the server node + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter Execute1ClusterInitSpecs]]] + Label = Execute1 Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to execute nodes + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter Execute2ClusterInitSpecs]]] + Label = Execute2 Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to execute nodes + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter Execute3ClusterInitSpecs]]] + Label = Execute3 Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to execute 3 nodes + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter NumberLoginNodes]]] + Label = Num Login Nodes + DefaultValue = 0 + Description = Number of optional login nodes to create. + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 0 + Config.MaxValue = 10000 + Config.IntegerOnly = true + + + [[parameters Advanced Networking]] + Description = Advanced networking settings + + [[[parameter ReturnProxy]]] + Label = Return Proxy + DefaultValue = false + ParameterType = Boolean + Config.Label = Use SSH tunnel to connect to CycleCloud (required if direct access is blocked) + + [[[parameter UsePublicNetwork]]] + Label = Public Head Node + DefaultValue = false + ParameterType = Boolean + Config.Label = Access server node from the Internet + + [[[parameter Execute1NodesPublic]]] + Label = Public Execute1 + DefaultValue = false + ParameterType = Boolean + Config.Label = Access execute nodes from the Internet + Conditions.Excluded := UsePublicNetwork isnt true + + [[[parameter Execute2NodesPublic]]] + Label = Public Execute2 + DefaultValue = false + ParameterType = Boolean + Config.Label = Access execute nodes from the Internet + Conditions.Excluded := UsePublicNetwork isnt true + + [[[parameter Execute3NodesPublic]]] + Label = Public Execute3 + DefaultValue = false + ParameterType = Boolean + Config.Label = Access execute nodes from the Internet + Conditions.Excluded := UsePublicNetwork isnt true \ No newline at end of file From 6f2543f69d8023c1ccbad93165621c607c55e43b Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 21 Oct 2022 15:22:18 -0300 Subject: [PATCH 05/75] Upload setup guide --- apps/wrf/images/Create-WRF-Cluster1.png | Bin 0 -> 34678 bytes apps/wrf/images/Create-WRF-Cluster2.png | Bin 0 -> 67046 bytes apps/wrf/images/Create-WRF-Cluster2a.png | Bin 0 -> 71934 bytes apps/wrf/images/Create-WRF-Cluster3.png | Bin 0 -> 51005 bytes apps/wrf/images/Import-Template1.png | Bin 0 -> 43977 bytes apps/wrf/images/Start-WRF-Cluster1.png | Bin 0 -> 86560 bytes apps/wrf/images/Start-WRF-Cluster2.png | Bin 0 -> 30123 bytes apps/wrf/readme.md | 410 +++++++++++++++++++---- apps/wrf/run_wrf_openmpi.pbs | 37 +- 9 files changed, 362 insertions(+), 85 deletions(-) create mode 100644 apps/wrf/images/Create-WRF-Cluster1.png create mode 100644 apps/wrf/images/Create-WRF-Cluster2.png create mode 100644 apps/wrf/images/Create-WRF-Cluster2a.png create mode 100644 apps/wrf/images/Create-WRF-Cluster3.png create mode 100644 apps/wrf/images/Import-Template1.png create mode 100644 apps/wrf/images/Start-WRF-Cluster1.png create mode 100644 apps/wrf/images/Start-WRF-Cluster2.png diff --git a/apps/wrf/images/Create-WRF-Cluster1.png b/apps/wrf/images/Create-WRF-Cluster1.png new file mode 100644 index 0000000000000000000000000000000000000000..c89ce02c8cc1e8f67b092fc746a8c5ff45f30d39 GIT binary patch literal 34678 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 b&aJ(h@=fBRTO^`>^ZJnzlNYTLHVpV*B*=)% literal 0 HcmV?d00001 diff --git a/apps/wrf/images/Create-WRF-Cluster2.png b/apps/wrf/images/Create-WRF-Cluster2.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b6a4a1e973dae52a54d2d25a1d8dbb2e0bd166 GIT binary patch literal 67046 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
  • nxO{e8+Kg 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 YIxOKq54)RI9w0wTa%!^W0E>|S3z2L?H2?qr literal 0 HcmV?d00001 diff --git a/apps/wrf/images/Create-WRF-Cluster2a.png b/apps/wrf/images/Create-WRF-Cluster2a.png new file mode 100644 index 0000000000000000000000000000000000000000..9f66c3ac51e0f4ab33d006222d23a564ee27f9ae GIT binary patch literal 71934 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

    oHjY@pvDl6rT{$QBH`6jc>5S|UHwG!H~v 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 S6mUM;m-K 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 literal 0 HcmV?d00001 diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 3c23a6eba..a41650e3e 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -1,5 +1,10 @@ # Install and run WRF v4 and WPS v4 - Setup guide +## Prerequisites + +Cluster is built with the desired configuration for networking, storage, compute etc. You can see the tutorial or examples folder in this repo for how to set this up. Spack is installed (See [here](../spack/readme.md) for details). + + ## Install Azure CycleCloud CycleCloud can be installed via Azure Marketplace, see this link: @@ -10,14 +15,16 @@ After installation, to create clusters, CycleCloud will need to use a [“Manage ## Create NFS Storage cluster - It can be possible to include an external NFS share at this point (in the example, I have shared from an NFS cluster using on CycleCloud template) -Add Picture1 -Add Picture2 -Add Picture3 +![NFS-Cluster1](images/NFS-Cluster1.png) +![NFS-Cluster2](images/NFS-Cluster2.png) +![NFS-Cluster3](images/NFS-Cluster3.png) Changes: -- Change OS to use CentOS 7 versions -- Use +300GB storage size (space to download WRF data) -- Change cloud-init +- Change OS to use CentOS 7 versions +- Use +300GB storage size (space to download WRF data) +- Change cloud-init +- Confirm the IP address of your NFS storage + ``` #!/bin/bash @@ -56,113 +63,388 @@ Summary of steps: - Run WRF 4 applications for testing +### Import custom CycleCloud template for WRF +Follow the procedures [here](https://docs.microsoft.com/en-us/azure/cyclecloud/tutorials/modify-cluster-template?view=cyclecloud-8#import-the-new-cluster-template) to upload the Cycle Cloud custom template created for WRF. -## Prerequisites +Use the template: [opbswrf-template.txt](opbswrf-template.txt) -Cluster is built with the desired configuration for networking, storage, compute etc. You can see the tutorial or examples folder in this repo for how to set this up. Spack is installed (See [here](../spack/readme.md) for details). +After you import the template, you will see the WRF template in CycleCloud Portal: -Dependencies for binary version: +![Import-Template1](images/Import-Template1.png) -* None +### Create new WRF cluster +Choose the WRF Cluster name: +![Create-WRF-Cluster1](images/Create-WRF-Cluster1.png) +Choose the SKUs you want use for testing and subnet: +![Create-WRF-Cluster2](images/Create-WRF-Cluster2a.png) +Check Additional NFS Mount and change to the correct NFS IP address. Don’t need to change NFS Mount Point and NFS Export Path +![Create-WRF-Cluster3](images/Create-WRF-Cluster3.png) +Keep the default value for the other parameters, save it and start the cluster. -First copy the apps directory to the cluster in a shared directory. The `azhpc-scp` can be used to do this: +### Spin Execute Node with HBv2 +After the cluster is up and running, start a worker node using HBv2 VM: +![Start-WRF-Cluster1](images/Start-WRF-Cluster1.png) +![Start-WRF-Cluster2](images/Start-WRF-Cluster2.png) +Click Add. -``` -azhpc-scp -r $azhpc_dir/apps/. hpcuser@headnode:. -``` +### Install WRF/WPS 4 software (via “azurehpc” scripts) -> Alternatively you can checkout the azurehpc repository but you will need to update the paths according to where you put it. +Ssh to the Execute Node (HBv2 VM) and run the following commands: +**Important**: need to be root user to run all commands below. -## Connect to the headnode - -``` -azhpc-connect -u hpcuser headnode ``` +# need to be root user for building everything +sudo su - -> Note : It's important to be connected with the hpcuser which have a shared home, versus hpcadmin which doesn't and can't run pbs jobs +###### Setup Spack +cd /data +git clone https://github.com/Azure/azurehpc.git -## Installation +cd /data/azurehpc/apps/spack +./build_spack.sh hbv2 +source /apps/spack/0.16.0/spack/share/spack/setup-env.sh -### Run wrf install script -``` +###### Setup WRF # MPI_TYPE : openmpi or mvapich2 # SKU_TYPE : hb, hbv2, hc -# OMP : leave empty for none or use omp as a value -apps/wrf/build_wrf.sh -``` -Run the WPS installation script if you need to install WPS (WRF needs to be installed first) +# This procedure uses openmpi and hbv2 +cd /data/azurehpc/apps/wrf/ +./build_wrf.sh openmpi hbv2 +./build_wps.sh openmpi hbv2 +``` + +Create the env-variables file: +``` +###### Source Variables +cd /data/azurehpc/apps/wrf +vi env-variables +``` +And copy the content below to this file and save it: +``` +# Keep as root +#sudo su - + +SKU_TYPE=hbv2 +#INPUTDIR=/data/wrfdata +INPUTDIR=/apps/${SKU_TYPE}/wrf-openmpi/WRF-4.1.5/run +SHARED_APP=${SHARED_APP:-/apps} +if [ -z $INPUTDIR ]; then + echo "INPUTDIR parameter is required" + exit 1 +fi +if ! rpm -q python3; then + sudo yum install -y python3 +fi +source /etc/profile.d/modules.sh +export MODULEPATH=${SHARED_APP}/modulefiles/${SKU_TYPE}:$MODULEPATH +module use ${SHARED_APP}/modulefiles +module load spack/spack +source $SPACK_SETUP_ENV +spack load netcdf-fortran^openmpi +spack load hdf5^openmpi +spack load perl +module use /usr/share/Modules/modulefiles +module load mpi/openmpi-4.1.0 +module load gcc-9.2.0 +module load wrf/4.1.5-openmpi +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi +``` +Run the command: +``` +source /data/azurehpc/apps/wrf/env-variables +``` + +### Download WFR Input DATA (new_conus2.5km) +WPS (WRF preprocessing system) is used to create WRF input cases. WRF v3 models are not compatible with WRF v4, so some WRF v4 input cases will need to be generated with WPS v4. +I will outline the procedure used to create a new_conus2.5km input case for WRF v4. + +References: +- [azurehpc/apps/wrf](https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html) +- [Static data downloads from ucar.edu](https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html) + +Run the commands below to download WPS v4 geopraphical static data for WPS v4: ``` -# MPI_TYPE : openmpi or mvapich2 -# SKU_TYPE : hb, hbv2, hc -apps/wrf/build_wps.sh +# Keep as root +#sudo su - + +mkdir /data/wrfdata +cd /data/wrfdata +git clone https://github.com/akirakyle/WRF_benchmarks.git +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/topo_10m.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/topo_2m.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/topo_30s.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/albedo_modis.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/maxsnowalb_modis.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/topo_gmted2010_30s.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/modis_landuse_20class_30s_with_lakes.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/soiltemp_1deg.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/soiltype_top_30s.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/soiltype_bot_30s.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/greenfrac_fpar_modis.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/lai_modis_10m.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/orogwd_10m.tar.bz2 + +tar xjvf topo_10m.tar.bz2 +tar xjvf topo_2m.tar.bz2 +tar xjvf topo_30s.tar.bz2 +tar xjvf albedo_modis.tar.bz2 +tar xjvf maxsnowalb_modis.tar.bz2 +tar xjvf topo_gmted2010_30s.tar.bz2 +tar xjvf modis_landuse_20class_30s_with_lakes.tar.bz2 +tar xjvf soiltemp_1deg.tar.bz2 +tar xjvf soiltype_top_30s.tar.bz2 +tar xjvf soiltype_bot_30s.tar.bz2 +tar xjvf greenfrac_fpar_modis.tar.bz2 +tar xjvf lai_modis_10m.tar.bz2 +tar xjvf orogwd_10m.tar.bz2 +``` + +Download the data from https://rda.ucar.edu/datasets/ds084.1/ +1) Register to the site and go to the "Data Access" section and download the following data: +2) Data Access > Web File Listing > Complete File List > 2018 > 2018-06-17 +3) Select: from gfs.0p25.2018061700.f000.grib2 to gfs.0p25.2018061712.f384.grib2 (93 files around 20GB) +4) Select Python Download Script and upload it to the worker VM as download_gfs_files.py. + +Run the commands and be sure of copying the download_gfs_files.py the folder below: +``` +# Keep as root +#sudo su - + +mkdir /data/wrfdata/gfs_files +cd /data/wrfdata/gfs_files +python download_gfs_files.py + +chown -R azureadmin:azureadmin /data +chown -R azureadmin:azureadmin /apps +``` + +### Generate WRF4 Input Files +Modify your **namelist.wps** file, setting the correct paths for **geog_data_path**, **opt_geogrid_tbl_path** and **opt_metgrid_tbl_path**: +``` +# Keep as root +#sudo su - + +#### Change Data Locations +cd /apps/hbv2/wps-openmpi/WPS-4.1 +cp namelist.wps namelist.wps.old +cp /data/wrfdata/WRF_benchmarks/cases/new_conus2.5km/namelist.wps namelist.wps + +vi /apps/hbv2/wps-openmpi/WPS-4.1/namelist.wps + geog_data_path = '/data/wrfdata/', + opt_geogrid_tbl_path = '/apps/hbv2/wps-openmpi/WPS-4.1/geogrid/', + opt_metgrid_tbl_path = '/apps/hbv2/wps-openmpi/WPS-4.1/metgrid/', +``` + +### Run Applications: + +#### Run geogrid.exe and metgrid.exe +``` +# Keep as root +sudo su - + +# Source variables +source /data/azurehpc/apps/wrf/env-variables + +#### Run geogrid.exe +cd /apps/hbv2/wps-openmpi/WPS-4.1/ +mpirun --allow-run-as-root ./geogrid.exe +ln -s ungrib/Variable_Tables/Vtable.GFS Vtable +./link_grib.csh /data/wrfdata/gfs_files/gfs.0p25.20180617* +./ungrib.exe >& ungrib.log + +#### Run metgrid.exe +mpirun --allow-run-as-root ./metgrid.exe ``` -## Running +Expected results 1: +``` +# ! Successful completion of metgrid. ! +# You may receive also some warnings: +Note: The following floating-point exceptions are signalling: IEEE_OVERFLOW_FLAG IEEE_UNDERFLOW_FLAG IEEE_DENORMAL +``` +Expected results 2: +You will find the files below: +``` +ls -l *met_em.d* +# Should see the following files: +# met_em.d01.2018-06-17_12:00:00.nc +# met_em.d01.2018-06-17_09:00:00.nc +# met_em.d01.2018-06-17_06:00:00.nc +# met_em.d01.2018-06-17_03:00:00.nc +# met_em.d01.2018-06-17_00:00:00.nc +``` +#### Run real.exe +``` +# Keep as root +sudo su - -Now, you can run wrf as follows: +cd /apps/hbv2/wrf-openmpi/WRF-4.1.5/run +cp -f namelist.input namelist.input.old +cp -f /data/wrfdata/WRF_benchmarks/cases/new_conus2.5km/namelist.input . +cp /apps/hbv2/wps-openmpi/WPS-4.1/met_em.d0*.nc . +mpirun --allow-run-as-root ./real.exe +``` +Expected results: +The following files should be generated in /apps/hbv2/wrf-openmpi/WRF-4.1.5/run/ +- wrfbdy_d01 +- wrfinput_d01 +``` +ls -l /apps/hbv2/wrf-openmpi/WRF-4.1.5/run/*_d0* ``` -qsub -l select=2:ncpus=60:mpiprocs=15,place=scatter:excl -v SKU_TYPE=hb,INPUTDIR=/path/to/inputfiles apps/wrf/run_wrf_openmpi.pbs +#### Change Permissions on Files +``` +chown -R azureadmin:azureadmin /data +chown -R azureadmin:azureadmin /apps ``` -> Where SKU_TYPE is the sku type you are running on and INPUTDIR contains the location of wrf input files (namelist.input, wrfbdy_d01 and wrfinput_d01) -## How to create WRF input cases with WPS -WPS (WRF preprocessing system) is used to create WRF input cases. WRF v3 models are not compatible with WRF v4, so some WRF v4 input cases will need to be generated with WSP v4. -I will outline the procedure used to create a new_conus2.5km input case for WRF v4. +## Running and Testing -Git clone the following repository to get access to the WRF benchmarks cases namelist.input and namelist.wps files (which will be needed later as WPS input and an master input file for WRF). +Connect to head node of WRF Cluster and submit WRF v4 simulation job: +> Where SKU_TYPE is the sku type you are running on and INPUTDIR contains the location of wrf input files (namelist.input, wrfbdy_d01 and wrfinput_d01) + +- Test 1 + - SKU: Standard_HB120rs_v2 + - User: azureadmin + - Nodes: 1 + - Processes per node: 60 + - MPI processes per node: 30 ``` -git clone https://github.com/akirakyle/WRF_benchmarks.git -``` +mkdir ~/test1 +cd ~/teste1 -Download the raw data from https://rda.ucar.edu/datasets/ds084.1/ -Go to the "data Access" section and download the following data (2018, 2018-06-17, gfs.0p25.2018061700.f000.grib2, gfs.0p25.2018061712.f384.grib2) +qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +``` -Modify your namelist.wps file, setting the correct paths for geog_data_path, opt_geogrid_tbl_path and opt_metgrid_tbl_path. +- Test 2 + - SKU: Standard_HB120rs_v2 + - User: azureadmin + - Nodes: 2 + - Processes per node: 60 + - MPI processes per node: 30 +``` +mkdir ~/test2 +cd ~/teste2 -cd to your WPS installation directory and copy the new_conus2.5km namelist.wps to this location. +qsub -l select=2:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +``` -Download WPS v4 geopraphical static data for WPS v4. (https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html), Download topo_gmted2010_30s, modis_landuse_20class_30s_with_lakes, soiltemp_1deg, soiltype_top_30s, albedo_modis, greenfrac_fpar_modis, lai_modis_10m, maxsnowalb_modis_10m and orogwd_10m. Extract into a directory. +- Test 3 + - SKU: Standard_HB120rs_v2 + - User: azureadmin + - Nodes: 3 + - Processes per node: 60 + - MPI processes per node: 30 ``` -mpirun ./geogrid.exe +mkdir ~/test3 +cd ~/teste3 + +qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` -The file geo_em.d01.nc should be created. + +- Test 4 + - SKU: Standard_HB120rs_v2 + - User: azureadmin + - Nodes: 3 + - Processes per node: 60 + - MPI processes per node: 60 ``` -ln -s ungrib/Variable_Tables/Vtable.GFS Vtable +mkdir ~/test4 +cd ~/teste4 + +qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` + +- Test 5 + - SKU: Standard_HB120rs_v2 + - User: azureadmin + - Nodes: 4 + - Processes per node: 60 + - MPI processes per node: 60 ``` -./link_grib.csh /location/of/NCEP_GFS_Model_Run_data/gfs.0p25.20180617* +mkdir ~/test5 +cd ~/teste5 + +qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` + +- Test 6 + - SKU: Standard_HB120-64rs_v3 + - User: azureadmin + - Nodes: 3 + - Processes per node: 64 + - MPI processes per node: 64 ``` -./ungrib.exe >& ungrib.log +mkdir ~/test6 +cd ~/teste6 + +qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` + +- Test 7 + - SKU: Standard_HB120-64rs_v2 + - User: azureadmin + - Nodes: 3 + - Processes per node: 64 + - MPI processes per node: 64 ``` -mpirun ./metgrid.exe +mkdir ~/test7 +cd ~/teste7 + +qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` -Should see the following files + +- Test 8 + - SKU: Standard_HB120rs_v3 + - User: azureadmin + - Nodes: 3 + - Processes per node: 60 + - MPI processes per node: 60 ``` --rw-rw-r--. 1 hpcuser hpcuser 79075286 Dec 12 04:11 met_em.d01.2018-06-17_12:00:00.nc --rw-rw-r--. 1 hpcuser hpcuser 78622472 Dec 12 04:11 met_em.d01.2018-06-17_09:00:00.nc --rw-rw-r--. 1 hpcuser hpcuser 79054700 Dec 12 04:10 met_em.d01.2018-06-17_06:00:00.nc --rw-rw-r--. 1 hpcuser hpcuser 78668607 Dec 12 04:10 met_em.d01.2018-06-17_03:00:00.nc --rw-rw-r--. 1 hpcuser hpcuser 79435709 Dec 12 04:10 met_em.d01.2018-06-17_00:00:00.nc +mkdir ~/test8 +cd ~/teste8 + +qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` -cd WRF v4 run directory -cp new_conus2.5km namelist.input to this location -cp the file met_em*.nc files to this location +- Test 9 + - SKU: Standard_HB120rs_v3 + - User: azureadmin + - Nodes: 3 + - Processes per node: 120 + - MPI processes per node: 120 ``` -mpirun ./real.exe +mkdir ~/test9 +cd ~/teste9 + +qsub -l select=3:nodearray=execute1:ncpus=120:mpiprocs=120,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` -The following files should be generated (These are the input files required to run WRF v4) + +- Test 10 + - SKU: Standard_HB120rs_v3 + - User: azureadmin + - Nodes: 3 + - Processes per node: 64 + - MPI processes per node: 64 ``` --rw-rw-r--. 1 hpcuser hpcuser 31285895 Dec 12 15:50 wrfbdy_d01 --rw-rw-r--. 1 hpcuser hpcuser 127618030 Dec 12 15:50 wrfinput_d01 +mkdir ~/test9 +cd ~/teste9 + +qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` + + + + + + diff --git a/apps/wrf/run_wrf_openmpi.pbs b/apps/wrf/run_wrf_openmpi.pbs index 4e3f6a0d1..5e70b6969 100755 --- a/apps/wrf/run_wrf_openmpi.pbs +++ b/apps/wrf/run_wrf_openmpi.pbs @@ -1,7 +1,12 @@ #!/bin/bash SKU_TYPE=${1:-$SKU_TYPE} -SKU_TYPE=${SKU_TYPE:-hbv2} -INPUTDIR=$2 +SKU_TYPE=${SKU_TYPE:-"hbv2"} +INPUTDIR=${2:-$INPUTDIR} +INPUTDIR=${INPUTDIR:-"/apps/hbv2/wrf-openmpi/WRF-4.1.5/run"} + +echo "INPUTDIR:" $INPUTDIR +echo "SKU_TYPE:" $SKU_TYPE + SHARED_APP=${SHARED_APP:-/apps} if [ -z $INPUTDIR ]; then @@ -10,29 +15,18 @@ if [ -z $INPUTDIR ]; then fi if ! rpm -q python3; then - sudo yum install -y python3 + sudo yum install -y python3 fi -source /etc/profile.d/modules.sh -export MODULEPATH=${SHARED_APP}/modulefiles/${SKU_TYPE}:$MODULEPATH - -module use ${SHARED_APP}/modulefiles -module load spack/spack -source $SPACK_SETUP_ENV - -spack load netcdf-fortran^openmpi -spack load hdf5^openmpi -spack load perl -module use /usr/share/Modules/modulefiles - -module load mpi/openmpi-4.0.5 -module load gcc-9.2.0 -module load wrf/4.1.5-openmpi - -which mpicc -which wrf.exe +echo "source envs" +source /data/azurehpc/apps/wrf/env-variables NPROCS=`cat $PBS_NODEFILE | wc -l` +echo "NPROCS:"$NPROCS + +echo "PBS_O_WORKDIR:" $PBS_O_WORKDIR +echo "WRFROOT:" ${WRFROOT} +echo "INPUTDIR: " ${INPUTDIR} cd $PBS_O_WORKDIR ln -s ${WRFROOT}/run/* . @@ -43,5 +37,6 @@ mpi_options="-x LD_LIBRARY_PATH " if [ -n $LD_PRELOAD ]; then mpi_options+="-x LD_PRELOAD" fi +echo "PBS_NODEFILE:" $PBS_NODEFILE mpirun $mpi_options -n $NPROCS --hostfile $PBS_NODEFILE --bind-to numa wrf.exe From 6dd12170eb171ac93baf5bf9696fe2a70c341517 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 21 Oct 2022 15:27:41 -0300 Subject: [PATCH 06/75] Update pre-reqs --- apps/wrf/readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index a41650e3e..1748701ec 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -2,7 +2,8 @@ ## Prerequisites -Cluster is built with the desired configuration for networking, storage, compute etc. You can see the tutorial or examples folder in this repo for how to set this up. Spack is installed (See [here](../spack/readme.md) for details). +TODO: +Cluster is built with the desired configuration for networking, storage, compute etc. You can see the tutorial or examples folder in this repo for how to set this up. (See [here] for details). ## Install Azure CycleCloud From 23357a5bea5689fc1ca29ad483290cc3aadde4f8 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 21 Oct 2022 18:54:32 -0300 Subject: [PATCH 07/75] Install cyclecloud setup guide --- tutorials/cyclecloud/images/DNS-Label1.jpg | Bin 0 -> 95892 bytes tutorials/cyclecloud/images/DNS-Label2.jpg | Bin 0 -> 169869 bytes .../cyclecloud/images/Managed-Identity1.jpg | Bin 0 -> 72037 bytes tutorials/cyclecloud/install-cyclecloud.md | 93 ++++++++++++++++++ 4 files changed, 93 insertions(+) create mode 100644 tutorials/cyclecloud/images/DNS-Label1.jpg create mode 100644 tutorials/cyclecloud/images/DNS-Label2.jpg create mode 100644 tutorials/cyclecloud/images/Managed-Identity1.jpg create mode 100644 tutorials/cyclecloud/install-cyclecloud.md diff --git a/tutorials/cyclecloud/images/DNS-Label1.jpg b/tutorials/cyclecloud/images/DNS-Label1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..37c76a90c5109a5e0750cf1615b21329dcd50479 GIT binary patch literal 95892 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 }1{&m%yUotQZe-eD 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 -O$ ze2TwmT;$Fj&UmV0RSyje}@^^->H1W&cauZFq zr51wO1nO_5tWfF~!)rSTa~&);u0LT;Wj~oY3iIsXSkV4}3g4m0br=_C?HACvGovq` zdn3mYJIy2%_3l_)fd9k=;XH#zn{2=^Bu31s51BrR@vLT$+A7_DwrgE?w zjR8X;lNb_LJB;_cKJh5SXk4&v|E|*K7b6T?Ukeqh%n^a5#2P(o>b7Z7>>K3G9HU0W zui_dPoN}NjWRU9tH~ToVPjY>{X=whsNhV8%bK%d2z{d4OK{LJ9k$u8LV}swI^YuO+ z;E6J0#I54Slqda`{F##j*va61dGC)xf4LRii3e6pysw!R!6%Jj`Ou`E+83Yi^3fu%J(1L|%ub9QI<6#YSmGypbJdR;$(CV~lfQy1 zrC!JhB>*86mPBydKna9kB{zH6IKGoiA5dKb+12~CHH{8Z{B-K-@y;V@jA za#ESJE9Ez8YQ`#@V$B!pVnD9^67pRT(#@g8q2EKqR7Jv% z>6xL7tk-^r)u(lyK%T+g(*3Q3W@E$yOROd!myxMGGu)dvQPb=2cJTPlIR6kYv5fGn zLr$}y*p1ALCI}W3x|{$fuHR38uJ?XX?{ZnnyloR&=iM766xwhr|4VY(3uhq1GM7^; zkN`IrCE3a(yDs$Khwh�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 F{12a3L@59O literal 0 HcmV?d00001 diff --git a/tutorials/cyclecloud/images/Managed-Identity1.jpg b/tutorials/cyclecloud/images/Managed-Identity1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0f967c3545c5b3a8405070ba0770b057a1abd6b1 GIT binary patch literal 72037 zcmeFZXH-+)*De|a1OY*MFH!_SK)Q4hX(EEO(4!*Kgh=m1QF;dfrAkLBp#(w?y$VPR z5PE3R6KZJTF(U7rlqE& zyu);dmY#u;k&%jqnT3ggg^q!d;h%>P5fknqA-zRPdW+#UP3{ma*6ylxDVpAvJ)`JPm@Ga8O!_@&;shuorIVrF4w6SyZRbYECn zMpo{Tyn^~u4NWa=oo7bICZ<3$a|_$IcJJ&R9GyHoy}W&V{ro?F2@MO6h>S`~{+g1S z_U(ImUVcGgQE|!7U)43R+B$fBLt{s0S9ecuU;n_^_{1b~YI+8>j9yt?Ti^J*xrIGA zJUTu(#hso1qZbi?_`j?5pPKzodeIW}x zJn|dQa;U23bq(kTWryo&Fqqz4)?hFo(qK$Pi__2GEJVzYiTF)DUQ{YCS#`TwDq0xj zr08_){iUQ@k^gbqUnuV*g~;bg72)opOM~%de(9-n)Uv7ku}0c0mk*l{5}yphllqA> zH)4MD{uXI2|7DmZz%1ix=e2nS`TkY7Bme80lhJDc2nn|=VtA?X#)=?a znoSVYzU5$g-mzJo5iof5>~h8;@*_znJHKIbTmyUS2jI?_su!VcN7P`TxkH<1IUKXu{mgV~2(;I74IpMgepy{+-(1}-inm74 zKZ_Dcz^28BD=DK#NF2RKAD^7B=gJfgJ}a}P6}9`u!1Iy%?}R%I$(57ic#64u@6gr2 zH6YhSSTobFuxe^l!>th>2Q9*qB0n$3aw&ritBnI@pknxbd*^1lDp)SR?R|i3cg)fq zvkIWwi_Bk5T9*jsA1?|VO9#)-I8zumEOO$S_4DU^ofeHpJ$EHnjHZCk6JIq4^exQI zHfO&FSM!!PcrPd8^sPSIM4K4K{N!JoszI#kDO8o9;?e1s9Z^DMw?m>g;V;c?*s!8$QAf2c)%E~I4QYC@{_-^&uKV=A8ng5NYO39=b(VVkFU$PL zI{z*IyUqdeAi@D>v$EVptEH4$ty8}Ftfq^h`R(EpVzDJ4Ur8TdoLYs?3h;}UwP1(8 z*U(gK?fg5&DbIxW`?-~7IdXqK>O>*sR-jb!9II|N<0X#X{wLcG8 z{B2LH)G~QRt{ibQR$aGdau-Rttu6k_obDxOmo9I(CRJ>RLMcFP=dsMza@8Wxc*Xf( z@cZAKgI%xU4nN;AW~8;b&D@_gi&`k6v}Q73a8D`Y8D=p&m{KDk%luB1@>}v_c`0( zhqvTY*m%CrcS0BDST+_eb(U0b`}Sz_PhBb&Y$rXY=t8B$0B=5YODLRJdBmwK^1?-I z7`;BWZmBI$4}0KJi*{hWm1E2d!!Pi6vs3I9D_la+QmPY%aFfU(kW@aV>Q=Ga(MOzWtVEgep8#2q)cmJ zDc&uC=@*<$Qyxepj_zMAaGajrce>R9lWUUt@kN!<^ zbl44IggwMl|79x~_cAlkkv2zxm7+S89(Kj)`;E@Ai4qYPQ8FHCsE^+`Dykv9@tC zoHu@b1e`E373NNF)0+(jxWYwkA2qAl@Cm1<0hMrr{$?$Cgft7qUWi?{rPKP$}l$`pM&OdEq;bhfS!PZ7U&uk+vFzu&JRTo}pW1yB31 zd6H~xrCmAO5zC(>-|_2HlFkvpc#?ECrM1vrrf`nd+G03N{?&Klf+$Uj>TGhpsxsjB zs>ApG;&GQQ7=+o>dudMAJ+HxIta9ios(Ez&ZfxQ%;PXzmJ8ziG?D|I^j+FkM{dk(N zRvB}g>BtMrUSa@RpTQA3uk#b+h?&zb*lcEfJ2#;HVc0gt^N=MwYI2|H1Z!d0OG3;4 zP&1eA(S&f`r;h+m0B31(15R#rO(Zr=An3P?R^Hb*N&Tq%V!$$`P zbt_<9^ZBim{Gw>h#%u-*qdeRCy1Qx071*l~c~HCmZhRAZcPWeb8Ah&WNdM{hO1OTd zKE)<>8Wkol(W%_#E;ab7@4LL9cyfOQy_Tgoi?6=gfmqk> z&RvwQA0O;yjm16kXsDj|Q#v%i3chur% z!h~x~HY+b#>M5Ev)iyW4vzK|D6^k3Sa}RR{!iT&}J=oqzKKp!Nx)E{7{R7uQ{(1_g zr)U|*B+lWVQs6@oqj}3AR>ZmRbRJ}VzOb)%Ui0jcs;%|p=D6LgUY+SUC~8 zDmsVO)Twxze*dG=SI>ky^S7v^QeXT`!K+!eDJuJ z)7(zyO|R8ZeDM$87hrE! zBrgZ(sp^bf(t@SsWMrtMO;Qia(qy3ms-xqn|JpENH##Y~Y0S(WQ=`$8@Kj_w)1#HIn>8D& zHVlcdC88mi^<0$B+2mRn)zv*lh0^b>5p)7CW|Z*~`1XWdF=+b3td`Z&RQ= z6@NGd3<`|nMi(B}ZbYV1Wq36C_P@`u9dBk{zTz4l9`1ZH z{=WRdx*QYo1AjnBnx6OtXSz96#tKONehljcvbe336cMEjc zQ5%%S6o!rWwJ#x!u?fYbFT|eBo5lyVa6>g3TAoX9=^3X- zIcVlkF(vIG>V^_uy14;3g`v(pozJ=nkO;7$*30C!3SITdGMVkc44sNMIUNckUC!Ii zXCz{$IU+Ao=xqNGaU&QA6hN{drf!+yEb33W*KhEqMTd2}qIy~oHBLzmm$ z-djlLtMw#9uVp+(V?0N{)kAbL-=gPDy+;fzGDhMIm_#$rmD2e8zK8q)Y$5%9t?TxX z=gw4i=2)AFTdYbz!Fba=ilgy-@1oc>Em&_kh`2MG`Kq`Awoi>hZI)y+*w>HmJdR_r zuE=kvg${&%z476uuV96Ky{T;E(g+RCF3*LV;IxXO?uAI%+H(l-y<6y${S+#CNc$(- zAK4tiADggxlSNU748xab<0{+;6@txH*DmaP{OS1PDSxER^*q?4U|u09ZGihc$?r+zWh2rQq+6--?Lh4_wmI2h&vXzLGe$x{vRSD-jyvp z8pvMI|I7C?u=3AQ-;Bw=m&jLms4j<)*eXD0$;0$${@J+s_%8J5q6A##nrHr_u`WS} zp{jDAQ8I~Dn1~iiq+oFV!_BxrbIf9y8eRGwbh0ZK44{i$RrJXS5Rm^=r z3(yhAqp8_d&VCl9=sU^>r6$?@I=!OE%=F{qg8LkKS9M&H;fS&7%gnK@lW3Y4|M)Id zDqTl@ceAb0J^`Ib!?+?Hfk!OwFFT>?Hr-@h*MOVzR@<@|99%thMT5#qJAWeAzLG-Q z_R;Ncm1<<(57jEt5z@g_m(1gM`QT{~ho?TRuAAVO^5cNgrYqS6@9^C*(bTBN)!vnH-aFS66bP-xO~kiX`$m5In$~MX~#PQ>9OSlx~_ea zl(!gCcwQZ5_tYqfV-?#Mz_4bj4=_3a#^AMESIGV`g~Gd}w{5TQUyiu0<2lXYY5x#zSE%jco$7=X&zT|#zmi)BXea$Mt ztYk%LstKpx%f*3Ri-EVYVsECQMIIF#ysaMt+cw5>19nB(?@*IJ+U|pft1ji`P+p4I zujGWW{Z1us1Fx#_wV>QME^= zMb@gqZyYtbO!!w-`c6XRSxMYQ7*#A@xG$WXT{QYTISvlJ)Ks*%28axTtZ8z=!4G`- z^ssmSh+Wz)Us!uqsud3XdYq;aueQcKpL|sD3n6+`F1Xa3b2BVlwQVs$9SqWE+c8d}O|WP?gO_EsdcL z{nSJ}WGI?EioY*$`AAid&En&#=(G;x$i9Wuxo|xe8{H;o!^VR}gbl+$gKR!0wFnfY z=j_`4e9n8LUcgp;Bbb)_k)Kmwk_4yw;GAqhKh*hFMb40 zvK&YB_m(ggLgwUx4E@hRz*8p;nnj@_#Kt&QC9I(_Y#3>o5t$#dz%QvI9m7cbxc`kl zfN0pc?Hb^)%}o;gN0kJ{q9X37!th74kSS2Z{%5;D{ro&6KJ|Pr8HyBq{ z84!+wNW@Zh;|n-gKCR0}5Ek7TU?i}xaZeAJ%X#v*wiZXbW-!B?hyQ3L^WM3dVSSdb0Q~C_j0fG`Ngx5 zE-rSQJ?2n7%>wI{=`Yh#*ivS3Qd^?IHjm#S@&5izMCwx$&ta0&We%;JC^3jEJnd}O{Q*S2@REWd^VVegA-G)_I!$D?G?jIpdo?c7@FndjY|f_ z?ridmj#N6|7gJ9yBRo@04-C~wYg~!thpppn)|*sk!5USV#ct?Kw9dF_(#VS{q#+8m zpxVUXsGR;Q{uO{bR6|5}M&qh34L!78e*YTa1-b?Z=;JvqjJkq_Mw__{27hg%YU3gc zJB)P#ep(ea3z>x)Sogh5dd#YnY$`o((`z=idn`gZ8?dW@zN;jcI#!l2$jVAxaf?)Y zg9qK}aSaHGf%F&oLh-E+AV&dD04i~7Ub63CY;HVIPJ8PDP5;1G_qW} z>08+ou*qxbu{v#@%Q7{^y2E~`!BtJ|_C7;!8-(IG=*4oyF?;_}LxmXkzRun1Z#CTR zeySG3dFushsF$Ds#9tS!`Cnw=JosKbN%Dzm z3pTFU#jC{kfSanfOf}+Ob4sD3A!&llpA{GI zbb_7TMTXOq((i@;YtHs7k<~@qJ+4}}VjLM-E_`1+dQ;(M%{Tt6y0T||3$Is~fv1)& zl4hqB`o`fWx;gqtPZzQdE*@Nb>GOl=EZxWBd;4O~cayB`1nA{g-=9${ejfJX&l`{X z)ql2?jQ{=tsGp%L+YECF&fxxmJf*d6=fG$utMi8I@Vy!s&{QMwV*G?2iR7ZguzvB) z=vEL9e?HfHRbHa*jJR5q2!l}I(oX1cKTCb(PE>I@rAkSl;xFsXIWOuO1W#XCK4=A1 z@AvcgygUAR4S35vW7z@X3g$v|>qoiG;byyn`J3t!*a!Px-hG;qzsW9U_SLnR$UBsn z<1hLwJ+5Eybf?AVA`&H+dg{D4ca(z@GOaDfMV~xD%G?&lPZ?FFpY(Nm*-H-6$1D4p z8me82j1u6RCMM@oFyK-ozAKxsl2rvp!j7&1cV(=fu-l5CD?vOJZ!d=WZtRw05S<9J zYrvZ0Oat8K1_ z6G~FI=M;9P49`-()!keW`Xk%U;augtyFrqfY~B<2wNyuxA#V{+T$LaFbyH(+9CRje z438^+->ii>w1KBtDcsBQEBXyBx14(bv5U-?&w49J!N56N6DO5^2%bsnBsh3EjEu`} zD?iG2_HlJ8dJ9aayb5|7>XBy9p=CBIkwlqE*R}EpN?7!7RT&m>(fC`3SmCh~M?pQ_ zDYL3NNr^XAK@raw`~i0FDZ)?uuK{1*`flT!Wpb`ae{BV?O*$9QA8)0hp95jBf@0Oq zdzLx&Ls)Pda)AwwWmu5H9NBQ!dvGY!Y*kX~n9)&`6`mxK^8t=;HgXCAtEOOoWo}EJ zEWWI)x5ms{Jge^JJukh_6YmD1z;~-wBR&O-1rIl>G^{kSHtQ*OT3ecRDo<4P7C#mY zEEA6TA@#^!%-xUp5lhiEpk1|g5E>5T=DHM09tz6Cy*Ss|L4R);km-=Ce8BU3rM}p3 zVs4^Q44hPp_s6I2JqJr?2F&h{2CJ?Im7_-@vKcXKZ439XvhmB4nP|RJP`49*?`dEU z>!k=tZ}P!$DGS*1qF#Kb$Qo;9sa>u0-v?S43=E{fB0>WF1S2lNSnzUA9A3mXAK3aK zE#2m;>yGGaz#E}!K;XAmIxM{dxsQA0Pxhx}H%u`5JtGk+T%(r~XejliIO5}$zg}_V z`-0GNJ7Day8{KLA+MQwiWls7$qvQ=L=3wVDmw=$f_ysygF^4TEm;iaEE{XS0LU{$R z|5YM)!{BCt$?g8{>K3RbS0-H7qwagkCegr9rGr&jBi}1SL7B^uy)Ex$;l8b6dK?Z@ z@7l{OcD5DsFBJOtO_*@=2tSfm@7*?~jVQqMzYD4V%ZkZ2>IzHL3O1*JQ_uTdoayyM zgryRqC?zO~?gOTPB;r}?(E_Uh4vQuFfjylRRoG-87`|F*( z74Yy8&j}A3F27Ti7~%+-(L6ZR#hLgN1gc?-$EEAe-<9)f{z=_3x6!VXgQnd>ZW+@@ zU5rI#SXd4I1U9bOk6Z(89E+pGyHv!O7a5MAlsMZ?w^?n(Ou8<(A=MpdOUM6}l-Ng$ zQ|o4f>P*^Fd~7fmehk4D2t?mz-eDt)fC{8NZ@Mt13(D0StXHHR6d!22Z1aMa3YA*u z=y~b|t+u>cI&o30Kg&NUyUJ90iKXlgrpF~?7GKtmxAOQ}?S?5X@HU0Jy$Y>-%u^G? zMV|PHuiOL!jX^k#&^uY!g+c#G&8yt0q3^xQE!8c#b^3&bRq5MG`jZOdJ8~hC0bbA& zho9jMd8kwPH{Hd_eP^pP?vpeeA6601M%kgtf@j-ow2y+qqQxt9bDfO%&DIU9S!aML z-y5jNg{j&3f%MpnC3x?Ctco-tj7HpXP%u{4nMC>>iSi!YNw=;~C36%=H7CpB+YO93 zV9=~ziw&CBpgr{q%$izs>puhynG^5>f_@z|o4mvvjhFESb-?jt&VGSv%jHiOHSFDl zyEj6Z_i6%jKl5fv0AdcuB^NKHap4yR!6P=j7)19K{d0_d#GaVCNazx2X**QP2*4-T;TYfC{@)>eeEIblF%}sI)iARvsa#Q{VCZL=;(CmFo zYf;@2F*)-!0Jnq})Dj6&+ctdVINg))xO|Kt5Oc3)S(O^6f}GX4;EiT4dD}So+==8v z7fF#2ZC&h6ms`iDY!y^q)vD=Ne_eT`Yi15()690y2pNRH5#Fohz*`l8Qdil8 zav_v%nh?5dd*2yIlWp~M-?`_=a(lGq{_>}#?AmQPCajI+AW2_!r|?(L*9ilf!CkAyG$MSXI&g0*oGgw#dj^^p%()4)py|8@P&vX!{g~_gt;?ISuD7e7Mw+DY zBz#a?gsu^sV+}OC08ubc^|(4x4w>qfs9fxf|xdsBINV{9vmLF8PB0QW{f{ zSyvYzX`bJdj>_kB2im+V40 z@G-V`#~QQP=6~xl)!9aGwqcW8ga+o09U< zuE>S08GZs@f1!%v{e0@g?ctg->D#v=zup>|7q!^xGFXaOad!+}6X1$k42|c(_I^B` zw>^0|amj9PyWyJzz6E)wWw)W(&~PE7moZ3kF=y|sysdg7iE~4Xe<9dRZ+Np5x?J%> z+zOVoSyX$tlHuUD>UEa?&M4)Tuk!Zn-*N%L`!Do&!Kd)^L>8frJC<7D#@=p3jp|PO zN<0n0-K;Ew83`+?Lqa@;%M5k_g>||eD0zr~d-`G;(1`iqSJFy^<335n*)Cl`LaT7# z4wTquXa16GN#~UBN%uKw8Xw0u>ZrU!Su=cSYUH?rYS_7mjt!{tmqlL#WbrQZIefu{ z>}?GsQi&Mj(~GCUCFW+3*It|%cT9a4wy*PLl64tX1n4V&a8AI8chaD2PYmNuI}kKS zEyQU3kb(xk9ZQ1-ZGl=UcXu|2y5xxxF{!>Dy`WJI)8@IsYMY<8x5_Tye`gMgd-ubx z0nDwE!F{KV)HMZ;J_uTIaBjVelvcfVIXcpw>WNpy1$CrOG~YoC3yWqrgkx%e4E zbm_GWng(`5XuPaxc3K~{!Y0u0@!%=qeMjSn-ftDQtRvnm`%&iyQNQ9*9-v(ftyRQJ zje`>Cnkz`wH+;tyv(W{*bq%o3q5dbC>vLiXcN87hbKdBc{c}pEa7l1}1C>f##~V4- z;5HERr84d(w$l(B{N;hCK7*5}z?WDrl8!B=?6o*kxp!7&(Vc)`aCwlOhWuc*tGi`U z>x;$JCstK!*88|QoKL$dxvB&A3?C5b2@bQ6jm2`ev4yTISeh@|2-FVc@=!ld(j;m# z_+Z8PV_8S$D6O4xFj)Pvb~FNM7@X>dG<$WzWMiR3JLqy)3#=m`mc7e6>scm|x5- zlL}pr2qlo%t^v!pF1)MCKoBr)3Wz$dfNjEqrRvCmIl|-zPc)UMle&@@Mjvx|EsuoB z1>e9PcV7d-z;|Jou(G!~MwrV1Z#8c}W~Oh;a`5xMkpZ2BhqG{h(SNwb|CWEx!M|F>S<6&Br&RT00KV)2jmCD>UX4A^IE zK(<-S@bWP!gNgDx&1kJw&o^paC`dteO6HN1$`bC52j93$<@tw7b)dqOFBhy^z4u#1}c;(9kZRn3nM{HyurH7AL z{xS`nYIxadoFbG~jj;;$QQp9+$DWxg%F6X^=*Ld3CrPqjt=_I6PcCbZkW>4)Nhy<; z(6i0$qWQ8B^}KpcTlAPYF2i8dGl$Z7K`2f4VMVb=K{-6-?U<04DZM^>--0=iSHPW^ zdX-|Z8W+1fLg|!4@5R0gw0yX!kOBiHf^t+?3IoijK1_FgcjxvG{5Ch%^ok>DcpI`^ ze3ou;&Nop4m4n1`&!peXFZKQ0ZgUUQ#nexh$n+yMsXu^!j65&wF4#?oj+K>}j-dym z1E5oYkl~6>yZ+2)5a66M7gP3pM}*Ah_d`N_iizdxDdbxc^>?)RikvzW*o5*DNEv`h z_)$GKv5chvaPcou|rN;JDZd&7fK!0k7+&7*!As-x-gLII!ma#AS)cFE{K(FDUpi`OJqt@>=x0-m^D zA$`%=MQ!@WRMR_YR8 zX0`}nnWWr68K=c9yV$RLJ?h6KcgV|8ZwP$51X9Lj?pi6|YV^u-UDnc2@Ji?TPAi?u&RaF5{vs;ILks zWq+{eB7pKE`b5IT^6G#**BLA?a0-Lswyy!C6gFE;JB#x^;7nitf$Avie zL#qSW?Es6>OBJ*-*lPT4=&m%f&5t-d#V&176A0mzm;D^yOc9d-jkdW9iZ@;0s>Tf0 z{PJ~jp|UPOx;rjB4=s+NthKKX$aJRd;EZ13)A=#csOJlEU~X8FJ4-Go?_e*`d33uNA^N$Y)sON$V09V1a7b z{3n>bLg@4$xMY6bQQYypZ8e;(c7DF2rrVJstUt}c)TRBUsm7ajbwXdbs@{HpLq^$5zs*0<=!YB_zevpye=h^ zDdiUXz)y{{uXPw>urr8F)N_$_E0}IvNeazP?|kl+)pB`)vU(`&N0&x{_dL{K;pvSH z{hYaG64GFfIKJ|8-mK`@U%P^|9glmAmOz!R0inye*1oEpsJ%4%pW7a|Pcas*v3572 zX9}#&N(TAzG~b{uP+BI|UtIZ1Bylt=q&abc<`uqnu-jn5J<%>;j{wIqb&6f{bTt-W zlsVlCUeN~Dv~^Ok3aohYi`R^qMry?Gz;xW*8OgAicf)_L0ebWeBj4ZmpQ8e zgtkkzjb2XK-cB2C71>p#}jmzmqrG@Psl?M>|3DWYjzy|tvW(t3y+PEF5eKIoxXVdP-qx*Q& zmKRZO3PIG;T!Otf|Bo@fjK{(d?~#xT~Bw2gNO zcARa2G46VwLsG5*f>7J(5@^mo!UaUSd7{vA@mJ+R+OttFKUk2ZA$+VW6&0A+zxG|g zD7w8AIafAnRVQtF&N*8SS(+RCzB`?MXMN6%8sQ!e# z(K)bFo50lcD7*++x8cH z+4uiQLvP`dyHL%$zT{huyDUy2D`?qJG&f_Q;-qxx zJb`6!;jBF&b6afWMIvuaON>#(yFsL@f)+Mygl=nI1GI1_oLM{mg^bIK z6nKTjd0*x(w*6RGkgZPb_;J9t!@esYEN!U!C_&wk!L+)cZvep$@mPO-P_rRejoI(+ zJJzQ+cVL?et=+%5<^M%rHai`KsU$@8D`Ivzn@4TH(ee0^-N+!3$GUr(wG7Ig!FAv#=2XXCmYP6M`U)?c$aU3X-epI#8U&@n+W z)85-xo}di)&%d6)j85#VdMhR_vTU<4xcnE$S&q(p<}cG99)z3(6Z4&VAF~w+hU5UH zPdA5I)_g25+&z@49Jm@Q%%B6?VtDO56KY}oWZW!_5mh4{@({{U&7b+y(p^gY_s!k* z6zf_CYcZdRml{0(BIJu~fEj&P%xiGJ0$sR%2GE3fayrd+_@w*)4jz1%^=#1F=#ePr z?~|%MRj)T`6H{fro#^K_EJzn=OHLY7?28r;N^8iwzk>kZ@`+t39sYxEI1y z$-8D>vc`h00Rz{7WPLmfSaS-D1CQuJ(iPc6)~^Adt^thFv#LzK(>7*K-eg^^DjE78 ztt}&lY6mvGhu>r}o#`CBH2}I-5tD@6I=)zpOs#ZotT<)MJi zG(79LYMt0o(@~w@8cgJ_`5OoOBtepH-j&}ZjH>`OslPewM^~UOHtH<5<*NYA8te@z z2UJ}#iNx$;b?^F_Q;3oD3tQ^;cX3J)v#mtBKs&-pgm}=81Fu~0&il$-QHM>Cm_#Sk zD$<`hR7o8zDu%jrge#ona8_1_z2=EiyOH&RQ#pHS$3t--hog7t=>GnVzEFLkJkp^oW2 ziMjJ5_Oi)PkXfE~qGGAE!Sje!IUl3V@uV|>%KeE zik6s-KPdM9*tJJF<*V9#iWf>cP`n0^J7+T_ z&D(lezd}9Cl-;jKj{k08_oGr{wUIA)IZl8jABFOoAt%3(8EQBq&QYY8C%Y-~=$q^Q zE_k)dVK@7nAww!(M6*b;t@3rd(&(hvu6WC|g4~SUsYrIa1_3zDTk67a-|R8KXz-;j zX8(c??P7DXZINSMS=SV2c9|o5;K(m>H@0|@uJ5t2rk$ZNT(=Pa$HFz=tpJwIie<_v zbbh0jyETF0A5|U!_~~ zPO40yMa{&c#63&O#RulBM*>|bC@l@BNi1OCPWBEy|1J4GEJuYMc_shEp;wNP4O_I{Ec$7T&@l?XKH-mvapvz)8Zkm~vKT{1Lr zy7UIC2DlSz`y>OcS+$hp$~!6DA|s=-$NyNgx$co2P3Hb%+joXHNlM&3y5=qLh>)g> z1W4PZb=t!4a8x(OKB~OgZCOvSi^=;`7U`eTXsyPHB1s!`OL;)V^Y)Hg_OazeJRc4>1DdcWk~mQKuHW#x-ZUVC$kLff+G=DA&^an-{#@Fp^Y!xzPZbrrFpQh(Z%*WMeCivwyc&s;_P+5pelOv}qNoQq zWvi@HdMKicP*Y)bNQZ|XS(6zy+y30rd%Zd{+m#5PnYJ9>8xwlx(r&K3;`fLlc@laL zzn->z<>(HKZJtM{9ze#tPX?^9`1G7Olzf}+x0E5B*)fKk?InQ+b>;Qq%!fPWU5W56M$Fny-Xu=)x zq5xO2|I{IWrNhKM3K!Jb_L8)%89ic>3W!Yq{`_i;MxUp!KB^V?a~9nZOolCLz!Wb- zK8atF1uVCychYSFnHBIq1KwcTTv(}c-d!knRl|~mVYco)O>cvSE=50MotF^NfiBDX z5$D$Xoh6sHDIW%lnTqNMHhhVBlp9M3bBW_Wl6 z)GZFpUIP+AkrJndx`haW8D%KZpzS|<%^P*6$z{`Hyjyk;(e2-)C z8Du%Fo_b?NQ}Be3Dw@_aX2<(qxCAF_#UtQIq<6Rp)f#Q^JS?5))gW?oSJyfotrY5WG{kK7CKU(WlcN*RXZf%@10 zvr(SOOL6fpN&R4tZ#i)zdeAGCE}xG7vtl@B5I)LTcNTiqO)w$> zb;R-MHQ;~%u+DOt!Y)S7r$leBm$MVLtw=)pNbu^p#|2K& z@Ng&dFAaOK!Uv7Y zVJ$(NC%Ja-Oxzd_^B*Ogg_v6Pi;%pfS`8t~AJvfEJ zE~Kci=G~;3PnLgA9}cqgrfxNe)=82LIRAALvUt=wOlZ?U+-BZr2^IH~J}(W1#37Ky zzpF2qoBkX_nH|&PzXZNUw}@Lz>_K;-(%fwNukF^X6%{+Z-h+Qkn|yDV=;nFLb1-9Z zBm$+}3cii2UAETJz)T{4E*E0XFc%r@CB%+R_M!QHBnSCQ0mQ3Cr)Mgg^EOokLY}nD4&>`}*x~Je zFScZQW_rs|))0(Ek+PQb1K z(Kb@Z3en~kDTB)KyR|vLjnn4fK$OHDikeQ9OE4YtYJ zP-5A9{q<}O{~Rj^E4JKZAN0!BRlL|p5&X2E5z&|X#-(CA#fO#ZM)v1ro7~dv99Vdl zi@NdXtU73ilTD~>JzL&BGH|eGRz5OaCRreE!iW7C=L|oM5jOneQ4XiNLwfE6ud@zS zE(pOgp8n+Dp)qipm;d^MmD0`x)wmmGe`AqmVBe{?$?2@nlESL|RZZ$H34P5-((qfKz z4ylPJz^#!s@iJc`u|VrQ-#P;C+yWc45s}|iKOvfA|1OEq=W0&v*}7^mv6*2Xf!>H7Adw(xfsURu*{)>c0ad9aj#_v<%qqWb%{F% z_xg?R`WfJOs2?kF!%Nd}pD^Q{2nLw1=Lp?&e~=?p2m0>qIplB>sW9u?$k9)o50_3$ zUFQ2;uK{NQ;zM4Wxg5U+#O(;xpnAN1v9*5cp0w(nK-a6>R=&R$^Iy0aTPN`B5W5Vs z3R5iXP^Q!GjgMN*Z+Y=r9d@@6f8R&ix%lZ zJiut?4=?O6EO+eo%PWig6(}*=&kb;{XD^?1>O6=UUVXdb z!SVKd>h%lR(DEy1L7az5V-zsutnnI<1iElKQZXcCYq?kSaqm=P7U^O)` zG^*dH|4S57oUv8&+hEG*>JXm`!*P~j^?H)#v(CC6fR}0Jf=PUB`VCB%{UB>Y;;!lP z`|)k>C!chUZ=* z43gKFfIl_9`Nf6Gh32VC(q~A5$qIRS`50dV-;siwzNmAtO5;IkSJPxan zzeJST{mHUwymiRvfyGD>19{fBOyAeT)NFThSg~7i!FT#GSwN6w5^Zvtf9s#}L`KIbgmn2~N>7A>ot9t^MO7(sm2KZ{9ExUJ_#B6B58(I{Ah+56Mde)Jad^~M)r~S3S`x69} zTAp-gULmed@9wsF#LVKoUL(U&X=L}OrQ(>_mM7LC!bIw;!o{h2Sn+-p4qsV=X*^%4 zuecVbW3(06g+Z*$wUsw|7e=nD(JtsnL{C548{I46zFsy$e{vx>xTFO$sWZVdre{O_ zGCCJ?EeN7*!QzL1;2}FUiY_0@tk>;`JdcyDrKZCb#`VS>tE8jdHaPwL?-bgs?i1G ztL9wb9nS<=ou+{MPC3Vc=a)~qxf3i8EM-ouvL#UPdzXxT;-tGQn?;y%3t<(I@?A^q zvB&MxHvBXW?lf+iOUK{C$y0y0hv@iw(H-VnWx+f@BV^BreGplY!`P(t&f~#gCM2#N z<@z3UE44erzcUwFs&i^X^J^JdmDiZ%oe{XrJEAZgrcP1D78)DIy2%}QtctsR;g;*S zilD(s_7nJ~96OrTrh!BvtL5W@aj?kPJ?4EKyeqR&P<3+G&a;#@xciAHU3vnj)M`I( z4XKtJ*U94BI{;`1@5PjK3Vp-%tqgh%>O0{Hq7J@xv6|KCV51)4r%X!1fJ+s$sLrbXE&NDI+h8?`c)LZl&>LK9g{L%V+dryLshv03u2EE<}L-E1(PI`%|= ziG39V6U8+uqHPX&3zdDz(tf@INmWor`4V_aY?YWw0%`iItZO($gJ><(TwZYr>P@&@ z!MOT+S!5QbY;2dTRwBlyu~c_D%h1r+Toy6uT;c=+Bb|} zpqJ`$JMJO3&>bwX5G_G(@YRpi6CEF&pbHLetSpM7DhR!At9PfX_bGNZ**)JkUCvtS zQfgVdswtm7)8`vW->O4qU^Ph9jPp(~Lz@eTxd|&Cs$_L1FMou+*Cm4>+dM7h)f}N| zR)q@K@}_ueWDkE%DnIZbI5PiZ(2_|8%DZzHvCWmyUWo^mFQCmMiVs(p$#AM@N}!XD zwz1%aQ8g$oj6r($1dJt?ZEi@E#j}-$W*vihNUSJ=dQDkM0ICA*vajx@@l-W{?$E&= z6rnYx7L;G_2_Wh-w_em*b_;zfblzOd`=V|FNu$ubu#MH$_7e^kB*ggBtuNsLosu+n zWpt%_Fw_Fi*oZZGk9QNri=&~pAs5AISAckmM$pJqd9{#hlk-ExjA;0TdbdcL4nMxS zJBEu}JxubdxxQ`QE(6d$#@tRX#Hnvq-=j4*vr%1_nOmvNB8eSEX$`&KALcJ({I}9heUrBDm^8-eWYx0YJ*`Y!Ak1P zWp`Oq1@S9`PFWYgQUUMg7!5|;u)`+9$o{7ul%qaWlJN)9dkuyi8$ZtGuyjE)!%bZ9 zT6leJ><=WA#D&2$oPZNl`jEKJyhmbutNeR3M$2#@0lWAaXjE5bHSN_Rhc;TBh zdHU0I#O01Ln5Kx4Tx?R6D<;&vcV988R$sen<>U%-7NyP8i^9oPLTu`Rx(%GJ%xR9u zFi4?1reSH%m>efp?9sYC|K!=1u7?K?%{tj|5cdjeRlqcL(y;D<;>QX^1&jMK|B2bV zhrMw!P*#YGsYWvxNEWs6>hfgl(|k*2HjTzMYEh=#2)d?bI0Ik)OOzxI7ZU?9W4#l~cRGo&=?UfFTf7rCKu`YN&TR5?tdyAOn(S0MpZ!}F&4P1X z-#4NG5p;%b=zqL5J^!05`E{;1jG(J8;JiP|DXD9>f6;gN@Sx>o=)(=qs$;?#sk`4p9{*XZe(-`IKOcs!sZC8 z$Ch>)XG&NO6>R0=G=P7o=7Kp8$m$1g{UutXgY~Ff>cD=Etg2j|sr)5ks>v&@fm|Bf z9HVmyL`jU7LMq3E5(4RX4h+S4RgC!UfZ@El%>7FguMe#5zeM}ee~DDZL;eySE&}ul z+s?@RqDa8pNQ znV`*i;V*qP`Y!+fz#jGgcsUbmlS@s2!_SCiylVSPwEf&@Cv5}Pkc3Z$(ZCiEgpd7? zIPU;%`)e1j|CP|63+%E+dM@r1RPGp(2dU`6Q+CjXc$)llyK`c#MtX0l&tH=B)clH* zys#>LAGVQbJyaF3POGyMh@*4LO$^Ed=hGHmDjL2wYAA4>^ranK;#&L4T(BGvNcHbu z{sJr4O|su*KUr7s8l9C9`^D|%HYs_drQ6_Xbs?$2Tc*1@QhR3%JG*x6`OQgmfsUAr z@RMy%ohKIuR*s5K5w0palLvF1Q#~`w7K=@M0*5$$Q3@~(aH4OR(+9lB3vZ!ZfaY|Tldl5 zD{Sq|Xex?DTbM})+IeV6HFkFj*0Pf+Xn4khZSrN!!*t+wCp5n;_AnnaTM=K=T z^IKNP@Q)^xeArQwPA$ikOLi^wh}xWio$I~t4#PaP=pJlnSw0{mLDvS_V0*heZ_J7} zbl4cQ=sX#iRJ;VbGb0sE@FowgyF=@Jm$n>+2OdW?tkH`tGPHC5oSqs=yaNUncY^Z_ z;xUnh%Tf=ygC&qZnlfth^m!~S>u$PT&#+oHY?A!(z(w08&YHOuYah(UX!60uP@Auv z%ByJUF~mdYy0x5}H8(}|^%i8};LXLr5;BKHlgTYRHNQob2C`5w>Bn{qHA>ae43qXP zIud)x$G&_IgK{8A!o#soaM!G+oBr@{Pk&MNK+i=6%A!doPJ}B)Ad%_99-f{f#dV2h zH)#g>enoe)*4p>9hv2sdMabqZ9*qz@Bi#~HEr~Z5Qwsex7Pl?rt zxxGd*eQ(0_P3~RG@SwZqQ_9Og^hJ!pr*=W#5|oFn=>|4}c`j5H4W}1dpQNVi>vJ|C zB?;PEENU#0=dtwl97|ml6!tV`7qESLpms4%9}<-w60oR9tCJM_;&UT@6yJY=kTnX5CK@$Y`9ZcFV7ePK^<> zkCf5&l(TC!2){ijXYiDR7Y9iGw|Dgltz8&R6w2oZOMzVWlvv}fvHJS*AGFH?{7QK@ zLV8l#qL*7tEYci(q)ak=3r@p+1}azhvXDcpG%Tm^FIg;tG@eaWAFP=MrYExpezKHz z{Yv-U!N4-%>s%08?=Co)>gPdYg3ATF;`7EAlZ(1DQuQx|5oj}f-JrXd&^!|)Np*q{EWQkWpF5`Q1qCACt7;%Kqv*gcV!aTj4 zz_L)Xb1xVy+?BNKt-L|_(HW$$BPfu@oAN=nLg*{xylwSou^G}lLio$~dq z1qB92s2F{1(6$yyZDPlREwF_$8F-+^EZ?6e;-ECO?T{N-N=>nMe_r1+P5$)L$Vn^J8Z}-Z*6&HX+<1{6_4;;CwY_U0b@?qGIWjV!BIw!1 zg!`IPQS;|{Nq;xm1Mn}%GI@`8MWn`pSJIpBQy z(m{d~+%pZwZ)ZKAx5Zo?;2-I1v%|wZ(oH92D0-Qw?R zaSdEI%F1oTtU2~{XQCm%!!HP24u%`czU^+z9+Np9Ncr^Lr1u6_+N)b!p%tr#Y`+Ph zDc!uhF?X-mX-5Y|00O_n_{A_*DmwoqSJD?*@i*%%L@W6%UbswDF{TvDHQhatF!$>z z;dyrF#A#B!pSAVUW&2?&t4G$zOegT%P@S#zT<9?H3eZYN9-WGUHZ92IEtnF~Se^$@ zRwOp;lQoxH22iO!_UvLlAB`OlF;cr#76w!IT2=yz2kGYY-@M)^42@-5BjaYxlN(g7 zNNdGyt+r`%Qdz;kiD8twx-~iVvN7C5k_Q_3!|5o?o;&ik;=mwRLM+~g3QHDW zvriBJ&>UIz-Unj))s3RMW(AH9kbSgLH&uzMkDq-K;Cb`TJ?By5)Q^>Sh>del*PpqI z<(0Ye1MiO}sX&W}@kBf}ORVau4ea{5;@48=ul<+#I?g|KDTXT#{G2zQXl>-%h5ppR zM4_9?usr>pa`5K*M)=Q$`BlO|79Uh*bE$n=;=49IcMgNS5UKvhy?*0c6uBiK2p zzD&jnbR07U)7>fqp8gc~0jt7)zW(QY2miz7s>9&l@4!llQ2-$-L`4U16B7xO59ZKC z4F=zu!^^r$TBuf->e(KvOH9P@2sYnYcal4;LJCTcRu0F1HcwgNfS?dezB@le71d^g zIaU^39!h!7v1}w3*n7f>LY%CQ$v@o2_bY{|Iy`=ToTCoAgByH;K_n=VfmeI0RI8VE z4CZ~`FPX>PNW9SEd3k$+7^ULQUCh<}+u-EyBRO+Y%_ zy$BbFhQ)VEBgNvb!pp32cAD_I`e`wqU+8BA|zTfv{DJW9X#XxmjrMJErjNVqe*=Eb)*xVxm$OX51E;$jwdk z&Zb30cBUp#d;RDbZ$d~pc`cVvXxH^(*?2$kI;}u}h?jdVZ?4k`G>KPrZRSp3GWBq5 zMgmC87uM%PAaBKVCcXaZVk|+aelckg?j@C8`BjAWd#4$V%P#+jx5)8q*4;8{G&?f&9LG-@DFuCwFl% z13l;i3G6(v8v{|{WJaF0&NjZs)I_(-!UDOQ(%KDcnkxL<*(~Nk&_>I0^@J>VjSyM?soFH^o$euF5pp8m*j%&(^q>~X>9Vt&(%u5TV7rJrx9~iC^$D&l0IcPXnx-b|zFObeS5#ALQ?0sh*8F z9LySwZ@*OrLCQu~dsXq+$odb|2cd5w>iMGf&K_3G|I&DC_mZ`M+1c(RDf9C41RGs_ z6G8du)0%)4YzuV~pRA56B$zT7;fJEa4EEVz3h>%r`9G1?2B0mfo(Q{3sRoKyuto$e zG{yHvb^|R~j&XWlV)TGfEmIYC6*)lKAo(?X?=$kZ+hYd_#{ z3&h!o$bGo~2$Y$hCoFXd1Jq0L{tSV!vCW0cLmcFsL)M2ewvz+bHaI7fLkFV)FY{(8 zKUsJQZ*K}y6tK|TM=FlXsJYXg3!zY2x^u8pA!5Iha02@d96<$8Op-3i`#8Ajqk5>f z=ZrzjSdv!dJ+TqCGNELzH+AaXX%1is74Jt%YfE?&j9pKs%=7`&Dmp(f~+cq>M1z!Xt zylRInk)Hn;SF#A{QHjnf6pj;(h)5F_ji~AdS8<)@8FBIbnnsnTMT?G6x5w!wX-F;R z7172;QUQub6wW&~6nIrxK)vSxKiCex)HcFC&-&8v#5wBAwT{Tg+^)Yk+n&7b<9Haq zYSOB&f%G`2`bXVp$`>taKRm9tDLY2Qb<$f8Vp#`F;6PNwCiYJ*t=5e`313Km-FC8S zob&#A76)kp$*ORmmFt3pldCdx&8!;7vZ`VRz$u|+LLbz&E9`<=4%zD z9$JYoyLbM{Bd0JtNjv{@(2T>C^W18tLEs$Xq#Ty7M68D4jBOWK1>_uAK!ULZbZ+MM z7KOwNCyzG*rki2t2frtuB{$6`-(v0VmK$OMC13-3k<}fjY{dlHNp|g*lhVSj=Ik

    ~%&sfy%GUEwm`>)D%Q+S362*4##$*)m}K9FWk1-o=0havX4|-VvE(!ko(R@-_dm(_N!!R zA8ADU_I6ndcLGcuJ#wV4H+lpAOsvK;;jx%&`tn9meHiyO%KOQ@calc9o)h^T$L_e@ z!^-xqaQcQDf5Uif#Y^q`lbcW#E}5&jgQXsxs|%`)P7u>DIoLaLWl9uq<(lS~6xtz2 z4vbYN&yJyoGk=M!onmnsDC;)V5(M=z!+W-#lG`ihImm29R-1b6BSjsv1hGPZT*>EqzmfpbT1?@swcq+UUrLtsq?ocWp-2m6>Pp zcQFAJjKI7^$mLz-Xp{r`-Q4;-+J7q&ua9Nf?N?auWNg7qfEYS{zL8o|-<&xV=g+=l zHA*`~t6oH7DB&c|&Hd;`hhDe;n^y7gKcXPt_jk=r9~1W#QpeYpr!lRCJshO32V7@{ z+O8^O0_Q_96`f9q^U|8(`&e>inre`u3y48Y(%IOfcTFq!b(3&Rx+YJ!^PWSbb`C5q ztH=YD%M4z=g@yHI!$`lVi#o0uFa+~n8hxAUldaPd4ETi9mrGHRpDurjY7(T7WzXqF zAxO7DcT@EVx?gf{fIT}_tGc{B2b zGs`?g54~`NDul7`)n*2IoEW!ek*$g8AB?T^s=7D)gZw*Gbk)Klnxquyiri~Xcptrx zZ)WG40Lr9Sh1S=5cXh9|`qMW~D%_LZ=hL5bSg&%n34@KKOb6p>;-f8`;sVLJ z-uVp%;1*?zzeIxKS1kmR!u*eR`Tvsqd3gE>jCELegjW*Pj;4*?j3{5-7Y(ZvZo?$i z@cy?z6Z9cE;9(i0QwDCTq~%Uooqqj$iW|H!zBE;+k4gqC#z$OgMn`?~UWa;YS^*Ss zLV&@FvS;`fF0L3C1JCpDg4oE2RdLGVOgE_&8o7>%Mq|eNEac?bnf8n~9}68lF|&W1 zlf<>-Zk3P`}Xajwizj9H#<~GhQ1}%JtSoYWFW| zH*DtqEWl*+gj$0TD1@+h3bhk44{3U=;K%>u82ry;Ine*_)l%!Se=n%MyoT8a%o&`; zK;cK5bP*PlTg}s<_YZR3bzq>7a(YUbqY<6^v1bg^SmnWUeJ%=RCWHqS| zaTm9HT8!ndDBVTYV!T^WkbOgqN!la5`d$eAj(NY7yOYcJUGkwe=Bq>VS^bR+@l+V@ zwvUZJWPNm-aHKRcf^E!QoH{QIDo_i&T!kg&+{SQr!LIG3pMgZN6#nQ21<}Z_xk#4N zeAL3b5Amw>-CJ*8w5e-cZ#r2)W#U>b@7EFj(Xw)`gGUC0UcXwoX z3}EEHwz+nU8P-2=Y;&k-zEdX>PaU{6rn%B+6UN#l0}^P|u|7ZaQrVO96b>LIOesVU zLDVCn7r2O0Tf$bo)(r><)?k1C?Pee`2h^YGomn}9YJSF5muk+ztQhH%=*E4jK7aa| z{linQj3}rS#>=8D36*%?&ijt(yPK}fJ8HJF`^v>TNbxvP(ROk4nD~H#Oz!CvD*Fl~ z*T~FmSL+5$t6)p6U`ydlD2c~78f?S`EC7HG$aa~2lB71`eBpR%`s}vwaa%WnQM{9q zFigH?LxB_To9&dDE37BXV7-e-d>-uFnL3u)`VvE;`TPCX^Jo>joFXVBU=WWtRGx z;t4N3D($zd3f{G}8eR;u!pG%`r9WgT90(gU1TA@LtSR?b+Zr;c#j}?wzxULaGrKBP=FbL~X>e*7z1~y{oOnNjH5ZmDT|MLUwMQA`>-8HU_CT>WR@ z^DOE9laJmUJnfT6Wtpp#Q`*2XS%v}nZ$HZKOkNX+y`UNZ_CF0ZH+GMl8G<>nobg`S z7M`u04VbZz7MX`2Z>iBAvE;9#A8CJ(gtJYY`sD@$-y#%w)e#zNxBr;LKyn+mLZt$1 zZdxv=RYGcgs|PmEp0TJU)4HQYD+?%Mxo%m*Znof$~Q^PVPymvl)k<_{X+QXNKnYH=Uc>c&dY~Im5gAt+WkWp{|5yhX>|oO;z_^ zoliolS2DIrAScR>vBy;5um*-G?669MZ-B-eYO1rJes%hUoJwe79`}GZFSfl5?@}0{ zXWP(zlXf_JktIY8WH`2E(*4T)=rRbmn|5qc42w{8{uf- z<3tRmF#Yz+cVW?v7hQJQicsmcBCy1`?6o5p9dN(>De1AmG?PRIPWnb@*op&YE>`NM z1NKL*hl6_!I1(xR+k05)`zJ|?cZFogz6V@1sW!HT^&76h*aR&?)A_AN&kP7bG&tit zf=*xa^?&jc|G(AS|Mz9)|9RiuY?-$q9RP#07B$@3)RV5P9cUpIc@ZMvy8}^=jp^4F z6ED+GjsKXTif+rDFF`A*)Wdr!L`g{|K=+)z&lJS+t2}6q8ZM`JeaQSfXCH>M6;SBD zToZ^r(dG=hC;^OA&cc*>8k6sXDW?eRoRk)pw+fh=Ej|n}j4cpWf9$!QjR8h1u)vS? z6(jXI(19c(r2R;JKGrr_jB_N`Uii zu~fqC2j?s5f7sBjnc=c`UXj{2X7v}sLwTMY6)M~39#*zfZegvwavz-{VvtE!zU=*STWhE<7Z55ml? zH6hjxZ}}Q?a)3enQ?73gJ%67ty{X>YgfG*~6!$2-VNGs(t8}`R0K_fW(ZaB6yK~k; zICsce6;SjDr1r`BbEH=Beaw3JFyejpyG`Xu{-4Zgsfs@&}{Q`6livp@Wt0c_zsq86ylS) zhmVKW=;wcTl3?fh^kV&U`&91YTsX=2Y9gzpD8*G}u~tjEN1bQsX7@nm)sKu`43-Jd z|52lRCIl|o!VRV&EPOg!4`|#(rLW8_hk~xEew~|G0^A;DyHkb<5Jzu`Dr0=ZrM7^p z3U~L)y@*rk#^AWRSOkl{Ak%bjc?IJhmziN&t)ti#^RtgwM-Oo0%BzfX^1z{zx=TB(b1 z);>@oxV~(~Xb4YiV)16m8OUjz1!p+-Us z76r}F37@F5)qh6d&fmFDcJ}1gZJZhG4|nRJ!ql&nM(;bW zdhw#$4&zsDd5uSNvINqXA}w5hivD5uc#fDRNlvO)o)%=Y;eIui!g>%!D&HSaMW-bw zX3~U+_v1w2&YhnnEnbh$Y$hgfP- zJ$4=E2}At=&3DR;cnesm;nm{#>_zY`@t^0<##fz^JYk{0_%p|;h7m0#SIouBw%p#c zIp^dhV%9+sVTA*=zz0I}!a0qNfLD(yi69jCWIE6Ttw*l9I{gjPaT-4aZxd`VgJU+dQn`S~ zyq&m2tqcze?>X}hzCQ_lJ!N7Zc3=mkxZKLpBKGcWvwM;V>`+4>bM~^Rh(?rauft5*RGG!R#tpY31j~r>+9%8Vn`?dfRvk=^k zru8cyHA?;#f6t>cKNVj19=XQYoZgqBvGWzX4JgfT7!&9|yvK87%wSwQ57C}6X&-qt&0R2Jh@qd;k z|B*`*HG0a8MPr84#UBJq>H=VZ*ysDq0>r-zT=~4Evb~>98;ger+7$pmpI#XbuAflQ zN}-KFCe(eS-64dRts-RjF$r}SO>9p%`ZT=4xwW|DD-ipMS(}oE?I|{U#>u9b9y}eQ z%N4${n4CfJqcEhr?`~{`)Hx6&n8eQu7FRbZ`u}%7w{T)DF0W{LXPG;s+Z|l!EcVkH z7j~q{{Y`6{+xOk%dG<$zl>X~ptT9XlRfw8h0@>Snt1k(3X`62e6NKw2oDD;zF5dn& zS+8AfFCR~fHcY?Tlx#iHWVm6q=7wIq8~Qm*;pl{T%DIq&>H3|=zag2}k|ZvS=Y?9< zHXJ!yQK9?OY`YcukuTMjG5Jh~*S)+vOxKblaA++I)3gKz`ugBP%74>wEFoR*5y{>s~Er7^UkB$Ai%>R$3`#r2z1jf2?x)nR4D z4fe%_)nT#1;nN^lUk%;qqIy~Lgw;rB{a8TpZ#X>tg(fS67Z@`3b6|M!ffK7r99`?L zAi!#4qJqk0F~!vwVnq`QO=!lxy6`-21*bh}kG$zL{5sL(&2Ndf@2Hr%m2a@;1_fWe z@Vh~0OqCGm;IOL0BC1Oej`<33w)#ZtDr7EWCP|b&$V4V8S~aiQI>YW>?~4@8vFjIp4<>0#W~F!nda_23G?JQKF9z5t z9t0_DQBtVXh~h4;nm=+^zkZ6wHO=gOhGZd4YC7kAFkR{#(dylPPr6o{jdNHQ=LaCh z`d@j_W{f%aE;(ZwmRK((^|SYzj>oU^C_8txVIp7WMKaH=&hQ0nd$4D1MLSLAo4HU} ziM7QJgX~S-$emfE6v3B&92|IQ4(?x{`6o{JfApd^YSiYNPSu4pljia2yiJcZIyRT) zHtTWXd+b26#>_KY^>6p0S1Z25!@UDYy@>VL)g6|!w6Q-DLNy=Dh@Vt5ZE?qZc^INW z#_RrNN5SS|@0uEYM1gP5xFuE~T1xZY7qJG7FvY0kmpqxav|>HC1c;75$e(E7RK+dliv&boiW+F+!k zZCp3uN;#Y72Yv0r&Le3#TwA>LD!T1cXu6{jaSPWS9mkq@k(EJOUsE-e)A#=Gb{uso zHvDvi)k!_R%o`3oO#I`eeF50OK6oNdek}pX24JE=X=`KZP71if&kY&>wyJkN=H+Ou zq(o(e@^G6hLv(=tM(oEsH^)fc9{U_sq9T)A){ph^%FIXg(`3@2be>R8MALWh`;-%#HA7i^m?u zzqE)SE$Dc>mdi9BsDc4Z6qM?MoAq@@V4g-J@J$iAR}YCR?iA`zuKrnE&X4WJj>o_0 z*fw9h=PyH6$a;8{RYAe!vtu6J>Cp_#Z&o^;qHDDLmM&6t`xEX>hj`%PTT7 zU(w?cI)9!)De={?jV}})xPEPTHRml^=Fk6ref+oUEo`HqY=;sDmMA#g5t2VhqWGd0h%m=3so zi`3Eu=_(51E3Q9y%--*0poICTn7=)e;$oHbDVTAGafJfJ4EDbh&l9`VpGBW=7G=mO z;{X1e8vRcpvL$2ZgY0RgL7a|=f*%gDs=~N!&Dq*Ih5CkFj(g4aZFEHVDXebo?dTl~ z|8&aSj+XlAxk(ydn0A=5j9kNl+}aeWi2kcbqC~2k2azDX4{7J_M=1)10+=63UhI7y zU>S*`{$cCqbrw9goSsDRz0wftwDh(6{;OH(_V$+b%=F>8pjy$9R!wuyL-+S~Kpq&3 z$o9Fs%rPw3Zd##Ma#(|m!TJ?u61JjFJR9Lto>wkG3Y4HFyF|?#&3rGj_Wk~m=WNv8 z@i*>$dvhq=q0$TBwD7M{0-zN$1IR@!=rScz#4c3_*JWa5ZbajrU)kl>(ejZt?)c_Q$|dQ-zd~# z79PH`V2(&QkP@{q0o)^2{;sNOGm~72pX!{*p+e`$wsPosctqL=jrBPS5e2%7amx#U zef70b`*~P{SlijsnL@$S*HTv6?O#}==*h27pkV)eN@rQnZGnT$Svt5nPYYx z9QAxLmcEtZx7m=|U*1Pgch24W zk7Z4XvD%jc*1Z}0USZAdq1YuQ27n%;mKf&r8qyCSz9u)%=IX7VztcJ|&Rkll!9H9g z{#wJ0Gpcb8X1~f@ZO5`8IK%Cg?yR9anc-i7zm&1EI#{N3( zCfuK?_jq4Yrc-o%K2F^=GyqL*?;TK|iCh$Pd5*~r`lRB-QR|qBp+cNc&;Fi0HsUl? zDT6hKIrm3Hn3lj%*wZ3yp|X#(Y;|c1tr#6b#hOZJ%^IccmOl12e;)nVW=yqJKU6k@ zxb?wNywIpR@wWt@qe9o7xmFy!3&eyy>F7Yj;N=T(iR3;Ksti?j^pgX9uj*pxLfjXP z)-i+(R`6(+YgSWMq$2G%E}3$Z*QU+qq$?TZiE`WK!@90R2S8w#;V+Se*ZCVk(G=uR zu+5j6sS^-n(gZD=*r;RDXDr(q6tN!_Q}XT7YB2urYve2wR4LDu|D&i*y<~4_y6v8$ z$(<6%`9MRbvK@b$!M{W_DzWWaP(Ku8dvk)jer5|EHiVw6a^h@NCl`|Z{AuG(ZoqBw z7HB{#4uWDmq*p@+_pC2w|zu}nr0t|KR^hrd7U!M7A4QL|;wXA?Gho~n$NGW|V z$!v_XuZG<>R-77_YBZ7YWJ*MAU!cH!~op*TYK!Y_PS3$`BBVUE_Lv!tgT+e zZQq<-?UvcVhXp%x3T9*P=Voc1pT4J;kFHDQ6e`&mT;lk+Z-@fK%#-mugQzQwUVk-0 zI4h}+*iMh2=*uw8d;A7p!?d=SvzHoIpa?+KqtbpVPS?^nxe|49c12+JEAky4*TMM! zSk=Dz1=evUOSA8u%HHTrn?0<9=Pp=uO@ppZA`NNJr72V4wk$hWg@2A&DnyV4sueUK zLmHwqGa1yT-5A!R(R@CZx0GfDoEOc8+*IxFez{WVZY52%E1Ea`?eF>}{o|$%XnA>3 zDse2@LG*TL^bhs{6E;cztf`i!$fIS8fanxoKA;h+nU^*lPtS#U%w8_6fiy^yJJ~(b zg5_2OnR#xE7)Szo13?#$d(#7QUYf7e8 z+VkOLo3)-GFIPwCorF6h{R(a1rd%3PDMe*##Q|AEGh0a!N|29soq87S zo>@}HF>P1Y*_VJW4o0kTlxzO3HS45w0?Tw>xE`W5Ho!Ml@TDMYnNd#)DH&0+F&elR zk!F{GC%_Ce+ZPb^Q{%WdVZz2qS7tE}-wQ7|GwoaGl#OTZ2V7KpiFb<`ZJe=T;}XQ4 zo;23XA2s3-e&>JYE5`!V+9n8WJFQMpMePur=REpb`sRT}CVoY&*7)z##3%l@{;nJMSJmoGezk3$6MG3z)m^a%#K{8(7&m&*Af_ zwA}VV+!bA$DgG%UtrG3+@10j+@l8wAbz|y{Q7nLp5}9AHf1+FJ@SQ6}Jt`sn5(O+Q z>Of^wP=HlCoa1K4j84aFnMbMR_FRa>V_uKZLkZ?bskabB3kNT5*#^zpkpG@S?let; z86+%R`m^;Tsy-B<>`i}-K8(4gW~5ku1YCcrC}0eLPgho8ItR;7DFl`25O?OjXNBCp zE%+u;i|O?BUq;NkAQR=O2gk2yn((Dx~k zEbnZ}wp+~J^M!fa8IQ;_p=8~TBc$3T$fKrtLp^)WDaaO zq+V&Q=I4AhDo!&}0bqmy;#Rpu`1sWpt~CT+8nH^~(1o6UoH>-@4DA#}e4F8)5L<0B z)=^)!5e2RW-;idvUnD1MbFo{-Gyp0R#PaQDyG|wKApnuMIw)~1b(vgIw@a{lXgyFp z`i+=3Tc(Frf*18R92$Uyb{7Nf?MO5$-@Uv$q4x-)-3z0_ zi>_{;+-jhr1hcRqShjCLG&3ffS{sN4bjeAr`VibEB5u|zSlUlwTs8IQ_Qo%;N1W^xTDC2^V0J95AwFF z(w_b$kX zm6ZMOSCTL|U^3O*3ej&So_dy%t6LBRvI*}XK$e1S+*gCea1j-_%dTJrY;ansi-Krk z)M|^tebG;BBkYGLf7ieZ_}sKzCkPI3Kg2w<&H6qPk@ zp7Ob6gtQo95m1#|41KVX99Vy}@gvAeNg!{qXk|O50K8kgLn*v$R#kq}&D`L5)jhjA zmZ{AjeC)TR4f}xUs-o!ahV8}`O6QAdB*d*Q^~JYX@5VRbpW@1Xy{kBLKhr3pvTC@J zy|T{H{_3gSNPtoOZUoTku#7;)DoATdFXBB1)6WCjX{n`mqP82G8GW)WtUI)-9<96< zZJO4Pp0%fZjQ_W%kDqJ=h#MXT3^}>fPcjQ&H{JpNQReK2KUi7Z-f2!Gnf6u{NqutA za!m1>@R+wCWqGVT5QJ%hqc(m@b5c5=UC<)3q}nQO7B*2eHysLotoEVxNG!}MDGTJm zh}C}Gz5q17FuZb5{&russLa;0FzojD7+C?ni6I(v+6l;qR^tyeWz7%3I5Y= zL%4nj{e;+<{t5@zbV%bkuA%#9GP+cl@nC@5r5BxHg6XV>xfiJ2sd1;T`WANI-ZYEk zZL0d{9fKEZ6x~nO=Tx!$+DWt!PL@A$3szDHXK#@UD`VID1ql<54o6GR4vy9+ zlRD{y?cJ@{WF!7qB&ZmC%h3FmK4{<+uxrw!N?_bMzO8ZnoVG+bfqmiV|ujqo?W# z;N;YCM^Q2I7nF<_?s&hm+@Xahh&Osvk~M*;yPZTU-!3$N6t=w{`ch$^hv|Yrnd~`0 zqC8Mmm{e@j_HKZGdG!L*)35zBA-?=B3vEGoZO{z|XBedtH!8^g*m9y>FdwWivx)U6 zGu{5#>j66bFYLW%R8#N!=8F{(5CNqMC{?M_JBZRFA|Sn~fRq>_JwPA|g7hk&ARxUH zsi6dr-a8}`q=YIUkWd4Jd}sg8oO52xS?kRD&wtiBv(Efpuy~iO?EUQh-1l=|*XO!% zwqi;*`{k;lN@BA0h|O?a!R}sjGC4o(yct_4887<69t1y#I_EsemIc=zS+#W_!ntLe ziN467C5D@@WR1WtMbm{~P$Z7RnmQ*s7xVl?i}NDCjy-?4LmK^odUuPoH3o1nzrt_p zb4k2tNWW~BPW($Ik*B48*7TGUY7;+c@IG)7y&m(yEE(?{vW%%b{7487X{!5OqS}4B zkwCMS$ZyFwZ_xZTW!#3zlU-x;iW@1ulS4j6=Bsx_pk5W`pfT#JXq|{-L)bvVfWCt8 zyGML{A;Q+jipHpxKyUqVGqO^dpH|uY_5vti7r6wVDTZYjH;t23@d$?YiVcIHCB1_= zYXhQA^vxFuytDV$D8_fbj8o$W;5hi^K?pG)fhN`X7z?HM*&xrh=G4ihr5=G~En z{XT_TSdLgsrjtOPZaoqqWAv0ib&*#zMy1>O7bykGAZ4Z;e_7Wxt0@7Lm*h>2M@3y?Vm$2x4nIeT?3lft56qYqlSm^!V57dGM3tO$Ks{$@RFEFN?PLQ0&bb z=@UfCSC?Ba-w$WWIL#G5^fL~?1aQIzP20vP%Jh6)*!n%!)1x#8Cm&~Ti(isa{Z1Aq z_kw+sJrDTnHTse7?8CBX<2&Nley&{Id@m$#1m)NHDydUz9h1*fU*>pfI+u-EG^urw&qDDHQL z3g$pLJLxAi3oXV6(zM`?BDWqtQc%_oxV{f02S126CS)P;+1FigH$okj{2gtBkM4J) z3l$a8P2&_IvYc%P8)x2GNQ%W4fNv!Ml;L`a1V~w}-^DIo2Suj0+Ls{nr5{^O9736G z7i?@bkef_)8-#vI*!Sw^Rn`${xsiOaZ|?fIrlUc<(G@l>ZFk5Z$kHz32Cgk!wt&)g zCSD>uYq?!j^|=H!nj$4F?Id7sXYFDwB5+}U za?<|io-CT@ni~HmjUdoH1>DJEZo*0|Pe~NEA(U{AbE33-jO;!s`*#8zPE6dy6<6W3 z<*-mKQaAogM?Szkc}ar7jU(+Blx*u&VXMzrF(j==SGI~%U}~6!@@az}_FpS(jZfCA zN`7vAT#X7`4Xa4q$Thhi86n2@*4b4!ANlyvLAm-3vIN07bd~9k8sk{49`%SS<`aXDHiNuBoP3kr*Io{k z(z_`PM9x37spVYT**0#PY-6zt?u^PUD3 zSJvyyMqFdB&Gmlpl}YHpd~@@0oAu`5=QKIMEMsODDcHh2#~@HMUN_24I_uXw(@c>$SpNib{^q0z1uQq6zJjD>Ow*Ttd%@SFpVXW{BIcRE*(`-_Y^zlZTPpuc{Jdn*F0M z$A%2B_X#RK>22=_*|DBQQaDIDFNm7l0xg8fNdF~e&q6M{~EdvAfu5^}+CCpjGSlJ9)>L=>-;8s4>Yj zh$!@Ef~-|$^{1ZT!U`(hMD4qoY&`Jy1B{m&vV*$qO!qb4D+B=FkJW{=0y<@4d0QD}SO4k7ukRj3h7a;sQIY-egp| zVRz=)ro|nrrt2aPg+8+XozmyV&zmyT#z1Gza!obn4NZv2&y&qC-VD@0R9I?G`6i={ zo1_k8i8J>4%L%t3n6{xlZ9d;L#3t^kC8u+$XVe=$DnRIqsoR2HOeF?AUI;E-P0 zG;O$*#cL?FelR$LAJWeaET~)ln$+t4ACe6xfh-|FzeR}HYN{*i<^z!y?<9qb?L|AivjWoC!cFWL8B)L{nzV+|=$&iI>Brzgzw}ZhOPZBomdSpR{Ad zp5#9y`1}cP`yN-<^+hD$A7Fv`0ith?gG*(@`L-@cI7dwOYoaO!C6_6>@~L}n$n_yV zuYBsy56y9$w*e9<`JNgVV2`y$%b$l9B07}Dzr-aTDNy>Je@of({oAgx%;i>}O<3qq z(oU26`U($W88k?j3Aa`bQe(p>GJZ|8ytr6eBS{r=vFo^SqBd!(=y1RJ8xI}sY;1d(3T~n%YdnGdu8_w6s}vJ)A34s z+|-DYjfHwIO>aSl79-fjmfE-lAU?`)a_KKE+7A0e3ZLAW7@=hp zQFsmt+3{n}{@P-oUSBZNed^iY3_sea9vc}=>1_gIHux#_s>ce3xaQ8I)8h_pRwjGx z`qS1l!MDhwy2XW`ne`Xc-Q?7v060Tyf*j24qLh*XSD;+eB8`@Ps6i)IG=d9`Y;XN>g%MdjJf8- z7jmuJbVB7pE(`%2(aZ#>Wfz`j&AiPy<0{o!wJs5OZTtPz1^%!*7Xw}tpY^wHpA$XE z^5V}39tY&fbA~LqdQb&yU~rL=SPVg`QfYf9*J4Lp7^NM z$M4k=>Iki|ju;3u-{L36P&Bnr#L?uEzFtc5rB!iD6eCthaoBkaK@Y#T1PK_m!KjGj zx;0H_jn=rCN{l|y&T%M8tIuGyqao`HUy?Vh761Y3RZ@l}#NGlp zt|;9czGRiLwJpb9^su_RHrU|-B+T}M&0;uTV+Gff4kea~a@X{_qv)df%_h6uANDp@ zz5GWR;hY1W@`8`3w)qrF&7MgBLd;v3Y*hs9hR2{qLuJ{X2O`g2wTau6xVPuAgb1^G zN#r^X|0@e+)N}S1h+UttT9ba|t$Agi>|XpmM&WhA^#-#$)G>8p)}2Zc-Pt!_eqE=1 zlisQ0VOa%o1p=${nSLG$tT$;^-z2^_6f~%ob{OT`$;|r|ECiPY4sSkHk_15!GG}u< zdQbP;jg655jZFVly#O0~FdQ;GCgQu8Ht2*eGIZ#inlKktN@w2}F%2U2*LyESaJfNwa zZPCAPV%r?I`=ZJ6xfExc{OBxGBjN$S(SDpv6wnRhVfM7X;Gf;vF1|-2=$!tDJnB7d3wCQDb;7qaArKV=* zDz<`FwyjeTA=o$36no!=l{5E)d5Ye5602_XQ9>>HlPRX|66?nbXH-M7Jvvd`_u2Ta z6Vr)jiEX)taY2SZXNC}UdlM#aSxg8Y|LJgnaT60@RxA6}-M!+FrlJzL1KFv%g2W|$ zELN!z%`lq&q7n0#u4nLmh!17Ch6KYdaHP>v^RF>yj-iosV#j?=D$l7_HQ=OT(;{WE%u2{t5i(4>9sQUuAC}dec>=q{kwT>A0vu7BCogjsFCBhsG z>ZXLIM7=T7JHWR2v2?4m{-JeE?W_5vDVb^o$@-f)F?6ZIzRqzZza=r9CBU(k{gh}J z>BFfj3#F9<00}dGd#?L##}N)@|4`|^?-k_J-oLIr*gQ0Nk@fbj8ZUt-9B%JlG`BU+ z1>m+S6v?v>4msH>xu^GT{F#~htZ1re6Ewc@d~<=GEP#ahPCl9}B0Us&;krC`i^?N9-xOi_Ujz6Jz;9J#iDIP!B{!P|2d374N4v~+-Oz*1V z@hZqW0jE_ulD7!zoP3-DOKfg!(9okd1>CM2$J%VFvYX{q9+|gxxpq zqT2(x&Gy7(L~1rcMyL!rXsBBN1#JNleWoiEDe(5Cr4Vo{ZzBeYR`w~~IO2eeej;ng zq641pjA_?nQ!h*?8td64-(zYOpvo04GpXeZ#E-_9i7iD}fS+gBP9vGMFfyYz4Fpq! zMNJxN8YTzJ-=RG;A34Sz%UGvty?$|uB8wns5FP(&+Re$lI0-WUKU4>tl+jPyZC=i& z+s%~qL2MD%{qbN<5~wryE*e`4jM$s(8UxX`ZoXFVhrdT#Le)-8pUACUh%@BBWXj`< z-6umR*5}95)#iTY+a!C!-dRNf`fM2!f8MeT4L!Pgw9_s~ygkq_8&k+$k8qk#HBEr` zH#qq{pp#A!{>eDlsaAtWkPKf=9%jDYHzY_ziXs=I&Wy7*&3^MezbeI|grskik?6f(2!rfeHeAIM0j{(*0diWtI zo?(lH!dN~2_b~JAiF{KmUee#~^@;S4NqwvSHM`NQn02n(%%4-aG42rhG8{n?Z-Wu)Q)eRvtOfB}5ni z+43wS1`Q3(ZZJh?dUYyds(t zAvWw`e>1O^DF63-$?%TbyeNj%u3;)`!rFe@GOy+XhV-~z{q>tY4O3H_li*j1K{JZT z(l$KL#8ALn#7up#-Iw-q^S-B6H^U#kW;?m2?R4VN&X-djI2zVUJ5@K>;3w@qt0VOC@DnhAg(fo!72)CUEtz+74-p;3T(j zln|4v!wcdQcAvxCE%v(*b0I!QBxU?xGxg5;fY`$1#ZiWh z)TY#h`gZ4n_UpC~eq?&-do>z<_YoVrZL>eORj!1`uV!A3~s} zS*||u*X({*`8?D?NEx`+Bkoh>4866da?*@_e-%7MHY6-}1k0gont>3d1KZ%uL3O9> z7nAr#n3RSx`&7!xrQYu)WOKj(1KS(mRA&ZcdBofKQvT!CKvO-Zo%Awxv--h>AG&?( zmnY+!CbuaD_E_tK=>W@tiKYXxC=f={yGx*F=#{s-PgqNImWbR<)+ADQaan`X%<9mI zj&dbplkL#k9rb@qarg7gv@c((yT)&BK#11+0n|O)^h9OQWL@C48K)|brnarl^T3S? zi>o4xTA-W9qpPLP==`ja0 zElBcv`furcQenm~Q1{kojCl_;s^o{dXE<{;>`iATs%ZhDYW}<4SAHGK;CFiF^@92( zCW(j58Ec+FbLXmC6f1bMrC2Fo6bSi$Xlwr^Mg9Nz-+zl6{O{C>Itl7)+6-HPzg$<{i)x(}< zCOc^fPPlgi3m}?d8~V4ceiop)pYXVz@uau(JjMue{)N6{j2NX#O}@{vT&|;9#?`*AGF6JMzC9L3x9)Ih<|a%@hT4a&6b%$ zx*;8b*2Q{5(JIgW4$Vd-?#0}srfvblbe4p|g74~hQdo&{@k^R@!a@*UibxLQ+if}r z2b6-ss0|0vo)cznPV~Wci)3)!IHhzN*)z-)#CA8&av5V-_QfGD^jX(jLbZ*m2Djfj zVh+;3Q4~pG`K0U)JGLo&@{_ScT7PlbVexgn{dptCkUoJfkD3zLaVk|Vgh$T$wzy5H zK?Sl1klPW|7iW~Bn&JSkxjg|<1bs?4?lQbiYBp(`td(GPImP6>)StIk|aa_eh0)pLC~QHXG=4^65-^`{ze7)gR$2CZM8H@0;_#>c+ep zyk6u%ht0mO#tD;zQzIFeNr7D){ONJ$EWRNlx=4pJgC*PQYikT=Jrc|{x4(XUf1wXY zdz=ux%XxB!L5PUK)29s1s=+lUt|tpnnS;iIw+oCa51>nZK;~#T`$UV>dITi6037d3kagCs&7{xn4Z~Y3qI?OQgJPPw+U=RI z&u3h}l##P6%r4ESh%7OX^ksB?B>v9n=-DquXlHUPzeV-z@th+lqow9DL}c)&C1*HcswD)zhoF zUa_VWHra{eMmiU`DeZhM+Dr@6s*9ao@fcNG!!Bb3t}xLD}_g^Kyip&@wC6fUK56S6n9E2;$`Df5*hIvA(kF4c(0URcfKA zWMiWHr@RF%Cq((ik$kd>M=#XN=Z>ecu6|FB-sM!`_D7p9mJ5J>`4?HI%#~YZ%vd#8 z{eVG4zj|Coy|%JE_cyb^@Z{r7HU+0^70mCyL7g@1lJou;15M=S)S-Vl|8*5*XE6PK zm+#L0nk%0jMnU40sK$(DQBq>=7rbreM~{dqy??MJg2S9lceK%h^oIl}W?^Kq)v+e31` zawclT{xo|1-mBV6i81T5vbP`Brnq!SjSqKkk5>fA z0>^b(g5}>=?{5v{x59A&Wx?w5#S6DoIJq;`zR!z|rFP6Cs)xOO?rRziX{cGt{iXh? z{$M?7dKwKRTOsr)Q`556T=Gv(5R>jZO!tGK&HGifBif4VvfaISHill#ZOdA3Aa;;5 zd{}}W)u)$bFizb=gJTxih@0*vnH#hc3KIz^bBv6E{<`6WcXP%A$l{OGrDekggs7H8 zLX_jrSpMky`NawEZY2pTSlt#~S}>5oY(5(tA)?OFwUg$;hb8-70!7GUp96h!1U_J^ zsQSs$_Vslw6y_eL_QX5mlLfvFR6N8at=4Utz?GkN@`yUQ*DA+{DBZ!Lq*{pdT54fh z&_llgfj4~E%xGrx=$IbQT7=wq2Wv+HSvO(ga1efh(WV_gTRY)1%Hk^TS~Ti1$Ul~U zROaEqf7w0Of-mXLr8?S&>=p4m8>mx6x2sQdtWFosJ=rI(*BR=EpW_t+Ih0q+ROyCe z@M8+FFE>joRuj4sa%;nH#H8Ec>JJW#e8=Sj>+8=Xp8Yapw~}`iOtLy1&_AuMa9Qwc zJu(mOzZ1$HS&(19B5_%3pDkhaheD@(307#4 zZHJxw1a_3h!eX8t((eHE;z{kljK&Ds5eKpf>3l+Mp)>ouoC0l#Mm=z zPG38_$$F*l%1fPvU>8u^r}R7jN0hPdHDD zmZ5*5Gvy#PWB+(ezx18&j~x$^uW6Z*R9!ax7AwZ8J2v0SJtxlvrIen3GsnEz z5fzKO$rTg&?gdn4Kjp4f3vvzn8+n?Ko}6?vtwW6hvKskg{~FA!S(Wu5SlZuRd?(NU zJ4y=qRn!#~n7b}o)*_{I$@4U-z-L+PV$VD{I@Zeo6+)X`1rkMhl=i;63NPeeR8#-B zzir2gALe;MGUVylHZdbmin!BWIhVWc|N3)eylLVJ@{uvYb&Xq##`Gn&ucSU2D8J=Q zEt?4pE$wf)RJR<5)!pZ9Bo*8!I#QmMTR75k8Tc*r-h*d=Q|QCkV#xh@H(CnkLJUF( zk;s%LCacy&VN51Z*h~L87qXc|Yvj*vrrYI!OI*`v);a@Sr3UFr&R2Z|bdRrAc}qlP z(Gs;X=jLOV&Z*7oYG6x^S-mD9jvwagbDKqO7Q|C=7kw~+YyJ2!jlQ&`%w>!_-GACN zxgN5)@H95RF-b5s1taj>@>|F|D*mh&_t&mac82|X8 zt;Wj+=|MMwe$`1#L}ayQ)cv^v;j4>1@oRhHBZEK{|KZ#}SmckYiA`OV>$chE!kGbt zzd3Grh1)^<%atQ%kLTSQd@(<`wjxPShW%5PyScSw*L&nt0 zDG~1*6HV4HJF77EZ`ri8)_E->V+PAMC_LDTT3s|>pj%UTN&at(NOA5Z=9P#w&4h=v zSud{kU|D>>mx26-V+Q3bQ<6Cf1SI!K`ku{#PIbl;$eM(L(P#kzT1{xY zfGG3mtIUfjUipZN;rtz(uoGSP%o}c;h$wD)G!}WFt74sFP~p14pO*eM;Io*=+md6P zZm0XBMs|KWKO{F{t`!Mg0)~hTFfE_(v7Mr6@k-XNV6KMRAf`QgmGj(*lW`{4yye52 z{>b{r9gjj?#t6YBPVyZ*q{kI-=1Q0JofQ08hIw`NlgzuQudiHwYk8aWf9qRGc;zR~ z>33Z9ac%jT3FrlKt8EqHx8P;bt?#DFS$76dp4t`zSaOKhM=c<-aG@o8+6BhaS)6@z z^kKq@d)SbX|69Za`@6o1c6L?a^W$!Ys~b%PgyW+=C21l7u}66JWgtM9dx_z1^ZA2H$m{x-5K}S!8;;M_9n&3c@yZhKXaQs@ylBfPW*Ou1RR+4&{_0!MIKr!tW@=b=`=;8=9pW3B~S@_+!i&7hA;7ex90l zKoIr>4AQ^IRmnHUSw^nuE!N!1X=>tLoEMlwCZBD>0>#VJ3RN(B&628ret6)%5R}ql zWQ{7)+}=z^c(wgLX9z+Ok)J9LI1SwC1D|GSp}pf~jpFv?P?>XGE+uy%<(7TVFRXmK z;o5qehz%$EfmN~LXpI6`IBwoh(6zSg7eFHTsSNz8OCdKHRIndlW$p68q5#okCx_6o z737U^c-7&8oz6PZwrRfm)&4!r# zWui%yse*SC*m`B%=+hlz_etmyfw3F#Ywtu)G9c{FeZ1 z%mOJ{mw?#TST-;>8S^pFwGWVj%`GdUpo7EcV}!!#C*D@KCdinD-3bLhsH8(D<} zEp-h@Yp*GFk(#ai;xjw$KK9Aro;#;cEnWX-Gu`~X@EdBz)cQ&YI|TM1!+pSv0#K<@ z2cvJMfs`}l&eNXk{LL)Uv4c5tqZff9oWuHTMUCc=Vh8P)BkUh8xhSe!@5ieBD+M&0 zS!VR2o7HM;c7!bLn}+ZQJNOv)eLl^P;qT_(hTG(ZDTk;jd99l#Yv8|71YuAcf*IiM z$P#F2NT;ru5NfW++)J0d!>H$7{5tgIMJ6Fw$K|=qA|Dqkms3;-FiL&Ugn{fH-a--T zdOz*#9-KYcy$!VkT`V-=kc{Q*|9pb{$aWG@WVqk~)!ZiaJex1cZ?PJG%XI9Xmc2O9 zmS<46f^sg7kFaBbvhdI{F#TEY!uxTtZWDuQ=`;3Mb{1mW2!?~rLVqCc=U56)Ls>){?p6QAB;yZgL!V^rz+t3r$t9W z^`Y+GjRn@7@6!05Thm>B`J{d;QAmtOEKC(RewzIQXDtWMvt!}X<%X4R!F&x3?I3Ow0$$b|zIOXpL4u}B~-wzaM>wLZEF?1D>h1eUgF0=)s z@VmVXSK!YnIBst2!5MbKT_AjeuO&qLT5P=fwe7RQcHBDqMHE?Rd6XWuHv(>>BSq^0 zBVdMAkXmx!?FnrXHCX2DBZa$*r`S+fa_8w<0bzFukh~rYLu5Ucw5N}(f8Dm;Vr>rh zvvw_vnH}1`>9f}l%@E!S9k7FO+jEfodaWv>OGwMz0q67KO`s=BE!?W~?yvTrhR;#| zssL5lOZwd$Xm#ZbUw&Qydw}qf2T zvsxF3cNC z{Z><#QEJ{UvwDACuEjhKKLpr+VY8eX(Mua3k zBry&={3)t?;gX`Md~I4Out5}^&Kkek^;)O_o_g<-1>(lo0X+{eM1yM;%x(r4M%D%y z0u)V_=kt~e-7-=(+=(J(H*MB;LbKhl|F5tpm=5_~4fzE|O<)UW_tpP9Zqqlw&DCr3 z)H~I4w8T=Tx)=5`#aQdw@a0#TFMdSF6r0$lwR8RfUfjiG9l41|^8yxT!-6&{X3t9) zkz;+6{X6`(Fm2fjsFCB~kN_a*8n}pQr9w@l!7K5-AjBtmC9tM=ZEY)RT4l*}-9eIN zRqiE^_`Ertedb4pn5lUgQX|htiXcg-ecTmVY`DbkWVw_2F8XEkt$0qUZRMfx2e;_r z8+uh~F% z9^9@b)jYmiQAcmxEfT0&j#(d`e9Je9Y^p|s||J`76w}QAc=P`ET6tIJ6 zwanzFeA}Kiw6kv8YW^E1eizE0k|GDo=}5H-(^7hNmMn46;v`q4Q zh1`WD?1#!)8B7i_`_tO^ia)QxV^!m;DCan7{wRKi+7vD4S6R39RIU^I(efo5^(AEs zBrl_BnM{c#t|O#h(G!=wVS#2EGtT10o{cU~70>q{zWn|D;p?Ny=vNjRX(PICM zuvT)O0bYvS*(sQk@!!64Yf{`uoImb`{9*L~$z2zU5zsO0TkpE0 zHLb3!?$@Mdhn%R^L&s%Dqgt;MhLmiYdShg`1jUTi<=S`a6z*Bqo&>u@KisDtLRSV8 z4$JIBiGW&`dn7uM-B#?6usIez4zr8goHm{UUnA;4#Cee?2e=^$4_N z1(7PIEQQRg@!C<5rkdDWB!*_|V!rRED>UggvofNFZq5A zdR43;UQ}LKKPS*CCPK!ZIhkd6-%=eu&nJ1T;8hgXHT)>-i3tK z)vt{cGN55S<2Q{cA8nR#-4`j^eDAm(xXdZHU|P|!Kzm^ou(2ZKUF05b_{_0Q>>2WB z+s#5EcR{&J`g{Uhb;AILN$}UQXvELFi+LfAb)@#iSWstE zYhxj)?a|ahi-7$6+{|VIh#qzM17F$gr^~Tj<|(Az4mCbf=6CXAqBu}3a5%W7i&Z8U z0&V0id2Bsln17;~|9b?$3)4<~Dn+ICT6`&Yy|d*ifDHtkD3QDvG@`=I_w-iNOZ(ff z09D@m%ZVvnZn-@(h403RsDMK2LgKf=)j=Qx;vXvIpd)kKFgdeZ=c~w^ZEzad`Vf^l zyzucKsyi~H%y7Ya;%+3|7H@4Je$e|MY2F7F`cz8zM@>Vz-kg=U=7F0Hb_2R zMH-rGxg`Z`it)NFPXsEzACJ@ePiarE=*dG~GIH%P%$ccPKxW<}pd!5OFOaXaH6?ck z(5FV@N2}cE@#lidv)gLh+mLAvkRGH6{#r3tfOkIpDbww&`tKxXmoc(5SOj_#_UT!2 z&*avz2`u`lg<#}x#W*vX=JMk!`ymhKIJkBg%x+H`i{J(%XOx2<1Y7N%)+ms#8~SFD zIf15JUGuzG4^S-D?a~h~aY=VsJ;9>q$NPJ1?) zT@LcoXl=q;Mcx*L3&H~0FLw14@uDQ4XxI%U?-X9F*X{9&1COde@dl=FjpegnWJUi{ zm%J`3L8Q;C%k=+HF<-kEE}@wF^tGRMEZg^fhnsfKF4T|Dkw58r(2Vlm_3> zPWR{c8Ui(=6;S@%znOsIWNS@7O%8YsARouJ^#nq^mRCpLdyg{0eCGfXO%b~0YZtH? z^{>BSyExQp@|f2gp8qk@{NrXIl!2^6$d2{_&q+KXYDbrE`YN88re+sEQNfTPMMIje z2g8>W6qnG=J$3;2EkXrMOyUy9EYbKt|K+6%T6PbAP(=Nlo?|fPD)(z=YLOPb&HGhN zwM0xEVPv7R^#(>o1up5e4){V`|Lkv!Z}=`aCb87Tu4w6@q)Dl+r*Z5g+5?f}>t7xj~ ziyxQ6FLT4np|@bC6l@oQ5JR%p`P9YD3vy~{05vaE&CGNR4RRVjjMJgNr*~0UbL9lm z{PLuX=LkXg+j@skiAE{CO@~acN7hC6v$#Apd>A+bZ`8fZ#PRTp`xffX>ryxKV|!Z4 z12FFJD6!Pd?hf&GU2gOo>$9}y=@V;L67@lsuT8%77B-!>)G(v35otoCjgpb)euusf z%JlWbGVHwocS;3nhGmy>4_2cyrNZn~{>SP~vR?&w!qrc5)?W2M`+~E|mZ;R{k0Dlf z^Hm(!+;2QFH}@d&boge8M0f0y^0Yp6RWA>Y=TF_U?j6`+`&hr9a{1tov<+)i-2-$` zC0t^wgx z_6VYVO1TdK9Gq#6G40mEG;As#()Z30maPQ)s8#_>0RItamTg}fvaFX3ntan3zNz85 zA|odCAdZ^h=08+6eGQ4aLf;%npl!sBomNh8@IAs>ombJ5#j+p)!5v^^`X2q2cknzol>{-7#?s_QYUPXk3CU?G;qu7FE?cYaN+FRh#JOcV*sU+Aoy1;SPA9@wZ9S zGwd!Ak(PDl7yYMpy6hCLzII$cyHzxXv#Sb{2hLW(K0&#yY0kH6W;?;soWE#AzS8#z zxs`N$?tRWF)5=JS#M?(O{%#8+8|0A^#q=X*b=#u;Xj&^jVf(c`azh$>6%AgZ4yhXs zd_nplcA%Vb2G09#c*NDr`~vmic+RS4`=jT0S&zAbKu7&0^GcXd_o;bI`sUWt30a83 zlRHK#xcX?1!shrd5!3E`IxoKp-M!68;$LU)wLU?ZAN*0T&h|89BtIkgh2k`jq?#w= zbe`omWX1G3gQ}%=Unu{26-EB(!QYW<`sS6MbIyMAvYnu_qIUoS(lo} zDD?2l)hNPYckEGGiN$ZbN2zaV@;S%4|#K&w3H2GR3YKd$gmylg}+} zb%5^d`=339``_*J{-aaJ|K9Zxq3sA}s3E|u@_mg*?@#$~#y+!G{k)y}=6CzMtGBq{ zubidN<;I~-g6&sA3jp^0^ZyFL{uc=Q{v`m!%<51CTec)V_53ZDQ#xbyYm`&!L_c*~ z`koQ$UStD&C9z}ih8KWgzOeS+Y7!h^sLpCwnMUKpr1_ML#ydGZpF+0OpzN*>`8u=> zjx1CUM_!b)m!*rxI^pNId-W&9@~S7xUxL73SUA)D@yDg{FR5<(M#;4R<}G_{+0KRk zWE{j*me|EJRfevtyO_mPza}69L!3$5IO27Lb~6=K%!d)Z^$C>A{{FNNZvQv_{Xg+-|Ne~s z6QTdV&^7$`3i#iBRsP3TKvB6H&y146_HNqRc{+8*;D|iL*duFBc-0ZsM$uA*Qqa!- zPyx1Pv*cJsJ@;hUg4@E0(VOEVWJc0gz-yh1H~$28KF>H$JV##0{;P(_UVSy=(dM>u z)_9gz;q<4CS=In_1e~UQ5C|Fej+K5~Gll=kNEw?L6pd)l@SXU6_vdv6I|KM9yk+gS z$zt2zHavoDlc5MMk6|H$IV(AE^P8~ax?1LeYaP-o%6b zwny%BAMUD1W;EV6(&vl|HrrbrR7*l?Vq`&cd`6%dquTYj^Qx87AEy2N4lzl;vsl@u zl5!W+HD^y0DwN4~)*MfcQ&%@9>}AEyAnT3CV(VRV9KB1v8H&(ZBe2fhO@1=w#sC>CZMp}hQ z<{+%P6VM4}Zh!PMZ~8CoU1v~}U7L=8BGMEHMVg;m#J3P`WgB3&SW(u?#GASOWQB9KT65aK@X&hE@N@2~xK_nY0>eJArw@?vD3V)W{mC^Orjh+KpTYSKExY;QNws7REtvXKb6kJ5-)BJrChE4Nh`gukY)q^W=3j z=wA5c=@(&P@#)}uD^8Pn4#N}b7W$CtZ!q3cWozKFyT)H|D9h%M^S#i4{|~jZIMEZ- zkQt+~>XmBwEAra+;tVilW&@YN-{V3{1MczrAxUy9*VbGk0>59GB)3Gsj-j+gtXD%A zMiAIbbFnWWa(p(?>0!Bg0ZMwRsShF~Oxe8aPePXc<-0KTdS~0tc1E1xIey>tDQM-m zdIWC-(VwI4uaWb=C{_EC8Tg&m$7|Ly%Kh0a)z3-?)^(`bdG9sj-Q( zx#Pl^rP(5QIg^#p`t z&WC6M-yem-2Bqci@&K4W*m=*s%}9G$a{Dm8AT4iI9Ys^R@F}6GJ=yb|4^;4a-JJ()E|n(y6M&ra#PD}@?+uy0mhPd9SZ;$@)x4Spa&4ae?1uKZ?hJpKG zL3hX@DP{2KYs(Sa8b&a)TXB6RnWkY13W)<}a-wRN*=~S})Vjd&vx?C~Hfmz2=d}GZ zj1>&Fg5x~ie#Tx$tg<*;>3nX*C70HXb3wgrHCnYhG}Xfwg9kXL#+>>VPQV=ERiyIK z%|jiE#hcQ})p^xq^^jaP3Z9KSMS%b1EccevQx6PH{x^srK)rN^oJ#fY9l3cWS8BIZ z@L^kek*fxv&i483iJ#6H(!UtXbBf{W9pNnnP!Dyx_2&FSg095#jgk9FGIzI~QQ{Z1 zvL=iGBi&P0)M8FHTXdRU9Yt=IzZ#AtL3@rdJ^z$ML^F}q8TFvdkaTwNpj{9^tBj4v zB6s|u(-F!wa4b?ci7tVCds<(X1+o0pgfUBnCzMN5vB$^@ zOeL{rIrnhY?l6j}3AyI?0Mvy_Oy@LqD;hla(W$|9xAVhy* z@Z0&K;h+=*PcZBZ_(A4+y@MUX;!iBWvD#nLT-=7H4T7~*v#HiQGo-%<`w_CWkh~$ zekd55%zVyK#qaq3IqwYpV#e&8Pnr-4V=JB25;!=G*B?q!wifzfNr8r0I2LyWvN3#l z8u<3MWIa$0OB5JFp!%KK8?@qc2noCgi958rc%vo=AjtN-c9AJcy@A>>wc+#YP?CrzEwb@|60-@E)=UFsys5r3+7@#_GGuKI{O{R(;Wb@l${c3CK7 z?B|1M*Q6fDLKWY7Xi3V&DT4W`|FS zN$1hU-f^*t?eR7Hm}Y{)U_ZK#J2Hnn)M}n!Ti?t(zTStZTXTK_qg_FEY99z`|4IRN zWu2ZA+AcHGktC^DEhTrNAVsoD1XJK4^Qbh|jY(cmoXb$)j(efnb+zuVDzo-raz@(R zH4aXGbmz=qO|q2!kadJXvHFLAIH!bKGc~Vr-EsQ)rk0;&B*8&2eL_TVyyir7`9=n1 zrYG77z@l%yKYsr%LlFqXeEoQEfzz|T#TV@jSJ4Vq5TYrBXs}*rjL99f3=Fcci}@xN z)plX>O*6cU;DaO}kp8%wA2q|kIL#k3y&b|7Lgz8HqMxUPhs_D9mDe=c_ZilOYpW19 zP_e8Z+~Nl{*-)Bhh}(9l_X^c3?-ryXbH*kMdd{~AYEiK91n$#yyx z2B;a{57!z8}6N#cobs*--&gwKCDqQAY zAH2cjd~O!yC#TfCW^Y?TiC=8%=-)@|Wuo+6dfqK4SqA5Zy;zlZJ(9r$ZdUx%2Dd!? z4SJQy&gADS?M>W)!`b+2o~XFA)kZ z24|LfG+qsaJOVMJ?+fj%yUn@%d`DiJgLa@0`Jo7p;n`?C%kyp)JGZ{vItUxA$GDYA zj{>yqe7JZ^Vo2%2w@cPwHswz#E-c2zxDwN;75X=eh$8|45Kh6|qJH^1*!U0V_^<1q z)CPYBQFjdgl!j$-zWQU1IJ)vjFO;@`btJmNRnR%QN!D^p=C_!txL$&oAKN6D8*7pu zZP-fmNGNm-YF8aKhvid6AtPlEX~E2IwC6-(h#UBJ-s#_<$@zBBzi3X3bz1O?1E)*zfk7oID*ZL0+J5t-mmI{aR%KhwxgL< zRM$3R>l?{2VQ#`>`b8=%e@i8Q*AeVxyFJBms@6Q9res7VN&GY(5|s0gOqPQ2X*5VbJa~bqx1a7+HlA@ zcZ6uWYzwmvi=8$}+1r+&cZy9{-cRCC?Kh~Pc8Pe-dn^!##i=;VLZL80duqYb!PdR8 z{JKMlV#2t{=~_OT&4)fYxRB;ZI`A!Veq5j^B~WzJyC* za_X;OZ;Yk}#b;4d%&FAgq{L%F8?S!l<6O@SBu?3ihY0l$aoC` zNiyMFdy@PLun#sKgp4O!j_pW}{iHQsu|k%eWxd`5{`MNt_u0Vd*Y}La^?tuXqH_|P zi1w?P=9%ORG>eI{t%X_HGO{p$711pV2x=;ADS2J490rWqEJ44q>_D=keP3yKZ~H z7nv@~d{bZ<7@~(d3WCwnr0NDKrm#Z~P5i7@Y(O^Jt(`a7Pib`(IN8*ykgw*xo`reD#Hys+l^uuo*L*7}D8msZf{!KA@U=bk>lRtjuPX4VBoPusfNu$R|_&T)#} zZHN=)LVE=YHl1J6l@oiuI-*=3J+;7pKe6kctPDf*%be^^@-EU-g(^XX8aMk@vQ7uB zqFUxdJAZ>pCe~@AWTM7Qc&+xSnpiHhCp5Kl=1XnE%^sJ0TjF=Pf3_1mH*T7rXubu$ z%QyA(!E}d@QsSHmn_`5fVgbHm&Of}BGa{KUZZ*@z0%{d!U~PZvPB9>3xXbi30F#Av znC;hT$N43n4UIx=o-$xU3YN#n3rn$?FODn`UApmY(#%U@k^m3jYlHvOAXRt{+|jl6 z#p7z6S&CbRrQ(YDh98v?Y$ zB1M=fC#s5qphlv`W4A0P4%jE;9HLaH;clu1XAijk)?uKAZ6TER(`W3D3J+-}i@e5mMQAoqA_4 zT?J17DKBk$FM`f{d9~8xO0AZ}pl@7}DUmX`$sz(Q7Nor-mNhQHc$AJ6li{EH@$QR)JLCE>C~xh<;T6_6=<$ z|MAvFSAS{+g@okxyoc_)K1G5ELZcabM;*wxSG?4}0RE6VuCK+bWq>&}freFq`bI|_t+%uugzEQRTBK<+C9ecw$eVf-Si#wu@Pn4unyMsLg6eIY z$}+Yl-b86;sv2j>FtJ`HKeYee!sVzHY^t>&c;dF56Qq$sXz5G_%s7kTky=$b9-N*? zHz7V;(#l(iMr6QH?4@DY-aSd^G3$_rmLmYwylEyvzKpA{eYz`bLw<4V_C)Ni&o732 zL-p@Eau2b~iQVT;-`1HmIW~pnXx)`o*hE3rZ?0}4cZ>{g2d4E*9w#o|zY8jk0A9se z$N7tD78dJ}Uyr6kl75t6Ff>u1nCHbz8;X+=G7oIrw=9P-Sj0TL*WR7l(SkaP#XFJ6 zT|9dEa#OX(!*xiNm|@y`@X@X+XPU5Za~X0TU^R29qzksH6Vk&o0flUw4PbEp9X{js z{q6hp?hNIiVA4s!%O{yWJlm)?MIes=QWRj|wRS*j=?S#}khAx#f3Ho~!tW)&NmDDq zDv2NX<-1%t^`T4dvJ7qfnP`5@o93t_Y~@nB>@wz|E3D4d+=lkOl~}aus8D6ydv8GB~Z&W_cRgBggy3 zU;NkkxC)t?#A8mAye^_YN z2Qo(-INZ9J6Ct~GZ@Z%MlKxa8Thy_?-2i2Jd2UH{gfcd3(0nIUwE5QT`5Thgq2Iy6`?0Plq5SI3^4e^~kLDFEaLm#o|e*1|Ry zCY3kLZ}oOv0t-7gr!v0+Y+=M%J45`ThTVNujvCi2<1AlGVR4x2g5UXO1h6az868FJ z;1R5yZ~IA@S6iYA13!2Pi$w#P$;gH;sIY;n`}#teoIiFhB9m$ie0;s1D4K_q2+gy! zzum3(;(F16ynuoi%IrN#9|?)Q7b;pSRTfLXC*8IFX3gn0D53WN^Ck4OGUuBR;X0t| z`=icBt2;^!N?V|P~rzQm({=~h6w5M`NijdAESSL{_oe5{73a0D}$^bvuB2((jwn@ zWj&Xb$%}*XvZ_l*zj5!Gy(-LEE^7n)BCj8VwzM9VpW+I{%arB9SxyPeyD-giM`apz z)~Qw|Uzqqdl3qXGUo*gML@jj7T?qk?DBDT3H>-|q_(FrPL)&-zpCpCdHw*memMUG> z==?y<^}(Wfn4{Wem^N=JXZXBnV;xRYr}#&P#CVx9L0VFAku~6vg`BOr97IU}@zUiB zFImTm)22<@TFz3LO^0h>9ObXdjDysivOQA$3WMc8IIR1>Uk>-JOMLyUN=7%znMWg; zNyHU7)n{E#Hh#lV1)tOAUwZ<3t#ZxANW-cY`LmB&zMRr4Jls2^{^kte<;|An^EJ}) zzHWWqJitX+h0$VK#*={h;V_=Pz0mDfp|mvP%#TDuP{^?I5y*qD!MFwk?H+Y+EZ!x~% zJ&B#N;wVrS=A-%xb8^wdnkcHTn?51>*M1DTNZkttGVm1~QIecdn634(%p|wX?|7BXCYP<8 zORa79iuR)lt}l$TMYbgjD!za(skx{R z`_6B#<3BJEJl~IDg^Q?yv&iV`!P8o4$HU_#ma6hRChE8#3Y5q43!HM2DwC9+MNrWu z7DHYJml^0@jz84SKM26n`8z+jNOxSDSw{9~Qy))MBl)J*n$P35BdyBWQf1rN`};2J zOInL@1$aD;>x~w?a=q(4Hp3g){$#N(jCQTqQ#FM*6;)dI7_nBVtT0JCRw^21Bfk_s zi?`m<=bf<~7Y0%Qm1URqu0XvHL9G`p&Y6%qo764#UTwvYAzuer)^hw4{)(#YfqYJyTb->Z=W7FM;x~vR~yrVFhRDb zNU^|Ai{aPLK0!qN2C>uN`Kxzfc6Mkt+pPz+HQ1B_Pr>Twf+?XG2tQFdVcpS>zmq7) z$bFX*R+=GP1%z1aa%NjYf7oJT8?mM_4Z2%XAA?E~xPIYQ_?ZN8b>vrJmhYn*4t9oC&EuHmx zaE%3{p20p;lz-DA)@pm-Piqj|?%n^$CpUHYzO2N?efyudgzf6_#ec!Bw``6K(E(Z>Jr82CN)FSGiQPyhe` literal 0 HcmV?d00001 diff --git a/tutorials/cyclecloud/install-cyclecloud.md b/tutorials/cyclecloud/install-cyclecloud.md new file mode 100644 index 000000000..6d54eb107 --- /dev/null +++ b/tutorials/cyclecloud/install-cyclecloud.md @@ -0,0 +1,93 @@ +# Install and Setup CycleCloud for a Lab environment + +Before you start, define which **Subscription**, **Resource Group**, **Region** and **Virtual Network** you will use to deploy your CycleCloud environment. + +##1. Create VNET +Here we are creating a new Virtual Network for the CycleCloud environment. For this basic setup, we are using only CycleCloud and Compute subnets. But use can create all subnets in the scripts for future advanced scenarios. +``` +################################################## +# Variables +################################################## +Location="southcentralus" +RG_VNET="rg-wrf-poc-$Location" + +#Location="eastus" +#RG_VNET="rg-hpc-eastus-test" + +# VNET HPC +VNET_NAME="vnet-wrf-poc-$Location" +SUBNET_NAME_CYCLECLOUD="cyclecloud-subnet" +SUBNET_NAME_USER="user-subnet" +SUBNET_NAME_COMPUTE="compute-subnet" +SUBNET_NAME_ANF="anf-subnet" +SUBNET_NAME_VISUALIZATION="visualization-subnet" + +# IP ranges +VNET_NAME_CIDR="10.4.0.0/20" +SUBNET_NAME_CYCLECLOUD_CIDR="10.4.0.0/28" +SUBNET_NAME_USER_CIDR="10.4.2.0/24" +SUBNET_NAME_COMPUTE_CIDR="10.4.4.0/22" +SUBNET_NAME_VISUALIZATION_CIDR="10.4.1.0/25" +SUBNET_NAME_ANF_CIDR="10.4.0.16/28" +################################################## + +# Create resource Group +az group create --name $RG_VNET --location $Location + +# Create VNET +az network vnet create --resource-group $RG_VNET --name $VNET_NAME --location $Location \ + --address-prefixes $VNET_NAME_CIDR + +# Create Subnets +az network vnet subnet create --address-prefix $SUBNET_NAME_CYCLECLOUD_CIDR --name $SUBNET_NAME_CYCLECLOUD \ + --resource-group $RG_VNET --vnet-name $VNET_NAME + +az network vnet subnet create --address-prefix $SUBNET_NAME_USER_CIDR --name $SUBNET_NAME_USER \ + --resource-group $RG_VNET --vnet-name $VNET_NAME + +az network vnet subnet create --address-prefix $SUBNET_NAME_COMPUTE_CIDR --name $SUBNET_NAME_COMPUTE \ + --resource-group $RG_VNET --vnet-name $VNET_NAME + +az network vnet subnet create --address-prefix $SUBNET_NAME_ANF_CIDR --name $SUBNET_NAME_ANF \ + --resource-group $RG_VNET --vnet-name $VNET_NAME --delegations "Microsoft.NetApp/volumes" + +az network vnet subnet create --address-prefix $SUBNET_NAME_VISUALIZATION_CIDR --name $SUBNET_NAME_VISUALIZATION \ + --resource-group $RG_VNET --vnet-name $VNET_NAME +``` + +##2. Create CycleCloud from Portal + +CycleCloud can be installed via Azure Marketplace, see [Quickstart - Install via Marketplace - Azure CycleCloud | Microsoft Docs](https://learn.microsoft.com/en-us/azure/cyclecloud/qs-install-marketplace?view=cyclecloud-8): +1. Choose your subscription from the Subscription dropdown +2. Select or create a new Resource Group that your CycleCloud instance will run in. +3. Name your CycleCloud instance using Virtual Machine name +4. Select the Region +5. Create the Username that you will use to log into the instance +6. Add or create your SSH public key +7. If you are planning on using [Managed Identities](https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview) (recommended), Select the Management tab and enable System assigned managed identity. +8. Click on the Review button and then the Create button + +##3. Assign Contributor role on the subscription to managed-identity +From Azure Portal, go to Subscriptions and assign Contributor role to the CycleCloud VM managed Identity (Subscription > Access control (IAM) > Add > Add role assignment). +>You need to have **Owner** permission on the Subscription + +##4. Configure DNS name label for public IP (optional) +You can define a DNS Name for the CycleCloud VM public IP, it can facilitate the access to the VM. +Go to CycleCloud VM and click in DNS Name: +![DNS-Label1](images/DNS-Label1.jpg) + +Add a DNS Name and save: +![DNS-Label2](images/DNS-Label2.jpg) + +##4. Create storage account +Cyclecloud requires a storage account for [locker access](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/storage-blobs?view=cyclecloud-8). +Create storage account from the Azure Portal: +- Select the Subscription, Resource Group, Region you defined previously. +- Define a **Name**, set **Performance** as Standard, **Redundancy** as LRS. +- Keep all other settings with default values and create it. + +##6. Setup CycleCloud portal +- Open the browser and access the CycleCloud Portal using the DNS Label created above or the public IP of the CycleCloud VM. +- Follow the steps described [here](https://learn.microsoft.com/en-us/azure/cyclecloud/qs-install-marketplace?view=cyclecloud-8#log-into-the-cyclecloud-application-server) + +##7. Import Cluster Template \ No newline at end of file From fcbf885e8b708438faaf537a6dbb6619c65d30a2 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 21 Oct 2022 18:56:27 -0300 Subject: [PATCH 08/75] update --- tutorials/cyclecloud/install-cyclecloud.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tutorials/cyclecloud/install-cyclecloud.md b/tutorials/cyclecloud/install-cyclecloud.md index 6d54eb107..05701cfb9 100644 --- a/tutorials/cyclecloud/install-cyclecloud.md +++ b/tutorials/cyclecloud/install-cyclecloud.md @@ -4,6 +4,7 @@ Before you start, define which **Subscription**, **Resource Group**, **Region** ##1. Create VNET Here we are creating a new Virtual Network for the CycleCloud environment. For this basic setup, we are using only CycleCloud and Compute subnets. But use can create all subnets in the scripts for future advanced scenarios. +Change the variables values if you want to or use the default ones. ``` ################################################## # Variables @@ -11,9 +12,6 @@ Here we are creating a new Virtual Network for the CycleCloud environment. For t Location="southcentralus" RG_VNET="rg-wrf-poc-$Location" -#Location="eastus" -#RG_VNET="rg-hpc-eastus-test" - # VNET HPC VNET_NAME="vnet-wrf-poc-$Location" SUBNET_NAME_CYCLECLOUD="cyclecloud-subnet" From df856db65ac33e1be882fdec0f7c3a814c54a67c Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 21 Oct 2022 19:00:26 -0300 Subject: [PATCH 09/75] fix --- tutorials/cyclecloud/install-cyclecloud.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tutorials/cyclecloud/install-cyclecloud.md b/tutorials/cyclecloud/install-cyclecloud.md index 05701cfb9..2d0fa8c3c 100644 --- a/tutorials/cyclecloud/install-cyclecloud.md +++ b/tutorials/cyclecloud/install-cyclecloud.md @@ -3,8 +3,8 @@ Before you start, define which **Subscription**, **Resource Group**, **Region** and **Virtual Network** you will use to deploy your CycleCloud environment. ##1. Create VNET -Here we are creating a new Virtual Network for the CycleCloud environment. For this basic setup, we are using only CycleCloud and Compute subnets. But use can create all subnets in the scripts for future advanced scenarios. -Change the variables values if you want to or use the default ones. +Here we are creating a new Virtual Network for the CycleCloud environment. For this basic setup, we are using only CycleCloud and Compute subnets. But, you can create all subnets in this script, for future advanced scenarios. +You can use the default variable values below or change it, if you want to. ``` ################################################## # Variables From b9078676a33a716610f357bb8d230b53cdfbb483 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 21 Oct 2022 19:11:10 -0300 Subject: [PATCH 10/75] initialize CycleCloud CLI --- tutorials/cyclecloud/install-cyclecloud.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tutorials/cyclecloud/install-cyclecloud.md b/tutorials/cyclecloud/install-cyclecloud.md index 2d0fa8c3c..e32e99198 100644 --- a/tutorials/cyclecloud/install-cyclecloud.md +++ b/tutorials/cyclecloud/install-cyclecloud.md @@ -88,4 +88,16 @@ Create storage account from the Azure Portal: - Open the browser and access the CycleCloud Portal using the DNS Label created above or the public IP of the CycleCloud VM. - Follow the steps described [here](https://learn.microsoft.com/en-us/azure/cyclecloud/qs-install-marketplace?view=cyclecloud-8#log-into-the-cyclecloud-application-server) -##7. Import Cluster Template \ No newline at end of file +##7. Install CycleCloud CLI +- Follow these steps to [Install CycleCloud CLI](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/install-cyclecloud-cli?view=cyclecloud-8) +``` +wget wget https:///static/tools/cyclecloud-cli.zip --no-check-certificate +unzip cyclecloud-cli.zip +cd cyclecloud-cli-installer +./install.sh +``` +- Initialize CycleCloud CLI + 1. Initialize the server with cyclecloud initialize. You will be prompted for the CycleServer URL, which is the FQDN of your application server. Enter it in the format https://FQDN. + 2. The installed Azure CycleCloud server uses either a Let's Encrypt SSL certificate, or a self-signed certificate. Type yes when asked to allow the certificate. + 3. Log in with the same username and password used for the CycleCloud web interface. + 4. Test that the CycleCloud CLI is working with cyclecloud show_cluster. \ No newline at end of file From 36882eda9b7e3294855bf456dfa32f4528064c04 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 21 Oct 2022 19:14:32 -0300 Subject: [PATCH 11/75] install cyclecloud --- apps/wrf/readme.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 1748701ec..4eb1399b0 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -8,11 +8,9 @@ Cluster is built with the desired configuration for networking, storage, compute ## Install Azure CycleCloud -CycleCloud can be installed via Azure Marketplace, see this link: -[Quickstart - Install via Marketplace - Azure CycleCloud | Microsoft Docs](https://learn.microsoft.com/en-us/azure/cyclecloud/qs-install-marketplace?view=cyclecloud-8) - -After installation, to create clusters, CycleCloud will need to use a [“Managed Identity”](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/managed-identities?view=cyclecloud-8) or “Service Principal” (either of which may need access granting via IT), to create/destroy resources. Managed Identities is the route preferred if CycleCloud will only be creating clusters in a single Azure subscription. - +Follow the steps to [Install and Setup CycleCloud](../../tutorials/cyclecloud/install-cyclecloud.md) + + ## Create NFS Storage cluster - It can be possible to include an external NFS share at this point (in the example, I have shared from an NFS cluster using on CycleCloud template) From b2062d58f11896c1df7877db405e1ecf91cd1de4 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 21 Oct 2022 19:17:49 -0300 Subject: [PATCH 12/75] remove pre-reqs --- apps/wrf/readme.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 4eb1399b0..3036d81cd 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -1,16 +1,10 @@ # Install and run WRF v4 and WPS v4 - Setup guide -## Prerequisites - -TODO: -Cluster is built with the desired configuration for networking, storage, compute etc. You can see the tutorial or examples folder in this repo for how to set this up. (See [here] for details). - - ## Install Azure CycleCloud Follow the steps to [Install and Setup CycleCloud](../../tutorials/cyclecloud/install-cyclecloud.md) - + ## Create NFS Storage cluster - It can be possible to include an external NFS share at this point (in the example, I have shared from an NFS cluster using on CycleCloud template) From 4fbf83534dd58b444c082c8c6c204570dcfcb210 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 21 Oct 2022 19:23:01 -0300 Subject: [PATCH 13/75] update pre-reqs --- apps/wrf/readme.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 3036d81cd..32191627c 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -1,10 +1,15 @@ # Install and run WRF v4 and WPS v4 - Setup guide +## Prerequisites + +- As this procedure uses HBv2 VMs to run WRFv4 simulations, you may need to request quota increase for this type of SKU in the subscription and region you will deploy the environment. + + ## Install Azure CycleCloud Follow the steps to [Install and Setup CycleCloud](../../tutorials/cyclecloud/install-cyclecloud.md) - + ## Create NFS Storage cluster - It can be possible to include an external NFS share at this point (in the example, I have shared from an NFS cluster using on CycleCloud template) From ff16a4f6835675f085709581f7f568076f3225c6 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 21 Oct 2022 19:26:51 -0300 Subject: [PATCH 14/75] formatt --- tutorials/cyclecloud/install-cyclecloud.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tutorials/cyclecloud/install-cyclecloud.md b/tutorials/cyclecloud/install-cyclecloud.md index e32e99198..f0658e221 100644 --- a/tutorials/cyclecloud/install-cyclecloud.md +++ b/tutorials/cyclecloud/install-cyclecloud.md @@ -2,7 +2,7 @@ Before you start, define which **Subscription**, **Resource Group**, **Region** and **Virtual Network** you will use to deploy your CycleCloud environment. -##1. Create VNET +## 1. Create VNET Here we are creating a new Virtual Network for the CycleCloud environment. For this basic setup, we are using only CycleCloud and Compute subnets. But, you can create all subnets in this script, for future advanced scenarios. You can use the default variable values below or change it, if you want to. ``` @@ -53,7 +53,7 @@ az network vnet subnet create --address-prefix $SUBNET_NAME_VISUALIZATION_CIDR - --resource-group $RG_VNET --vnet-name $VNET_NAME ``` -##2. Create CycleCloud from Portal +## 2. Create CycleCloud from Azure Portal CycleCloud can be installed via Azure Marketplace, see [Quickstart - Install via Marketplace - Azure CycleCloud | Microsoft Docs](https://learn.microsoft.com/en-us/azure/cyclecloud/qs-install-marketplace?view=cyclecloud-8): 1. Choose your subscription from the Subscription dropdown @@ -65,11 +65,11 @@ CycleCloud can be installed via Azure Marketplace, see [Quickstart - Install via 7. If you are planning on using [Managed Identities](https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview) (recommended), Select the Management tab and enable System assigned managed identity. 8. Click on the Review button and then the Create button -##3. Assign Contributor role on the subscription to managed-identity +## 3. Assign Contributor role on the subscription to managed-identity From Azure Portal, go to Subscriptions and assign Contributor role to the CycleCloud VM managed Identity (Subscription > Access control (IAM) > Add > Add role assignment). >You need to have **Owner** permission on the Subscription -##4. Configure DNS name label for public IP (optional) +## 4. Configure DNS name label for public IP (optional) You can define a DNS Name for the CycleCloud VM public IP, it can facilitate the access to the VM. Go to CycleCloud VM and click in DNS Name: ![DNS-Label1](images/DNS-Label1.jpg) @@ -77,18 +77,18 @@ Go to CycleCloud VM and click in DNS Name: Add a DNS Name and save: ![DNS-Label2](images/DNS-Label2.jpg) -##4. Create storage account +## 5. Create a storage account Cyclecloud requires a storage account for [locker access](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/storage-blobs?view=cyclecloud-8). Create storage account from the Azure Portal: - Select the Subscription, Resource Group, Region you defined previously. - Define a **Name**, set **Performance** as Standard, **Redundancy** as LRS. - Keep all other settings with default values and create it. -##6. Setup CycleCloud portal +## 6. Setup CycleCloud Portal - Open the browser and access the CycleCloud Portal using the DNS Label created above or the public IP of the CycleCloud VM. - Follow the steps described [here](https://learn.microsoft.com/en-us/azure/cyclecloud/qs-install-marketplace?view=cyclecloud-8#log-into-the-cyclecloud-application-server) -##7. Install CycleCloud CLI +## 7. Install CycleCloud CLI - Follow these steps to [Install CycleCloud CLI](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/install-cyclecloud-cli?view=cyclecloud-8) ``` wget wget https:///static/tools/cyclecloud-cli.zip --no-check-certificate From 10f70f988a694f0fcecde85442def4d846e58f89 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Mon, 24 Oct 2022 13:58:42 -0300 Subject: [PATCH 15/75] updates and download_gfs_files.py --- apps/wrf/download_gfs_files.py | 161 +++++++++++++++++++++ apps/wrf/images/NFS-Cluster3.png | Bin 77622 -> 77622 bytes apps/wrf/readme.md | 44 +++--- tutorials/cyclecloud/install-cyclecloud.md | 4 +- 4 files changed, 190 insertions(+), 19 deletions(-) create mode 100644 apps/wrf/download_gfs_files.py diff --git a/apps/wrf/download_gfs_files.py b/apps/wrf/download_gfs_files.py new file mode 100644 index 000000000..3eacddda0 --- /dev/null +++ b/apps/wrf/download_gfs_files.py @@ -0,0 +1,161 @@ +#!/usr/bin/env python +################################################################# +# Python Script to retrieve 93 online Data files of 'ds084.1', +# total 20.11G. This script uses 'requests' to download data. +# +# Highlight this script by Select All, Copy and Paste it into a file; +# make the file executable and run it on command line. +# +# You need pass in your password as a parameter to execute +# this script; or you can set an environment variable RDAPSWD +# if your Operating System supports it. +# +# Contact rdahelp@ucar.edu (RDA help desk) for further assistance. +################################################################# + + +import sys, os +import requests + +def check_file_status(filepath, filesize): + sys.stdout.write('\r') + sys.stdout.flush() + size = int(os.stat(filepath).st_size) + percent_complete = (size/filesize)*100 + sys.stdout.write('%.3f %s' % (percent_complete, '% Completed')) + sys.stdout.flush() + +# Try to get password +if len(sys.argv) < 2 and not 'RDAPSWD' in os.environ: + try: + import getpass + input = getpass.getpass + except: + try: + input = raw_input + except: + pass + pswd = input('Password: ') +else: + try: + pswd = sys.argv[1] + except: + pswd = os.environ['RDAPSWD'] + +url = 'https://rda.ucar.edu/cgi-bin/login' +values = {'email' : 'enter-your-email-here@email.com', 'passwd' : pswd, 'action' : 'login'} +# Authenticate +ret = requests.post(url,data=values) +if ret.status_code != 200: + print('Bad Authentication') + print(ret.text) + exit(1) +dspath = 'https://rda.ucar.edu/data/ds084.1/' +filelist = [ +'2018/20180617/gfs.0p25.2018061700.f000.grib2', +'2018/20180617/gfs.0p25.2018061700.f003.grib2', +'2018/20180617/gfs.0p25.2018061700.f006.grib2', +'2018/20180617/gfs.0p25.2018061700.f009.grib2', +'2018/20180617/gfs.0p25.2018061700.f012.grib2', +'2018/20180617/gfs.0p25.2018061700.f015.grib2', +'2018/20180617/gfs.0p25.2018061700.f018.grib2', +'2018/20180617/gfs.0p25.2018061700.f021.grib2', +'2018/20180617/gfs.0p25.2018061700.f024.grib2', +'2018/20180617/gfs.0p25.2018061700.f027.grib2', +'2018/20180617/gfs.0p25.2018061700.f030.grib2', +'2018/20180617/gfs.0p25.2018061700.f033.grib2', +'2018/20180617/gfs.0p25.2018061700.f036.grib2', +'2018/20180617/gfs.0p25.2018061700.f039.grib2', +'2018/20180617/gfs.0p25.2018061700.f042.grib2', +'2018/20180617/gfs.0p25.2018061700.f045.grib2', +'2018/20180617/gfs.0p25.2018061700.f048.grib2', +'2018/20180617/gfs.0p25.2018061700.f051.grib2', +'2018/20180617/gfs.0p25.2018061700.f054.grib2', +'2018/20180617/gfs.0p25.2018061700.f057.grib2', +'2018/20180617/gfs.0p25.2018061700.f060.grib2', +'2018/20180617/gfs.0p25.2018061700.f063.grib2', +'2018/20180617/gfs.0p25.2018061700.f066.grib2', +'2018/20180617/gfs.0p25.2018061700.f069.grib2', +'2018/20180617/gfs.0p25.2018061700.f072.grib2', +'2018/20180617/gfs.0p25.2018061700.f075.grib2', +'2018/20180617/gfs.0p25.2018061700.f078.grib2', +'2018/20180617/gfs.0p25.2018061700.f081.grib2', +'2018/20180617/gfs.0p25.2018061700.f084.grib2', +'2018/20180617/gfs.0p25.2018061700.f087.grib2', +'2018/20180617/gfs.0p25.2018061700.f090.grib2', +'2018/20180617/gfs.0p25.2018061700.f093.grib2', +'2018/20180617/gfs.0p25.2018061700.f096.grib2', +'2018/20180617/gfs.0p25.2018061700.f099.grib2', +'2018/20180617/gfs.0p25.2018061700.f102.grib2', +'2018/20180617/gfs.0p25.2018061700.f105.grib2', +'2018/20180617/gfs.0p25.2018061700.f108.grib2', +'2018/20180617/gfs.0p25.2018061700.f111.grib2', +'2018/20180617/gfs.0p25.2018061700.f114.grib2', +'2018/20180617/gfs.0p25.2018061700.f117.grib2', +'2018/20180617/gfs.0p25.2018061700.f120.grib2', +'2018/20180617/gfs.0p25.2018061700.f123.grib2', +'2018/20180617/gfs.0p25.2018061700.f126.grib2', +'2018/20180617/gfs.0p25.2018061700.f129.grib2', +'2018/20180617/gfs.0p25.2018061700.f132.grib2', +'2018/20180617/gfs.0p25.2018061700.f135.grib2', +'2018/20180617/gfs.0p25.2018061700.f138.grib2', +'2018/20180617/gfs.0p25.2018061700.f141.grib2', +'2018/20180617/gfs.0p25.2018061700.f144.grib2', +'2018/20180617/gfs.0p25.2018061700.f147.grib2', +'2018/20180617/gfs.0p25.2018061700.f150.grib2', +'2018/20180617/gfs.0p25.2018061700.f153.grib2', +'2018/20180617/gfs.0p25.2018061700.f156.grib2', +'2018/20180617/gfs.0p25.2018061700.f159.grib2', +'2018/20180617/gfs.0p25.2018061700.f162.grib2', +'2018/20180617/gfs.0p25.2018061700.f165.grib2', +'2018/20180617/gfs.0p25.2018061700.f168.grib2', +'2018/20180617/gfs.0p25.2018061700.f171.grib2', +'2018/20180617/gfs.0p25.2018061700.f174.grib2', +'2018/20180617/gfs.0p25.2018061700.f177.grib2', +'2018/20180617/gfs.0p25.2018061700.f180.grib2', +'2018/20180617/gfs.0p25.2018061700.f183.grib2', +'2018/20180617/gfs.0p25.2018061700.f186.grib2', +'2018/20180617/gfs.0p25.2018061700.f189.grib2', +'2018/20180617/gfs.0p25.2018061700.f192.grib2', +'2018/20180617/gfs.0p25.2018061700.f195.grib2', +'2018/20180617/gfs.0p25.2018061700.f198.grib2', +'2018/20180617/gfs.0p25.2018061700.f201.grib2', +'2018/20180617/gfs.0p25.2018061700.f204.grib2', +'2018/20180617/gfs.0p25.2018061700.f207.grib2', +'2018/20180617/gfs.0p25.2018061700.f210.grib2', +'2018/20180617/gfs.0p25.2018061700.f213.grib2', +'2018/20180617/gfs.0p25.2018061700.f216.grib2', +'2018/20180617/gfs.0p25.2018061700.f219.grib2', +'2018/20180617/gfs.0p25.2018061700.f222.grib2', +'2018/20180617/gfs.0p25.2018061700.f225.grib2', +'2018/20180617/gfs.0p25.2018061700.f228.grib2', +'2018/20180617/gfs.0p25.2018061700.f231.grib2', +'2018/20180617/gfs.0p25.2018061700.f234.grib2', +'2018/20180617/gfs.0p25.2018061700.f237.grib2', +'2018/20180617/gfs.0p25.2018061700.f240.grib2', +'2018/20180617/gfs.0p25.2018061700.f252.grib2', +'2018/20180617/gfs.0p25.2018061700.f264.grib2', +'2018/20180617/gfs.0p25.2018061700.f276.grib2', +'2018/20180617/gfs.0p25.2018061700.f288.grib2', +'2018/20180617/gfs.0p25.2018061700.f300.grib2', +'2018/20180617/gfs.0p25.2018061700.f312.grib2', +'2018/20180617/gfs.0p25.2018061700.f324.grib2', +'2018/20180617/gfs.0p25.2018061700.f336.grib2', +'2018/20180617/gfs.0p25.2018061700.f348.grib2', +'2018/20180617/gfs.0p25.2018061700.f360.grib2', +'2018/20180617/gfs.0p25.2018061700.f372.grib2', +'2018/20180617/gfs.0p25.2018061700.f384.grib2'] +for file in filelist: + filename=dspath+file + file_base = os.path.basename(file) + print('Downloading',file_base) + req = requests.get(filename, cookies = ret.cookies, allow_redirects=True, stream=True) + filesize = int(req.headers['Content-length']) + with open(file_base, 'wb') as outfile: + chunk_size=1048576 + for chunk in req.iter_content(chunk_size=chunk_size): + outfile.write(chunk) + if chunk_size < filesize: + check_file_status(file_base, filesize) + check_file_status(file_base, filesize) + print() diff --git a/apps/wrf/images/NFS-Cluster3.png b/apps/wrf/images/NFS-Cluster3.png index e0a898b2b9647f2b79da68b0e376c8333efc1dc6..9363670964ba3d2f6c0d43f051f8915c2d78f1ae 100644 GIT binary patch delta 46023 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 W9|yg!8k%3J{M{`9@kdov%)bFl1HxAT delta 46023 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%0D%oVD3Ty!h9RPdsB(q73js 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 BK)?V1 diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 32191627c..9935e094f 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -20,9 +20,8 @@ Follow the steps to [Install and Setup CycleCloud](../../tutorials/cyclecloud/in Changes: - Change OS to use CentOS 7 versions - Use +300GB storage size (space to download WRF data) -- Change cloud-init -- Confirm the IP address of your NFS storage - +- Change cloud-init as following: +- Confirm the IP address of your NFS storage and change it below accordingly: ``` #!/bin/bash @@ -42,7 +41,7 @@ chmod 755 /mnt/exportfs.sh at now + 2 minute -f /mnt/exportfs.sh ``` -Connect to NFS storage cluster and check mounts: +Connect to NFS storage cluster and check the mounts are correct: ``` # check mount sudo exportfs -s @@ -53,7 +52,6 @@ Summary of steps: - Start NFS storage cluster on CycleCloud - Import WRF cluster template - Start WRF cluster using HBv2 VM -- Prepare required folders - Install WRF/WPS 4 software (via “azurehpc” scripts) - Download data for WRF 4 - Edit data locations in WRF config files @@ -64,9 +62,10 @@ Summary of steps: ### Import custom CycleCloud template for WRF Follow the procedures [here](https://docs.microsoft.com/en-us/azure/cyclecloud/tutorials/modify-cluster-template?view=cyclecloud-8#import-the-new-cluster-template) to upload the Cycle Cloud custom template created for WRF. - Use the template: [opbswrf-template.txt](opbswrf-template.txt) - +``` +cyclecloud import_template opbswrf -f opbswrf-template.txt --force +``` After you import the template, you will see the WRF template in CycleCloud Portal: ![Import-Template1](images/Import-Template1.png) @@ -74,9 +73,9 @@ After you import the template, you will see the WRF template in CycleCloud Porta ### Create new WRF cluster Choose the WRF Cluster name: ![Create-WRF-Cluster1](images/Create-WRF-Cluster1.png) -Choose the SKUs you want use for testing and subnet: +Choose the SKUs you want use for testing and the subnet for the compute VMs: ![Create-WRF-Cluster2](images/Create-WRF-Cluster2a.png) -Check Additional NFS Mount and change to the correct NFS IP address. Don’t need to change NFS Mount Point and NFS Export Path +Check **Additional NFS Mount** options and change to the correct NFS IP address. Don’t need to change NFS Mount Point and NFS Export Path ![Create-WRF-Cluster3](images/Create-WRF-Cluster3.png) Keep the default value for the other parameters, save it and start the cluster. @@ -91,8 +90,15 @@ Click Add. Ssh to the Execute Node (HBv2 VM) and run the following commands: -**Important**: need to be root user to run all commands below. - +**Important 1**: You must have the /apps and /data volumes correctly mounted. It is required for WRF setup scripts: +``` +df -h +[azureadmin@ip-0A040406 ~]$ df -h +Filesystem Size Used Avail Use% Mounted on +10.4.4.5:/mnt/exports/data 300G 21G 280G 7% /data +10.4.4.5:/mnt/exports/apps 300G 21G 280G 7% /apps +``` +**Important 2**: You need to be root user to run all commands below. ``` # need to be root user for building everything sudo su - @@ -123,9 +129,6 @@ vi env-variables ``` And copy the content below to this file and save it: ``` -# Keep as root -#sudo su - - SKU_TYPE=hbv2 #INPUTDIR=/data/wrfdata INPUTDIR=/apps/${SKU_TYPE}/wrf-openmpi/WRF-4.1.5/run @@ -156,6 +159,8 @@ fi ``` Run the command: ``` +# Keep as root +#sudo su - source /data/azurehpc/apps/wrf/env-variables ``` @@ -219,8 +224,9 @@ mkdir /data/wrfdata/gfs_files cd /data/wrfdata/gfs_files python download_gfs_files.py -chown -R azureadmin:azureadmin /data -chown -R azureadmin:azureadmin /apps +# grant permission +chmod -R 777 /data +chmod -R 777 /apps ``` ### Generate WRF4 Input Files @@ -301,8 +307,10 @@ ls -l /apps/hbv2/wrf-openmpi/WRF-4.1.5/run/*_d0* #### Change Permissions on Files ``` -chown -R azureadmin:azureadmin /data -chown -R azureadmin:azureadmin /apps +#chown -R azureadmin:azureadmin /data +#chown -R azureadmin:azureadmin /apps +chmod -R 777 /data +chmod -R 777 /apps ``` ## Running and Testing diff --git a/tutorials/cyclecloud/install-cyclecloud.md b/tutorials/cyclecloud/install-cyclecloud.md index f0658e221..1acf680b8 100644 --- a/tutorials/cyclecloud/install-cyclecloud.md +++ b/tutorials/cyclecloud/install-cyclecloud.md @@ -77,6 +77,8 @@ Go to CycleCloud VM and click in DNS Name: Add a DNS Name and save: ![DNS-Label2](images/DNS-Label2.jpg) +In case you want to setup CycleCloud in environments with limited internet access, check this article: [Operating in a locked down network](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/running-in-locked-down-network?view=cyclecloud-8). + ## 5. Create a storage account Cyclecloud requires a storage account for [locker access](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/storage-blobs?view=cyclecloud-8). Create storage account from the Azure Portal: @@ -89,7 +91,7 @@ Create storage account from the Azure Portal: - Follow the steps described [here](https://learn.microsoft.com/en-us/azure/cyclecloud/qs-install-marketplace?view=cyclecloud-8#log-into-the-cyclecloud-application-server) ## 7. Install CycleCloud CLI -- Follow these steps to [Install CycleCloud CLI](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/install-cyclecloud-cli?view=cyclecloud-8) +- Follow these steps to [Install CycleCloud CLI](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/install-cyclecloud-cli?view=cyclecloud-8): ``` wget wget https:///static/tools/cyclecloud-cli.zip --no-check-certificate unzip cyclecloud-cli.zip From 6851aad9f742bcc540a781e3158bb438f98ce4f0 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Mon, 24 Oct 2022 17:09:48 -0300 Subject: [PATCH 16/75] updates --- apps/wrf/images/Create-WRF-Cluster3.png | Bin 51005 -> 51005 bytes apps/wrf/readme.md | 51 ++++++++++++++---------- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/apps/wrf/images/Create-WRF-Cluster3.png b/apps/wrf/images/Create-WRF-Cluster3.png index ce2792f5b05c581bcf06434c5fc7606b19af886e..ffde26db61d2ebfd59a4a6c2f80f8042b2ec337e 100644 GIT binary patch delta 43980 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

    ibOjhY2 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 P2hSw&#?@VzpacH|7fKBt delta 43696 zcmbq)Wm_EG5^ZoF+1A~Iw3AGx{i_(|SZv(*+HE9YHis*#VJ>IR<{)=2cVU0}$hYi= zl9JYYJA|aKZ}8#sgOts|_0wQ5x0GE){j{Eib?Sa&-#c!JgfQmdH$PD2v-=L~BTt>h z0v>N&;%`v2U-;D-@leAg^Iw1dn4#hm{O1_>XY71dGVI?I|BQ(=s6+m_=-+GO*)(zoxkwLpAJp-ZN^e{{*IOM0yiBK8`Ld3G3PY-}NPr_@fM}R!9`YX%$CX zwn%Mop<6EDdH&e-@Qk0H-x%)fgt@-Kj1zsQcYSm1;^pOaxi{k6KlCEnTln9VKN>c3 zKuV{xta7q=WJkxv4h=zVax@%@093eKEN~cIr>rXzw;ZCa~?wJl*s%*s5V`GO? zlBt_gaPQcTT&GbnD8wF(rjY@QHK2BLNfo!+8H*yGaKHei=M!?75*l*xXF0P)${6$a zegA!3cMC2nPz?qsG~02K4uvbWk0Zm~4S>47Il5+j9>ffY%(uV>$)6jl=$-AORhlUs z36lUjmGRE|u*>iKDW(cX;)AQ+N6zE{h}wv~SWNYC;YnL8w4DAIutq*-bRsW{XiYr7 z-xMk+^gh99Hk^*>ti-PT2v$FVyTbqXW2Ll{V{)*X6S-MpCU{ zl)QQO>sAz6u)(pK-hN9L@G{Pn5iB?f)KL6>+FzKR4x8nYWTzq6*`XTKdtasvNkD^O z(vKb-iZc^*l5!Meph_}M6ihze*Zo}bz}MqGhC;!bvV_<2#n!1fSW2{`S>>zc70^|5 zNL~y}R(tr3*kclM2x6IC7BV^cUZi)qj&3%Lc2Ve(WrQ@VMDw)dyi>5wPnmk47A?XE z!;T6yeX1kPVYDP)%Z}@L3h8$EB)4z#OM(M#c!(oh8IAGUT>45+!#H|gUl)a;YZkuO z#kZZW?(nO;KfaDGI5(|?WJSiz6NtyNrmcMMfgbYEGGmZ|&{SJ5mr(7ezi@ziGj^WmAkS(%4M}xV^wk9?$=|wVYA_e^pLb8wSqSDS=p0 zw*_?v<@KDApEN6bluiP(P9ehX7?o}J%*((Fo{|5NyE89^^pWD@TIR~eWM-|v(=?0M zas9+8E!wCfXe~9}xF?LocjTqq`PkgVq@VliCIdvbXXp+>`5okds~ca1l|<`mj_lMr*Xc^$+z zHUF>_qfB<~KkHTE5I?zuTtjWL?_IHwT1n_R+T+#2`Bpu?IBze_a0%4H$9DGTDqiOb`LiY3KTXam2iGD-uSrDn$ONgEP)U~sh*QvW?Yh!$C>$@cR>ncy@z)z#$ zVPW{U=T8Up8PZt_+&9+`6P(})>Pp`SX`g-`2OQ6Bl?}D^2ju84!cm0F52)&K(we^Vru~^$=b!08MGMvlhfSx`3UC3KPBrdT4 z@{O{jLhhiys(8gl0oaY{=DT&IMD6!XsyU<)QY^jtC)v<6rZ|nE&l8pJ;y-7K=*p=tJU9_q@=&?xx}sDjFVA!J5gce%JRWoZVyo8=5~upX?yIZO;gz zEkX)kzQ^`-jyOY1(Inb2^0Iy4@{CCWdkJViTynnkqOdBaon=56&IT|zeqZw;BL3U} zDzuF{eouzaW#z54#{UItl~g^Y|0hPghJ{m+sw&RnE9nZ2-`9W2Ru5WBrbw+l=T}uh zs}mzmUDnl-1@&JWJ_IXLhxFhE&3s2l?+W^3(mTJKetT8<66oCwx8(}MT#c;1pkb~k ze421JJ;O&mqr2)()VZ`6DF0o$x(6Ujyqhr3>Ak@v*xDuvc$qJbB$$_4p z-wOF|ivJdgSrNVAYoKM;VIz=s#V8Wd^SgUy@!Gq3tB%9ue{$q`y0()iX{th&it?!p z#qYegtVyIHNP{}O%=mY_niG4cS<2dQ<8trkA(YD8_!(m_7)iS~HK|!%8#zGynrcxs z@7u^7V_^(q)(}5F#qL$uT<>FyT|)`vZN#&C(v$T;(ur9k%D#&c(df>6;*@JpwO_3K z*v`ycTR)XPd7m3cwxmFd8xOpIJwBKB5qhro7F_=@g?SQ6Hx8443it2pN6LIR_$tv` z!R5PK*xyD-?70CbR&xCB9eII7&>W}NGtKYQzdOzm6B)z;(T$>%vW&UCmpzTA+epUZ zW;IX~PAX$Yv*Uf6Y*Bt^9;^TDl)}}ZurLV;oRyvBC-k{LGcVR?-<{TLYYTNUN&8Bb z3K_qHn?9|vI)av=48=xW3s!Bx;`zPX-3X7zndzMqI$Wa86hP%~Nt|^;Bc(w+6gP z*kXMAGhCv6a8_-U&yMsJJrWq)td;pv}4^^m2c2>#3`o&_;czJ%e zqTyQR&cY6>6>O%v_ZHbLTtNmE7{k*dMgh;>=&EjO+=?#Sm%d&bS2NDre;mv|o93W7?&n)*+35Y-C+vaI;WHXYCPil{n%V3C!|5Gy68v8W zaezsulOfM9XwHH<=KSODyJs2Nb3udKRSS`a`v@W;lD_$K?%s&D?qdG!QCd3NTe9qz zOI!oWTnT|0^Sm4v&jQs#${P;Wh}i);6Hlbk!%H=N+Zj}6fu(-jM3WN24^>}OPT@DC zt&k&p<)vXy!;=o{1zM>;WkP*aydoJhSot*4pB{~BgK$9RI$!D+65?-AtSL>qy08bHNH^tPsQ3ko2J2FDV z8PRn2QiwCrrQud`)*qY4*VkS$z?0nia>E5bO{@M*%S4#pmD7#7;{Tk$z*>H27>cak z@%Al^+x}?Y)+ttNOPf_L#AT?nb1jEEGH`u^X%A)6Hh0zI29V*LC6ssu+Kq|FA$ySV@Cme>5_&wwcayr^CZ{=UdW z9Yn!+y)Bxo&iUQrSg~*IiX9m5w4-E(nhb?Hk*Uz&h}{2SW^L8vWOu1>J)s-s#}xDa z(gykTQ%$roI8L(O{qhdmr71qg7GrpM?5`_87-o)grI&Mv*1iI#Ub_dj9S+Dky86Yq zqjZS#!n^AatZe_svbIk8XKGv{W!;hLWwY?{U)Lb;`gp9zayr*~!U@rW0vE@FqkBa< zOX};_8CX%$K`NhbT0ROGifWQR%q}=klVTJsA5#%tfyq>E&>#YfQj-TVoVkz~_$v*P zQjIX$U18+g){;;0vNRU`UKi>=>SmdaOaUiCAV&)y$^J#SL!uEBKNzc=KbN-}sVRWm zC^po#a?pT9=ZgO)ZOn0sYPABoUe`s53YPj^n55WY;})WDc5`!+5Yru*LN`hW_bXOJ zq$s!E5nxDj{o!&vB)A*mt;tR81&hu3Yno<@zExsU@9Fc&(G^y#%-R`4mC|)|g)K}o zU=B+T#zJW)Pdo&b0+>hdYS7IY=2-h6H%RZTDGRXT#W_BhIjBn(aU!Pkt4^zs2eeae zX{}%>mNLRpb7$AVz||Vz!LkoI5?WeG>*yqaGwF{MJbKxaQ(3i1s{=^~{KCjzPEWCh z6)DE7k%hN#a1xP!C<9%J@5qowIspzwZBTbO1?;2AF$ zbPqODEjB0Z9}`RIBbHUp@cX7e64EFVcIVD@7t7EEqP${)Y+fvN#jU)p^j!aW64(Bc z+~n(r)8Y$YaNYl6SFXDFb#RePF?9ZFoPvw-Rh(oLb<{hm$(~5F^RwMsL4Zu8mxy%1 zd!2ezYdl4PY$HZmGUTQM+RiHpi*ZTniH_qvr9ns~N@Eu&RS%}N3xnMXdtRJKs2)YH z{!2_*w`lFkteu(rBe=oKpyV4)x1W~tjMgfOH};hcbs9^4!k>ZPn~Wa!!e5$Zkn1H? z|4fS)*GuHDLJ~Pb)ENV3P5|iRA?KwQTq1_pCq5QsTc*-l0=)`izFHV5GZrjICu|94 z$!hAL0dt9;V`8${S98Lbqrlle!SWK;1IvC@Y~}A{JjI zWtLl4RR((1+|c1C(>5%l78qESH<{)*h{v!)=6A6K&E@*{IKkg9&J>*AQWmS>1bushv!=}M4!*aSc^1Qq|WJ=k0l+ z4jo@uVu%`|_J|KZIX^u(0NMAOxqrHwDO5PN(m5(h*mwHNI*(tmWMN zHT7^Mg9W2UM}H`PLv-ubBqSO&P)aO61!{<~f288oS+f0Hq6iu>qx(QE`O7Dk_D(W}T_3BSDWAWz zs=f|=`8(O2ZVlE1d>UtN>C?+2V&|B zYSYZbPxIk|q4p$*DxwsLLeKw%c%dB?!#V<KxtGJiMWm?1sHtgXvs+wVz#m;{~5qtz$%A z0f6%ONuy0wU9VhoeZ(tlAP9jywuS{Y6G_edH2Y*p5vKza6^K#0v5~RUuU_6TD z-0~2y%fmc6h|u&-2qx+;e6uwgA^Th4h3IXuE13dfA_+aV6>V5G*LMAqWBwc@{3u_p zmu70Ooxy#PVdL$_;W4-S5oYuQTUF@zEE8>id^@R83od;+VJbZhyINb_tAEk;ql92r z#3p03z?6z(v@u5|$fD=SL??DGaO&Fkr+QN1mQ$_PQJE*1#xaBqZb;?NiqQc~*6+m& zu!39aBllD=E^X=dE70d`hOkSyz+YlQ?0>M5Jd60TlY&(-!qb|acT=S8EmuJZRn!U8 zSm>SQgf!~=#!7`NMqzWdGPDHU*XJamk`%OjU;=KK#~`XpW*A8>j!Oa>%V{kL*N+6{ zVk-Q~gp*61c~r0igL}>HS~MU>mHfHW-D0k0FaRm$FP6QJAl_f9M-XWu_c&s-(&?AD zc<#%uDN3Bx7UGko!JRg6RxaqmnF374=t`_o`(SBKym0NtSea$Mb7?9fNTzOf*n~s) zpgHui1X(eR*bP_7+$f-1$(@maL+V?i*#udbQb&k#sfC(?S!j>r$4&t6vzfnwggI+e zl>~gVF6P)d@@I4Z*-v2mz3h@ilrO@%CErLH@e4VQQ;F_lYP8I_zs8eumNZLa_#{o$P}Dx|X*?HnXjcNU4g%TRG&{ z$0fq4sJ~j`Pe}-X@cK2iQ>W+j7h*G04so39teutKI{DyyZR0+DC%<5}W}M&(_utoL zlpEWZsNc7>6Z`SzxGx0tIvyUjMJ5ZVcjnT^V5q!GhvZ5J)+pnx)L|;W@8sQ2(0&P(- zq*{i^d^O{4%;!6Vk{Fj5BSFko{@`~>F-tj*Vp0FVE0=a?P5X>Q3hlA7DMfTbx4?TT zCSsXtEgAZC=%0BZ*fXA*C@O`>3jvYYu<(8~;{x%klCsNv1mru~wT54-D8-4Y-5uE< zzo0BsH&+87yWNA9RD4{Dl1chaH(h}vib+?S(2xL5nXN8R`Oor>U6tycB5tz7X@xn1 za#TE8t`TwexsLkMkBrLfm;HYkNpB>6Xi!Pu9GMnkMCg6)!3X_`rAM73`<;)okD&2l z56fIlq>n>KB1gE>sDxmy^l|*9g;OD|s+z4^)d>?&s6^^f4kC}RpBw$L^@_l8L^27! z`Ji#-#U2uZ##k9Tjfq1hccJX1O2vA?og}axq>;(@DL;4_i(s9bY~jgJijs7_vPHWu z=rr}oX<SylsH@b4w)cB*ae#1n9X`Tz`%fzq>Fq?+!9S}Jx5K0(>o=7FQR@Bi z5@6P3SS~~(FSvA$5vtrj(0u&09?Bcs{84dLIbJTz{j`rSfYh0l<_`A|9UQb&)XLB7Q1!u^X#SB$L z*rtx>;J^M?qCbktH=^x`AcBA!1m~@`anIF)S-;l)?d7+f>duvpO5m3Aw1+aWVITUMU=FVGlfXg6FO7qwA zyFHJ(x#KF)#r#6>_u0h?6i2D62zz5lj?(mFQO~dvB}Cmm#M~QQ z?4CmmNv#wJl>9-xVZSEUb}s1q`46?O&i113)T9hLHpC_w;+>9j(tZmA-^;D%g0L*s zA|LuqB`oY*N8-Ov@JC_WsKAvh{u+63)y9wWS0qUyY@RLgOW(`$OHYkrRA;&x#73nr zE*WF~bgg#el|;|$ajW!yCF1)*R&x#zI|u;Zem|#ndSI2?bGIhwJd^IceTe60$)5YN zRC)F{B5$K-MHKGaT=d1^ zzBw=6?S2mpL48$?B##6`er?N{BDW%xPN2E1$G5}h;+#9{+{M|~g62;2=Zu3d`dtl} zZfC=|potqw%LT!xs)Os@cdvf_vA$Vfy^VZjSxoGew>%mACQ`G7Dm1jz{ENJ3-Q{qS zl+n_a@g!k0GiIWE2J5m3;`S>6VCKZMHani5;s|L@Xq$1MKD>e2dV*8>3p6Ug=?oiJ zzanM8$e{)DR{f`n2-JC$`PN@rGul2@)?lizB;KW*+cYg1btefx34Ylh z>!e+ch%lF1VWvqOewlNhfOvReN-(8LCLRtxkQF2;6^=a|*F!JAc~rz?4EpkHR?5Y* zZg>iQY&4V;ArZd6(v)68 z)<=U&K%Y@as2ubZ+Wb?c|0_r@4E<{JhL~ zQxpf{Hn#kB!Yf7K%_WBli%NXhM#Y@UT*NXlns~G47xffSoFc=VDSIK%NfSls#$RpC zJ+N&0I|H3Y^3TMd1}Zx280j&(1sb>Xc1@9R(;V-Beo=+Tby0N+mG?DbiQXV9Ey87QX-8GSjyBeN37Lg?-))YI(GC3xX9@-ev>X=0v;ZpR+y`kK1 zJYsklA=J?46ds3&OqukPye@f>DHooHt#t~tNvIj5T?2#!wmPCU+rzFor}(XauYOSH z$`=BPn?DQ`v9Upk?xT|RLv<%GBt^!(xaOJqDm;UN@MKyg@C*HQ*Yd_?RGIP#Pwz2@ z6@whITx$W}1J}hUy94eF75Z|cwr~@H$Q)+34=GaSHN=~)&B6~~9L$ey^4RnuOyyn)@vFLo9Qh-!~x}?@}0sswaxEI(KJL#5;QuY3Jh}j z>JT70L)e#3{$*~Uc+Np=RoyJHQoLe}`hX+CoLR1S53F=Ap2WH{Hu5%1(p&LgZ-Af1 zz?6Zc8BqJ|TTb?FVDOWt2r6W65*0bDt0b9h!x_MI%tCPh2i{;_V7=D>@(l0GE~*wQ ztL)YM5WjK2Fj*0Z-3~Z8@5hR*9?p_AY)3dB@54?WMBlDYC^flXzePu9H@)n&yLC1p z8+n|0p$vFl+#wQs0f`b*bguT?oGpm`4g{X}I5>yK3inf27gx!YJ{) z?+#zn5=lgrjXf85f~O3)N2nv9311O}!;eSGmB!HKK@&~Ke1I0deCP-Xd#95;oVJQO4{d)k3Ts3XnDqU`MN$B2m=G5ur?qgP0XI8JE!eW&`5Zipm(*L6P`b`u#M z9|LW+U`!%##l_u<-liD4)~VFg_7i$Pt6R<}^spKduF7vCljA()tWnaaz`Hf-t<6|Mg3#aXq?9^qs; zgYF93^lX}VXgDsgjJxaS_S!lF<@!($DW^>4!k+|yuS&j3u_1l#&cgai$Ueb)<#(O* z^ch|+p%o{0?VHR2jJs)c(dS)%12UaZFL!wUY4}r%2hZPlAcMZm*aLIXtB}4%CAp` zZbNAayt%K}$~;<;qeDogJ;o2=^ypxzEhE~XF&*#-PT1Pv^bo3bpNDl_ztd;A1f~=L zzyh8WmTA7_=_vSB-$cHsq#3tS`U*cOFoD&&J0pOZM5@ma3#vfV1bnf1$o$|F@ zCgt26=k!6vTfJ=ro8a3k`#r__eEZi5t0HzaQ+v6i|C^cuv=*M+2_etVhgd46YEiHI zbZW-gT_w0#-x#9$RZ83y|HO#ABeqf$y2`4cvE#IHdBud+s*&AVA7~)9@>@!|5(wh| zB3}4DB0Ex?-0;*}$l!UGyPKJK$b)p~OThR<1>RZ>$ycodNTOT*;N{j#F@9B)Q*mNf zI!%^Nb`z*}1g`bZ=R~`_LcPHR8_z1ix+u0*f*+d{egqUOtfcAe5>z@pO&#cPiN#+( zgk?nw@x)W~tVHTltM4Y#oL66O(E-j@3>}x-vfOWqy-8Ic#1hO&B*E**(aPIgK!2_!Y()hMx>;2k%8Z%?sn*1))Ds8Cx=VjX@G^9aVZXL0 zO}@eEM4=+NgqYs)U3$Q=P!B34W0k~~YksoREoU9+Sg)&niEJ$Mj!Z>tG5{=xe%eD! zRFTu)V@C7^(Iu_ECE{haAC472LW9_znq{Dq>^e9iH#EqDoy1>m2@~^7Q9a6Fuj~V9 zkLb;9RqPGh;N!axS`;Gkzd2ajQw$9l&e~kx;3|xN*NaW@uOw>+Wtxz~s-coZ5%?(t zl8f@vhenl0Ks5Lx6yS0`kpn-jB!<2u?|KNyH&x7Ta|FKyaM>G4O$$lclQYUac}+`6 z^m`rOMWeWpz0bpatoFX#XX^i?XCQV#JZXwO#K)2?C+F`cL_sFXuYrPDS4}3_`=$ZW zlDfuMeT4>vTi5f0G>J5A=gLVcRigma+D~ZCU+BiUnT;+?eh-ooEhfOW!}p_tpho(Z zy%k7AZVGa^Dbh!-SH)PX$kHL)r{*h8IFmQ=5QOmBuXxL1>q=!{>#v=8bMY}-M(pAd zL|RZ>`!^>*Q|Mw-w9y1@T8ylal)wn|KXZbYzedcPheR*sQJDIAz1i|XI+8^E6^l=F zrv;A=fgcjN#bvtf;sOkQyF{1I2wL~o{J66%iA>N*@?V2s#iMtfpngrDz9QBS_w!CA zcht`eiD`KgR3#;6i2CAeycxad))YMHlA34Af&#NmiGhCN)E0*?<0j>%nbW-dwWMCb*VJ>6UytW zJodmm8UVXiBY&r%5ls|nW@BIk8+g6!;9}K!iB@9AB$-1hfp&1{=UHHXQXH)T><6Ot zJL*NUCDT0Fb~$M?I}6kcCEQusVCvaf@w$ZYVe8JL(q{}=Awhn=*nql$21Y|F903uG z_!)SBwLf4an~z3=xzjK!V$8%Of|o@wQoiP$Ai#x`FB!7cLkFf2-PFJ?H~KYT6fyqi zfy?~?(IyYx&j+OC1=|$-9_&I(J^f?sr7|z&qpDPYPKd-ngpQR=fhNMqxlI49K};;G ziOCnFisTgDX5@O|0o7zQk}45?hDr;AVcs1 zB*J=?WZFWOZ!J!@!NgVYD*?N>jccuGNEiEe27=CyL>)WqK_i!hHDc%#?}W>gcvTf{-y&UCc&D#iJU?X%jX9@=Y|Sa_B!k@5?#QS9n-#jx3oZE-q1Nq{Od zu!VAOjK+x;m^{M#2z*8helW>3u>jr8?a?9@v;td z^!2()CL%t;WQ4Lb`8cH6cM%M^H0JZ~R|$xrr4D@dV-L!=;L3&(EBg7|@LDF$1s&5d z_r0=wp}k$GN_+%?k&h+XsF0*pCaeK1s+H_8j$Db3BJcp-T_?fdn#Te*z<`nwPHW_L zVZg|1drfInY>$nohUbb+$)Z6h)aqo^t8y2x*jN>l(>V%DdFP5P+lt5?MzW_tj`U#Y zWpBCbPCz@ZyE(zM=}NcB{eJTY+vFeJq#`f*bzJEm>f&krRzD4-nl;6_(?fjBh)#^Z zNb-DWa>GEAYBZ8-SupdY2kKo>9wHtXllMr5`D$#EE_>EXCLai~PCWL_0~E{^>Bc!) zuk7LGY9gQz!$SNCNH~^%TJEUhn4*v;``bITXQF7)mS(K0FTg;|EDZE+KuWslq)nt5v!;_?Y%|x0D1qO{GLxnlzF(mUvja)XC#t$;?R!B=r6nf_E z864NiGa*X^f3Dg}`0a$vg%$FbY!Y`d4;pMEdpG3i-&)t-&v;zQlYUE5Nb%g?{Y27F zM`P}v=#zY9{CE4_9RNEFO%_kh^-yQZF_K6%=*Y&hGSI~Jy(m#8{Ypm@Op%`?F$Y@Z z_OpizbSuI5Y6;#uuPP_?p(2Hro8)2T4&=^h@Z4WqMxJ@|wxU>l^M$38uNl$QB(ViO z_Jc^iC28_miJA33=*E9yocqU>lh&vv>o!p0_50CO!@m|PfSLik@l3F-+@QDo_mQM6 z_7vul&FI;cgPL|0@^R5K>EQCg!<^`ag)4HN1-4HEzsi%_rhhg@BG9q@4R z>R`1)eLs#_vqgSxh;U>C_^0#>*&U`N3=mem^GBdhM#(I+GiMf-kp^Rr=ki|uDgrgL z&N(HCP8=q-0q-TE>wH@^s17aTkQ(%F&pyxpXVE4<~zA-pfYYTe(>JswKC{PJ4%6M%d?;)6^JEm=`1d3fpbrQYVY2x0D$J#pc zv8aDipKbW#ap>3BlW9xx=G9f1QzdcE0I%KMi2<6!(WKB@?B$^7f21byF~0v)1rn+z zBdd7y*{&V+hGeFADB4Y?F&;+F;gFSDv_fNAg4LVl{>)4D7WSt7iK(CCA`+3v(B!s` zW%tVQDB;obT4FCrQEYlN>JKx`IE1lRT?%}s7r0{4^Q*u6nN-=^`E^yV`Y7O^`ed&3 zKVIuh9IEk?H?hJ)-I4t3`9JVpGZo@X2OW@{|eOvEwk$amT;hAf?q+%=8z-$VrdC+W&I|LcfBNv2OsY4iyKp_Q-R{h}d z>Yn8yCV78pq|*!8Lzr#S^ZESlD#F)rQqS=4EoKeig}%#UyPM#C<`2m|886>FF(AF5 z;v7+6O1bxZnm=(LwfAhlkchiMb7M>BGJPe=#leX(vE}LWe?h*VZd*+5?F*M6Gh+dj z5kB97v|7;_m_~>dS9G^E=+SdJBmM3UggnfH!1bsy|#w?}F33Q1I~e!uynQ zFw-w&X)+C|osemHA2wKEH1JjZ8T|$)b;Apwf(&3o&Ne;Q7}~{nC{|9lUu9=_ueOoG z!rwWglb`6g-q`*EC)&!5Y|QF=>5vzx5a}S=4!j$``KI4BesrOuc~$AQi|6Nc@Xg8@ zBJtT$FlZq0U{#^6>3WXoxBI>n>rd1w0Y6Y>>m3EVac1z~TK8@y+ToSTN-w=$_agA+ zS~cm?F!V_)r9C2sw@f$kJK>AuT}zdB*XcLA{$7KA?U%=T@x8BT=lI93g1iZ~FlsmH z<3-auJJ2fE=eY^nm$X-no7cFpnAA?dK=@)4@2}8~nVajUWm-7CY*7F=$P}qnGN#TA z{ix-g+65l~7P}tWP z{6=k@-kD!7QNtW+<9Tymd_J-w zUmoW90WAA>$PY2u%0kGA0{~@k0CI~x?wV$tygqI~BZlpqkZgE3))05F3xG@m;NzOr zJnv%4m+47AsMb6?)8<$j+#ez?n(Mzi#Q*B)?bAQ}gTRsxQc|%p9#vFuo^NMXx&hQtZcvoR~JwgfH$&o(R+aFsv*X zyS2;{wclEchkx(*#A_!n2<-hsMufcT9{=%o5wFFB<=sB@`(!L9hcHj$tP0^k}~3%wtFHg20@~xXFAz5 z{`bt5RovWxOmTS4dgSL7f~@S7k_GA;)50eZTR&vWbj+|&N*Wp|=}`gsqIE0>RWozH zH-)CY0P)SjsA8jwoh^ZA1R|lB4+g1-;37SKuT#88Qlm|t|X3mucRZ7K{X(O7r zgeS!7R0;40N7cI%(a79ZD55X_4#r5uFx=+s2_Te3z-(mD#&Xr~s7Fj-KkhggFVK{i z_>HY+bvl&DXoFISF8F6~j1b|JK< z=DI&@$^j15^*{A)SOdeO3S_&QHO|TIW%wK+G>gI0hfr9X^o8Uy`OW(%KQKjyex5;y z{8y6`aqB81Y&0LPw<4kVp!C+}zD%{hovYEw=5EP#OX&7v0(H!yjZ%< zq&gX-aN6aPv8h>b8e-(3aRPT-!qT%pB|EHOJpmIUiFCs3Z@TEqxj_@8;Dfl3vrG#- zJ7WgD)*P$`9>gLK5_vB}o#s~5oKf`H4yk#=Se1OT=thDBrkkFOW;g;VuC31B^3i`2 zF*rxIuwBwz9^C6KdaJdNHk{9JdrazbVc{*aL-%Aj)Y~eLI>7>-m;Nf+*v>|o=8yXOil^^{XAdfh15m(}-Mm|>9)oqEM!W%=7{6dD@70pc&~ z5p|6tdCHS}d9LH?pxaylam&2Eix$`Hj zL)zKG6q{l`Ik@6|xUf4#g2QsN;%e)cs~CRtxalw?>n2VA zPNhfLwKyviqZZ#qJWRb-ZF+hCu{>$3+%r?PCL&NK=AdvRBLlqgS2daYjxlA>TzD(F zO%OJ$2QkZTmj2oxhOXC9BgA;GS!{o5FrYC<1f21-(orR_yV4=Jqmq#Q6xy z>*w-}`}_Hh*Br;_@!S*OfI!@HV{Vu&5fD$)El+#hUdiV4UgxL779wn)xjWu*t=AxG zIJDdrr)}(qa^im}n%0Dq9k8}@+Xvh+^)?Pi`l#HVUzT~@O%k43MH6`+ne7@-U;a80 zM$zwP43aJlisZ-q+59ppNOrusAB*2VrMgR3hNaMbdp_jOw+CR^+G8b3FQ_G9l_|uj zBogue#e_uDqFSEc&1Vw~`w+k;g>s7ZGDo8fNFr(*`4Mlpp?Nya{8GblrBq<=bBZ-H z(?kC$iID#erR)oulgPj_d93&6r{*zy+25e@CyLJ#@JS*Jp}8Vly^JL!#r{_KUzmiEj_zN`UhNWO-lWJ1a+YOCwnk@8cB zOmY$XV{ds$q-8^CJExgKR~;_iQxD?QFjozI==?DrB3w+Z03^wOCR|V&lHw;c$tsN3Dw=;Rtfi`*pdDyKl`=~v zG9(NtPLKqS6=-bJB!6g`UO#>uH?k;4PEl{lu#!mJoGR?zA*_@r;gO)$37Vope7R

    I(0zQT925lqcXjN+~miO4PpuJ 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 ccm^(V1>vq<-U3DA6> -# grant permission -chmod -R 777 /data -chmod -R 777 /apps +# grant permission to users that will run the WRF to access the files. +chown -R azureadmin:cyclecloud /data +chown -R azureadmin:cyclecloud /apps ``` ### Generate WRF4 Input Files @@ -307,10 +315,9 @@ ls -l /apps/hbv2/wrf-openmpi/WRF-4.1.5/run/*_d0* #### Change Permissions on Files ``` -#chown -R azureadmin:azureadmin /data -#chown -R azureadmin:azureadmin /apps -chmod -R 777 /data -chmod -R 777 /apps +# grant permission to users that will run the WRF to access the files. +chown -R azureadmin:cyclecloud /data +chown -R azureadmin:cyclecloud /apps ``` ## Running and Testing From 754efe0523a88d679f4a4a0fb6c480c3c1930e8d Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Mon, 24 Oct 2022 17:17:40 -0300 Subject: [PATCH 17/75] change repo --- apps/wrf/readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index da55dc9b2..59287fe9c 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -71,7 +71,8 @@ Download azurehpc GitHub repository ``` ## Download azurehpc GitHub repository cd /data -git clone https://github.com/Azure/azurehpc.git +#git clone https://github.com/Azure/azurehpc.git +git clone https://github.com/marcusgaspar/azurehpc.git ``` Follow the procedures [here](https://docs.microsoft.com/en-us/azure/cyclecloud/tutorials/modify-cluster-template?view=cyclecloud-8#import-the-new-cluster-template) to upload the Cycle Cloud custom template created for WRF. From db35ea828b2826f5f511e5bcca05abf22d9be029 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Mon, 24 Oct 2022 17:33:56 -0300 Subject: [PATCH 18/75] updates --- apps/wrf/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 59287fe9c..363ad3b7b 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -67,7 +67,7 @@ Summary of steps: ### Import custom CycleCloud template for WRF -Download azurehpc GitHub repository +After start NFS storage cluster, ssh to it and download azurehpc GitHub repository ``` ## Download azurehpc GitHub repository cd /data From dae91235af6a673ca4902ec52646d7b119fcf34d Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Tue, 25 Oct 2022 13:25:39 -0300 Subject: [PATCH 19/75] updates --- apps/wrf/readme.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 363ad3b7b..0d88c9370 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -321,6 +321,9 @@ chown -R azureadmin:cyclecloud /data chown -R azureadmin:cyclecloud /apps ``` +Once you get here, you completed the WRF v4 setup! +Now you can shutdown and terminate the HBv2 worker node used to perform these setup procedures. + ## Running and Testing Connect to head node of WRF Cluster and submit WRF v4 simulation job: @@ -451,8 +454,8 @@ qsub -l select=3:nodearray=execute1:ncpus=120:mpiprocs=120,place=scatter:excl -v - Processes per node: 64 - MPI processes per node: 64 ``` -mkdir ~/test9 -cd ~/teste9 +mkdir ~/test10 +cd ~/teste10 qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` From 88f3c75d0fc77cf0a84de2f1c942901a74d6d160 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Tue, 25 Oct 2022 13:26:46 -0300 Subject: [PATCH 20/75] update --- apps/wrf/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 0d88c9370..9d2a83257 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -321,7 +321,7 @@ chown -R azureadmin:cyclecloud /data chown -R azureadmin:cyclecloud /apps ``` -Once you get here, you completed the WRF v4 setup! +**Once you get here, you completed the WRF v4 setup!** Now you can shutdown and terminate the HBv2 worker node used to perform these setup procedures. ## Running and Testing From 71996ae286c2bc7beb9d51ea258554a4a04deb2e Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Tue, 25 Oct 2022 13:27:20 -0300 Subject: [PATCH 21/75] changes --- apps/wrf/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 9d2a83257..95d1205ce 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -321,7 +321,7 @@ chown -R azureadmin:cyclecloud /data chown -R azureadmin:cyclecloud /apps ``` -**Once you get here, you completed the WRF v4 setup!** +**Once you get here, you completed the WRF v4 setup!** Now you can shutdown and terminate the HBv2 worker node used to perform these setup procedures. ## Running and Testing From 63f63cdbcf6e50064ff14006e99bf6054ea02f41 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Tue, 25 Oct 2022 13:28:16 -0300 Subject: [PATCH 22/75] changes --- apps/wrf/readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 95d1205ce..e2b28d437 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -321,7 +321,8 @@ chown -R azureadmin:cyclecloud /data chown -R azureadmin:cyclecloud /apps ``` -**Once you get here, you completed the WRF v4 setup!** +**Once you get here, you completed the WRF v4 setup!** + Now you can shutdown and terminate the HBv2 worker node used to perform these setup procedures. ## Running and Testing From d335434055c2ba000832154181fed323c4e12b3a Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Tue, 25 Oct 2022 13:39:10 -0300 Subject: [PATCH 23/75] fix test folder --- apps/wrf/readme.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index e2b28d437..884be819b 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -339,7 +339,7 @@ Connect to head node of WRF Cluster and submit WRF v4 simulation job: - MPI processes per node: 30 ``` mkdir ~/test1 -cd ~/teste1 +cd ~/test1 qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` @@ -352,7 +352,7 @@ qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v " - MPI processes per node: 30 ``` mkdir ~/test2 -cd ~/teste2 +cd ~/test2 qsub -l select=2:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` @@ -365,7 +365,7 @@ qsub -l select=2:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " - MPI processes per node: 30 ``` mkdir ~/test3 -cd ~/teste3 +cd ~/test3 qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` @@ -378,7 +378,7 @@ qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v " - MPI processes per node: 60 ``` mkdir ~/test4 -cd ~/teste4 +cd ~/test4 qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` @@ -391,7 +391,7 @@ qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " - MPI processes per node: 60 ``` mkdir ~/test5 -cd ~/teste5 +cd ~/test5 qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` @@ -404,7 +404,7 @@ qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " - MPI processes per node: 64 ``` mkdir ~/test6 -cd ~/teste6 +cd ~/test6 qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` @@ -417,7 +417,7 @@ qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v " - MPI processes per node: 64 ``` mkdir ~/test7 -cd ~/teste7 +cd ~/test7 qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` @@ -430,7 +430,7 @@ qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v " - MPI processes per node: 60 ``` mkdir ~/test8 -cd ~/teste8 +cd ~/test8 qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` @@ -443,7 +443,7 @@ qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " - MPI processes per node: 120 ``` mkdir ~/test9 -cd ~/teste9 +cd ~/test9 qsub -l select=3:nodearray=execute1:ncpus=120:mpiprocs=120,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` @@ -456,7 +456,7 @@ qsub -l select=3:nodearray=execute1:ncpus=120:mpiprocs=120,place=scatter:excl -v - MPI processes per node: 64 ``` mkdir ~/test10 -cd ~/teste10 +cd ~/test10 qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` From 8c652ac9e041d2f146832d5626080451803a86d4 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Tue, 25 Oct 2022 18:08:09 -0300 Subject: [PATCH 24/75] change permission --- apps/wrf/readme.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 884be819b..31a8dac93 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -232,10 +232,6 @@ Run the commands and be sure of copying the download_gfs_files.py the folder bel mkdir /data/wrfdata/gfs_files cd /data/wrfdata/gfs_files python download_gfs_files.py - -# grant permission to users that will run the WRF to access the files. -chown -R azureadmin:cyclecloud /data -chown -R azureadmin:cyclecloud /apps ``` ### Generate WRF4 Input Files @@ -315,13 +311,17 @@ ls -l /apps/hbv2/wrf-openmpi/WRF-4.1.5/run/*_d0* ``` #### Change Permissions on Files +Grant permission to users that will run the WRF to access the files on /data and /apps. +For my environment, I used azureadmin as CycleCloud admin. +Change the user below accordingly. + ``` # grant permission to users that will run the WRF to access the files. -chown -R azureadmin:cyclecloud /data -chown -R azureadmin:cyclecloud /apps +chown -R :cyclecloud /data +chown -R :cyclecloud /apps ``` -**Once you get here, you completed the WRF v4 setup!** +**If you get here, you have completed the WRF v4 setup!** Now you can shutdown and terminate the HBv2 worker node used to perform these setup procedures. From c5d114e780556e73ef1b5572dc8a8c2c6f24f8d3 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Tue, 25 Oct 2022 18:37:57 -0300 Subject: [PATCH 25/75] validation --- apps/wrf/readme.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 31a8dac93..2b8436ec1 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -460,6 +460,15 @@ cd ~/test10 qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` +### Validate Job Status +To validate the status of the job submission, you can use: +``` +# check jobs history +qstat -x + +# check jobs history showing the wall clock duration +qstat -xG +``` From ffa3024cb3e5fc0d45e1807a7081769ebe7cc799 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Wed, 26 Oct 2022 13:49:24 -0300 Subject: [PATCH 26/75] test scenarios --- apps/wrf/readme.md | 64 +++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 38 deletions(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 2b8436ec1..fc9431390 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -336,20 +336,20 @@ Connect to head node of WRF Cluster and submit WRF v4 simulation job: - User: azureadmin - Nodes: 1 - Processes per node: 60 - - MPI processes per node: 30 + - MPI processes per node: 60 ``` mkdir ~/test1 cd ~/test1 -qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 2 - SKU: Standard_HB120rs_v2 - User: azureadmin - - Nodes: 2 + - Nodes: **2** - Processes per node: 60 - - MPI processes per node: 30 + - MPI processes per node: 60 ``` mkdir ~/test2 cd ~/test2 @@ -360,48 +360,48 @@ qsub -l select=2:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " - Test 3 - SKU: Standard_HB120rs_v2 - User: azureadmin - - Nodes: 3 + - Nodes: **3** - Processes per node: 60 - - MPI processes per node: 30 + - MPI processes per node: 60 ``` mkdir ~/test3 cd ~/test3 -qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` -- Test 4 +- Test 4 - SKU: Standard_HB120rs_v2 - User: azureadmin - - Nodes: 3 + - Nodes: **4** - Processes per node: 60 - MPI processes per node: 60 ``` mkdir ~/test4 cd ~/test4 -qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 5 - - SKU: Standard_HB120rs_v2 + - SKU: Standard_**HB120rs_v3** - User: azureadmin - - Nodes: 4 + - Nodes: **3** - Processes per node: 60 - - MPI processes per node: 60 + - MPI processes per node: 60 ``` mkdir ~/test5 cd ~/test5 -qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 6 - - SKU: Standard_HB120-64rs_v3 + - SKU: Standard_**HB120-64rs_v3** - User: azureadmin - Nodes: 3 - - Processes per node: 64 - - MPI processes per node: 64 + - Processes per node: **64** + - MPI processes per node: **64** ``` mkdir ~/test6 cd ~/test6 @@ -410,11 +410,11 @@ qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v " ``` - Test 7 - - SKU: Standard_HB120-64rs_v2 + - SKU: Standard_**HB120rs_v3** - User: azureadmin - Nodes: 3 - Processes per node: 64 - - MPI processes per node: 64 + - MPI processes per node: 64 ``` mkdir ~/test7 cd ~/test7 @@ -423,24 +423,24 @@ qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v " ``` - Test 8 - - SKU: Standard_HB120rs_v3 + - SKU: Standard_**HB120-64rs_v2** - User: azureadmin - Nodes: 3 - - Processes per node: 60 - - MPI processes per node: 60 + - Processes per node: 64 + - MPI processes per node: 64 ``` mkdir ~/test8 cd ~/test8 -qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 9 - - SKU: Standard_HB120rs_v3 + - SKU: Standard_**HB120rs_v3** - User: azureadmin - Nodes: 3 - - Processes per node: 120 - - MPI processes per node: 120 + - Processes per node: **120** + - MPI processes per node: **120** ``` mkdir ~/test9 cd ~/test9 @@ -448,18 +448,6 @@ cd ~/test9 qsub -l select=3:nodearray=execute1:ncpus=120:mpiprocs=120,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` -- Test 10 - - SKU: Standard_HB120rs_v3 - - User: azureadmin - - Nodes: 3 - - Processes per node: 64 - - MPI processes per node: 64 -``` -mkdir ~/test10 -cd ~/test10 - -qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs -``` ### Validate Job Status To validate the status of the job submission, you can use: ``` From ea81743c64547529702dbe17a321481447ef1374 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Thu, 27 Oct 2022 13:01:33 -0300 Subject: [PATCH 27/75] changes --- apps/wrf/readme.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index fc9431390..aa48c5637 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -181,7 +181,7 @@ References: - [azurehpc/apps/wrf](https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html) - [Static data downloads from ucar.edu](https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html) -Run the commands below to download WPS v4 geopraphical static data for WPS v4: +Run the commands below to download geopraphical static data for WPS v4: ``` # Keep as root #sudo su - @@ -312,7 +312,7 @@ ls -l /apps/hbv2/wrf-openmpi/WRF-4.1.5/run/*_d0* #### Change Permissions on Files Grant permission to users that will run the WRF to access the files on /data and /apps. -For my environment, I used azureadmin as CycleCloud admin. +For my environment, I used "azureadmin" as CycleCloud admin. Change the user below accordingly. ``` @@ -333,7 +333,6 @@ Connect to head node of WRF Cluster and submit WRF v4 simulation job: - Test 1 - SKU: Standard_HB120rs_v2 - - User: azureadmin - Nodes: 1 - Processes per node: 60 - MPI processes per node: 60 @@ -346,7 +345,6 @@ qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " - Test 2 - SKU: Standard_HB120rs_v2 - - User: azureadmin - Nodes: **2** - Processes per node: 60 - MPI processes per node: 60 @@ -359,7 +357,6 @@ qsub -l select=2:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " - Test 3 - SKU: Standard_HB120rs_v2 - - User: azureadmin - Nodes: **3** - Processes per node: 60 - MPI processes per node: 60 @@ -372,7 +369,6 @@ qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " - Test 4 - SKU: Standard_HB120rs_v2 - - User: azureadmin - Nodes: **4** - Processes per node: 60 - MPI processes per node: 60 @@ -385,7 +381,6 @@ qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " - Test 5 - SKU: Standard_**HB120rs_v3** - - User: azureadmin - Nodes: **3** - Processes per node: 60 - MPI processes per node: 60 @@ -398,7 +393,6 @@ qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " - Test 6 - SKU: Standard_**HB120-64rs_v3** - - User: azureadmin - Nodes: 3 - Processes per node: **64** - MPI processes per node: **64** @@ -411,7 +405,6 @@ qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v " - Test 7 - SKU: Standard_**HB120rs_v3** - - User: azureadmin - Nodes: 3 - Processes per node: 64 - MPI processes per node: 64 @@ -424,7 +417,6 @@ qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v " - Test 8 - SKU: Standard_**HB120-64rs_v2** - - User: azureadmin - Nodes: 3 - Processes per node: 64 - MPI processes per node: 64 @@ -437,7 +429,6 @@ qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v " - Test 9 - SKU: Standard_**HB120rs_v3** - - User: azureadmin - Nodes: 3 - Processes per node: **120** - MPI processes per node: **120** @@ -456,6 +447,9 @@ qstat -x # check jobs history showing the wall clock duration qstat -xG + +# check jobs history showing the execution details +qstat -xf ``` From 34178e303705b06b4b20c618da5be7c47b82e04b Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Thu, 27 Oct 2022 13:52:13 -0300 Subject: [PATCH 28/75] granting write permission to group on /data /apps --- apps/wrf/readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index aa48c5637..505a8b26b 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -319,6 +319,8 @@ Change the user below accordingly. # grant permission to users that will run the WRF to access the files. chown -R :cyclecloud /data chown -R :cyclecloud /apps +chmod -R g+w /data +chmod -R g+w /apps ``` **If you get here, you have completed the WRF v4 setup!** From 988a1f220c878ffedbd06fa2bbaa4728d7ef3173 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 2 Dec 2022 14:46:53 -0300 Subject: [PATCH 29/75] adjustments required for pull request --- apps/wrf/env-variables | 22 + apps/wrf/images/wrf-test-results.png | Bin 0 -> 50878 bytes apps/wrf/readme.md | 225 +++------ apps/wrf/run_real_openmpi.pbs | 50 ++ apps/wrf/run_wps-real_openmpi.pbs | 50 ++ apps/wrf/run_wps_openmpi.pbs | 60 +++ apps/wrf/start-full-run.sh | 13 + .../images/Create-WRF-Cluster1.png | Bin .../images/Create-WRF-Cluster2.png | Bin .../images/Create-WRF-Cluster2a.png | Bin .../images/Create-WRF-Cluster3.png | Bin .../images/Import-Template1.png | Bin .../images/NFS-Cluster1.png | Bin .../images/NFS-Cluster2.png | Bin .../images/NFS-Cluster3.png | Bin .../images/Start-WRF-Cluster1.png | Bin .../images/Start-WRF-Cluster2.png | Bin experimental/wrf_on_cyclecloud/readme copy.md | 456 ++++++++++++++++++ experimental/wrf_on_cyclecloud/readme.md | 107 ++++ 19 files changed, 821 insertions(+), 162 deletions(-) create mode 100644 apps/wrf/env-variables create mode 100644 apps/wrf/images/wrf-test-results.png create mode 100644 apps/wrf/run_real_openmpi.pbs create mode 100644 apps/wrf/run_wps-real_openmpi.pbs create mode 100644 apps/wrf/run_wps_openmpi.pbs create mode 100644 apps/wrf/start-full-run.sh rename {apps/wrf => experimental/wrf_on_cyclecloud}/images/Create-WRF-Cluster1.png (100%) rename {apps/wrf => experimental/wrf_on_cyclecloud}/images/Create-WRF-Cluster2.png (100%) rename {apps/wrf => experimental/wrf_on_cyclecloud}/images/Create-WRF-Cluster2a.png (100%) rename {apps/wrf => experimental/wrf_on_cyclecloud}/images/Create-WRF-Cluster3.png (100%) rename {apps/wrf => experimental/wrf_on_cyclecloud}/images/Import-Template1.png (100%) rename {apps/wrf => experimental/wrf_on_cyclecloud}/images/NFS-Cluster1.png (100%) rename {apps/wrf => experimental/wrf_on_cyclecloud}/images/NFS-Cluster2.png (100%) rename {apps/wrf => experimental/wrf_on_cyclecloud}/images/NFS-Cluster3.png (100%) rename {apps/wrf => experimental/wrf_on_cyclecloud}/images/Start-WRF-Cluster1.png (100%) rename {apps/wrf => experimental/wrf_on_cyclecloud}/images/Start-WRF-Cluster2.png (100%) create mode 100644 experimental/wrf_on_cyclecloud/readme copy.md create mode 100644 experimental/wrf_on_cyclecloud/readme.md diff --git a/apps/wrf/env-variables b/apps/wrf/env-variables new file mode 100644 index 000000000..b80bb5ec2 --- /dev/null +++ b/apps/wrf/env-variables @@ -0,0 +1,22 @@ +SKU_TYPE=hbv2 +SHARED_APP=${SHARED_APP:-/apps} + +if ! rpm -q python3; then + sudo yum install -y python3 +fi +source /etc/profile.d/modules.sh +export MODULEPATH=${SHARED_APP}/modulefiles/${SKU_TYPE}:$MODULEPATH +module use ${SHARED_APP}/modulefiles +module load spack/spack +source $SPACK_SETUP_ENV +spack load netcdf-fortran^openmpi +spack load hdf5^openmpi +spack load perl +module use /usr/share/Modules/modulefiles +module load mpi/openmpi-4.1.0 +module load gcc-9.2.0 +module load wrf/4.1.5-openmpi +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi \ No newline at end of file diff --git a/apps/wrf/images/wrf-test-results.png b/apps/wrf/images/wrf-test-results.png new file mode 100644 index 0000000000000000000000000000000000000000..d98770d28b36f886f87a5da083ff7770c7f90e14 GIT binary patch literal 50878 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 SS@hS-R#Qz+wMzL>`2PV$XTDbe literal 0 HcmV?d00001 diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 505a8b26b..e00dd35a2 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -1,116 +1,35 @@ -# Install and run WRF v4 and WPS v4 - Setup guide - -Summary of this procedure: -- Installs CycleCloud environment from scratch -- Creates NFS storage server using CycleCloud cluster template -- Installs WRF/WPS v4 software (via “azurehpc” scripts) -- Submit jobs to run WRF v4 application for testing +# Install and run WPS and WRF v4 - Setup guide ## Prerequisites -- As this procedure uses HBv2 VMs to run WRFv4 simulations, you may need to request quota increase for this type of SKU in the subscription and region you will deploy the environment. +- You need a cluster built with the desired configuration for networking, storage, compute etc. You can use the tutorial in this repo with an end-to-end instructions to setup a lab environment on Cycle Cloud to run WPS and WRF v4. (See [Install and run WPS and WRF v4 - end-to-end setup guide](../../experimental/wrf_on_cyclecloud/readme.md) for details). +- As this procedure uses HBv2 VMs to run WRFv4 simulations, you may need to request quota increase for this type of SKU in the subscription and region you will deploy the environment. You can use different SKU if you want to. +- You need to download/clone the azurehpc GitHub repository +- This installation procedure requires you have 2 folders mounted /apps and /data on your storage solution +### Summary of steps: +- Install WPS/WRF v4 software (from “azurehpc” scripts) +- Download data for WRF v4 +- Edit data locations in WRF config files +- Generate WRF v4 input files, change permissions +- Run WRF v4 applications for testing -## Install Azure CycleCloud +### Install WPS/WRF v4 software (via “azurehpc” scripts) -Follow the steps to [Install and Setup CycleCloud](../../tutorials/cyclecloud/install-cyclecloud.md) - - -## Create NFS Storage cluster -- It can be possible to include an external NFS share at this point (in the example, I have shared from an NFS cluster using on CycleCloud template) - -![NFS-Cluster1](images/NFS-Cluster1.png) -![NFS-Cluster2](images/NFS-Cluster2.png) -![NFS-Cluster3](images/NFS-Cluster3.png) - -Changes: -- Change OS to use CentOS 7 versions -- Use +300GB storage size (space to download WRF data) -- Change cloud-init as following: -- Confirm the IP address of your NFS storage and change it below accordingly: - -``` -#!/bin/bash - -set -x -yum install -y epel-release -yum install -y Lmod at -systemctl enable --now atd.service -cat </mnt/exportfs.sh -#!/bin/bash -set -x -mkdir -p /mnt/exports/data /mnt/exports/apps -sudo exportfs -o rw,sync,no_root_squash 10.4.0.0/20:/mnt/exports/data -sudo exportfs -o rw,sync,no_root_squash 10.4.0.0/20:/mnt/exports/apps -EOF -chmod 755 /mnt/exportfs.sh -at now + 2 minute -f /mnt/exportfs.sh -``` - -Connect to NFS storage cluster and check the mounts are correct: -``` -# check mount -sudo exportfs -s -``` - -## Setup WRF cluster using HBv2 VM -Summary of steps: -- Start NFS storage cluster on CycleCloud -- Import WRF cluster template (from “azurehpc” scripts) -- Start WRF cluster using HBv2 VM -- Install WRF/WPS 4 software (from “azurehpc” scripts) -- Download data for WRF 4 -- Edit data locations in WRF config files -- Generate WRF 4 input files, change permissions -- Run WRF 4 applications for testing +Spin up and SSH to a Worker Node VM (HBv2). +**Important 1**: You must have the /apps and /data volumes correctly mounted on head and worker nodes. It is required for WRF setup scripts. -### Import custom CycleCloud template for WRF +**Important 2**: You need to be root user to run all commands below. -After start NFS storage cluster, ssh to it and download azurehpc GitHub repository +Be sure you have downloaded azurehpc GitHub repository in /data folder: ``` -## Download azurehpc GitHub repository cd /data #git clone https://github.com/Azure/azurehpc.git git clone https://github.com/marcusgaspar/azurehpc.git ``` -Follow the procedures [here](https://docs.microsoft.com/en-us/azure/cyclecloud/tutorials/modify-cluster-template?view=cyclecloud-8#import-the-new-cluster-template) to upload the Cycle Cloud custom template created for WRF. -Use the template: [opbswrf-template.txt](opbswrf-template.txt) -``` -## Import CycleCloud template -cd /data/azurehpc/apps/wrf/ -cyclecloud import_template opbswrf -f opbswrf-template.txt --force -``` -After you import the template, you will see the WRF template in CycleCloud Portal: - -![Import-Template1](images/Import-Template1.png) - -### Create new WRF cluster -Choose the WRF Cluster name: -![Create-WRF-Cluster1](images/Create-WRF-Cluster1.png) - -Choose the SKUs you want use for testing and the subnet for the compute VMs: -![Create-WRF-Cluster2](images/Create-WRF-Cluster2a.png) - -Check **Additional NFS Mount** options and change to the correct NFS IP address, related to your environment. Don’t need to change NFS Mount Point and NFS Export Path -![Create-WRF-Cluster3](images/Create-WRF-Cluster3.png) - -Keep the default value for the other parameters, save it and start the cluster. - -### Spin Execute Node with HBv2 -After the cluster is up and running, start a worker node using HBv2 VM: -![Start-WRF-Cluster1](images/Start-WRF-Cluster1.png) -![Start-WRF-Cluster2](images/Start-WRF-Cluster2.png) -Click Add. - -### Install WRF/WPS 4 software (via “azurehpc” scripts) - -Ssh to the Execute Node (HBv2 VM) and run the following commands: - -**Important 1**: You must have the /apps and /data volumes correctly mounted on head and worker nodes. It is required for WRF setup scripts. - -**Important 2**: You need to be root user to run all commands below. +Then, run the following commands: ``` # need to be root user for building everything sudo su - @@ -130,44 +49,9 @@ cd /data/azurehpc/apps/wrf/ ./build_wps.sh openmpi hbv2 ``` -Create the env-variables file: +Run the command to source the env-variables file: ``` ###### Source Variables -cd /data/azurehpc/apps/wrf -vi env-variables -``` -And copy the content below to this file and save it: -``` -SKU_TYPE=hbv2 -#INPUTDIR=/data/wrfdata -INPUTDIR=/apps/${SKU_TYPE}/wrf-openmpi/WRF-4.1.5/run -SHARED_APP=${SHARED_APP:-/apps} -if [ -z $INPUTDIR ]; then - echo "INPUTDIR parameter is required" - exit 1 -fi -if ! rpm -q python3; then - sudo yum install -y python3 -fi -source /etc/profile.d/modules.sh -export MODULEPATH=${SHARED_APP}/modulefiles/${SKU_TYPE}:$MODULEPATH -module use ${SHARED_APP}/modulefiles -module load spack/spack -source $SPACK_SETUP_ENV -spack load netcdf-fortran^openmpi -spack load hdf5^openmpi -spack load perl -module use /usr/share/Modules/modulefiles -module load mpi/openmpi-4.1.0 -module load gcc-9.2.0 -module load wrf/4.1.5-openmpi -mpi_options="-x LD_LIBRARY_PATH " -if [ -n $LD_PRELOAD ]; then - mpi_options+="-x LD_PRELOAD" -fi -``` -Run the command: -``` # Keep as root #sudo su - source /data/azurehpc/apps/wrf/env-variables @@ -325,11 +209,11 @@ chmod -R g+w /apps **If you get here, you have completed the WRF v4 setup!** -Now you can shutdown and terminate the HBv2 worker node used to perform these setup procedures. +Now you can shutdown and terminate the worker node (HBv2) used to perform these setup procedures. ## Running and Testing -Connect to head node of WRF Cluster and submit WRF v4 simulation job: +Connect to head node of your cluster and submit WRF v4 simulation job: > Where SKU_TYPE is the sku type you are running on and INPUTDIR contains the location of wrf input files (namelist.input, wrfbdy_d01 and wrfinput_d01) @@ -337,55 +221,55 @@ Connect to head node of WRF Cluster and submit WRF v4 simulation job: - SKU: Standard_HB120rs_v2 - Nodes: 1 - Processes per node: 60 - - MPI processes per node: 60 + - MPI processes per node: 30 ``` mkdir ~/test1 cd ~/test1 -qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 2 - SKU: Standard_HB120rs_v2 - Nodes: **2** - Processes per node: 60 - - MPI processes per node: 60 + - MPI processes per node: 30 ``` mkdir ~/test2 cd ~/test2 -qsub -l select=2:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=2:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 3 - SKU: Standard_HB120rs_v2 - Nodes: **3** - Processes per node: 60 - - MPI processes per node: 60 + - MPI processes per node: 30 ``` mkdir ~/test3 cd ~/test3 -qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 4 - SKU: Standard_HB120rs_v2 - - Nodes: **4** + - Nodes: 3 - Processes per node: 60 - - MPI processes per node: 60 + - MPI processes per node: **60** ``` mkdir ~/test4 cd ~/test4 -qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 5 - - SKU: Standard_**HB120rs_v3** - - Nodes: **3** + - SKU: **Standard_HB120rs_v3** + - Nodes: 3 - Processes per node: 60 - - MPI processes per node: 60 + - MPI processes per node: 60 ``` mkdir ~/test5 cd ~/test5 @@ -394,22 +278,22 @@ qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " ``` - Test 6 - - SKU: Standard_**HB120-64rs_v3** - - Nodes: 3 - - Processes per node: **64** - - MPI processes per node: **64** + - SKU: **Standard_HB120rs_v2** + - Nodes: **4** + - Processes per node: 60 + - MPI processes per node: 60 ``` mkdir ~/test6 cd ~/test6 -qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 7 - - SKU: Standard_**HB120rs_v3** - - Nodes: 3 - - Processes per node: 64 - - MPI processes per node: 64 + - SKU: **Standard_HB120-64rs_v2** + - Nodes: **3** + - Processes per node: **64** + - MPI processes per node: **64** ``` mkdir ~/test7 cd ~/test7 @@ -418,10 +302,10 @@ qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v " ``` - Test 8 - - SKU: Standard_**HB120-64rs_v2** + - SKU: **Standard_HB120-64rs_v3** - Nodes: 3 - Processes per node: 64 - - MPI processes per node: 64 + - MPI processes per node: 64 ``` mkdir ~/test8 cd ~/test8 @@ -430,17 +314,34 @@ qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v " ``` - Test 9 - - SKU: Standard_**HB120rs_v3** + - SKU: **Standard_HB120rs_v3** - Nodes: 3 - - Processes per node: **120** - - MPI processes per node: **120** + - Processes per node: 64 + - MPI processes per node: 64 ``` mkdir ~/test9 cd ~/test9 +qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +``` + +- Test 10 + - SKU: Standard_HB120rs_v3 + - Nodes: 3 + - Processes per node: **120** + - MPI processes per node: **120** +``` +mkdir ~/test10 +cd ~/test10 + qsub -l select=3:nodearray=execute1:ncpus=120:mpiprocs=120,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` +### Test Results +In the graph below you can compare the execution time from tests performed, with different number of nodes, cores, mpicores and SKUs: +![Import-Template1](images/wrf-test-results.png) + + ### Validate Job Status To validate the status of the job submission, you can use: ``` diff --git a/apps/wrf/run_real_openmpi.pbs b/apps/wrf/run_real_openmpi.pbs new file mode 100644 index 000000000..d735bc539 --- /dev/null +++ b/apps/wrf/run_real_openmpi.pbs @@ -0,0 +1,50 @@ +#!/bin/bash +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv2"} +INPUTDIR=${2:-$INPUTDIR} +INPUTDIR=${INPUTDIR:-"/apps/hbv2/wrf-openmpi/WRF-4.1.5/run"} + +echo "INPUTDIR:" $INPUTDIR +echo "SKU_TYPE:" $SKU_TYPE + +SHARED_APP=${SHARED_APP:-/apps} + +if [ -z $INPUTDIR ]; then + echo "INPUTDIR parameter is required" + exit 1 +fi + +if ! rpm -q python3; then + sudo yum install -y python3 +fi + +echo "source envs" +source /data/azurehpc/apps/wrf/env-variables + +NPROCS=`cat $PBS_NODEFILE | wc -l` +echo "NPROCS:"$NPROCS + +echo "PBS_O_WORKDIR:" $PBS_O_WORKDIR +echo "INPUTDIR: " ${INPUTDIR} + +cd ${INPUTDIR} +pwd + +mpi_options="-x LD_LIBRARY_PATH " +#if [ -n $LD_PRELOAD ]; then +# mpi_options+="-x LD_PRELOAD" +#fi +echo "PBS_NODEFILE:" $PBS_NODEFILE +echo "mpi_options: " $mpi_options + +#cp -f namelist.input namelist.input.old +#cp -f /data/wrfdata/WRF_benchmarks/cases/new_conus2.5km/namelist.input . +cp /apps/hbv2/wps-openmpi/WPS-4.1/met_em.d0*.nc . + +#### Run real.exe +echo "-- Run real.exe" +mpirun $mpi_options -n $NPROCS --hostfile $PBS_NODEFILE --bind-to numa ./real.exe +#mpirun --allow-run-as-root ./real.exe + + + diff --git a/apps/wrf/run_wps-real_openmpi.pbs b/apps/wrf/run_wps-real_openmpi.pbs new file mode 100644 index 000000000..d735bc539 --- /dev/null +++ b/apps/wrf/run_wps-real_openmpi.pbs @@ -0,0 +1,50 @@ +#!/bin/bash +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv2"} +INPUTDIR=${2:-$INPUTDIR} +INPUTDIR=${INPUTDIR:-"/apps/hbv2/wrf-openmpi/WRF-4.1.5/run"} + +echo "INPUTDIR:" $INPUTDIR +echo "SKU_TYPE:" $SKU_TYPE + +SHARED_APP=${SHARED_APP:-/apps} + +if [ -z $INPUTDIR ]; then + echo "INPUTDIR parameter is required" + exit 1 +fi + +if ! rpm -q python3; then + sudo yum install -y python3 +fi + +echo "source envs" +source /data/azurehpc/apps/wrf/env-variables + +NPROCS=`cat $PBS_NODEFILE | wc -l` +echo "NPROCS:"$NPROCS + +echo "PBS_O_WORKDIR:" $PBS_O_WORKDIR +echo "INPUTDIR: " ${INPUTDIR} + +cd ${INPUTDIR} +pwd + +mpi_options="-x LD_LIBRARY_PATH " +#if [ -n $LD_PRELOAD ]; then +# mpi_options+="-x LD_PRELOAD" +#fi +echo "PBS_NODEFILE:" $PBS_NODEFILE +echo "mpi_options: " $mpi_options + +#cp -f namelist.input namelist.input.old +#cp -f /data/wrfdata/WRF_benchmarks/cases/new_conus2.5km/namelist.input . +cp /apps/hbv2/wps-openmpi/WPS-4.1/met_em.d0*.nc . + +#### Run real.exe +echo "-- Run real.exe" +mpirun $mpi_options -n $NPROCS --hostfile $PBS_NODEFILE --bind-to numa ./real.exe +#mpirun --allow-run-as-root ./real.exe + + + diff --git a/apps/wrf/run_wps_openmpi.pbs b/apps/wrf/run_wps_openmpi.pbs new file mode 100644 index 000000000..0d7f7cf14 --- /dev/null +++ b/apps/wrf/run_wps_openmpi.pbs @@ -0,0 +1,60 @@ +#!/bin/bash +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv2"} +INPUTDIR=${2:-$INPUTDIR} +INPUTDIR=${INPUTDIR:-"/apps/hbv2/wps-openmpi/WPS-4.1/"} + +echo "INPUTDIR:" $INPUTDIR +echo "SKU_TYPE:" $SKU_TYPE + +SHARED_APP=${SHARED_APP:-/apps} + +if [ -z $INPUTDIR ]; then + echo "INPUTDIR parameter is required" + exit 1 +fi + +if ! rpm -q python3; then + sudo yum install -y python3 +fi + +echo "source envs" +source /data/azurehpc/apps/wrf/env-variables + +NPROCS=`cat $PBS_NODEFILE | wc -l` +echo "NPROCS:"$NPROCS + +echo "PBS_O_WORKDIR:" $PBS_O_WORKDIR +echo "INPUTDIR: " ${INPUTDIR} + +cd ${INPUTDIR} +pwd + +mpi_options="-x LD_LIBRARY_PATH " +#if [ -n $LD_PRELOAD ]; then +# mpi_options+="-x LD_PRELOAD" +#fi +echo "PBS_NODEFILE:" $PBS_NODEFILE +echo "mpi_options: " $mpi_options + +#### Run geogrid.exe +echo "-- Run geogrid.exe" +#mpirun $mpi_options -n $NPROCS --hostfile $PBS_NODEFILE --bind-to numa ./geogrid.exe +mpirun -n $NPROCS ./geogrid.exe + +echo "-- VTable" +ln -s ungrib/Variable_Tables/Vtable.GFS Vtable + +echo "-- link_grib.csh" +./link_grib.csh /data/wrfdata/gfs_files/gfs.0p25.* + +echo "-- ungrib.exe" +./ungrib.exe >& ungrib.log + +#### Run metgrid.exe +echo "-- Run metgrid.exe" +#mpirun $mpi_options -n $NPROCS --hostfile $PBS_NODEFILE --bind-to numa metgrid.exe +mpirun -n $NPROCS ./metgrid.exe + + + diff --git a/apps/wrf/start-full-run.sh b/apps/wrf/start-full-run.sh new file mode 100644 index 000000000..c9ec13d69 --- /dev/null +++ b/apps/wrf/start-full-run.sh @@ -0,0 +1,13 @@ +# Run WPS job +echo "Submiting WPS Job" +JOB_WPS=$(qsub -l select=1:nodearray=execute2:ncpus=120:mpiprocs=120,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wps-openmpi/WPS-4.1/" /data/azurehpc/apps/wrf/run_wps_openmpi.pbs) +echo "WPS Job ID:$JOB_WPS" + +# Run Real job +echo "Submiting Real Job" +JOB_Real=$(qsub -W depend=afterok:$JOB_WPS -l select=1:nodearray=execute2:ncpus=120:mpiprocs=120,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run/" /data/azurehpc/apps/wrf/run_real_openmpi.pbs) +echo "Real Job ID:$JOB_Real" + +# Run WRF job +echo "Submiting WRF Job" +qsub -W depend=afterok:$JOB_Real -l select=1:nodearray=execute2:ncpus=120:mpiprocs=120,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run/" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs diff --git a/apps/wrf/images/Create-WRF-Cluster1.png b/experimental/wrf_on_cyclecloud/images/Create-WRF-Cluster1.png similarity index 100% rename from apps/wrf/images/Create-WRF-Cluster1.png rename to experimental/wrf_on_cyclecloud/images/Create-WRF-Cluster1.png diff --git a/apps/wrf/images/Create-WRF-Cluster2.png b/experimental/wrf_on_cyclecloud/images/Create-WRF-Cluster2.png similarity index 100% rename from apps/wrf/images/Create-WRF-Cluster2.png rename to experimental/wrf_on_cyclecloud/images/Create-WRF-Cluster2.png diff --git a/apps/wrf/images/Create-WRF-Cluster2a.png b/experimental/wrf_on_cyclecloud/images/Create-WRF-Cluster2a.png similarity index 100% rename from apps/wrf/images/Create-WRF-Cluster2a.png rename to experimental/wrf_on_cyclecloud/images/Create-WRF-Cluster2a.png diff --git a/apps/wrf/images/Create-WRF-Cluster3.png b/experimental/wrf_on_cyclecloud/images/Create-WRF-Cluster3.png similarity index 100% rename from apps/wrf/images/Create-WRF-Cluster3.png rename to experimental/wrf_on_cyclecloud/images/Create-WRF-Cluster3.png diff --git a/apps/wrf/images/Import-Template1.png b/experimental/wrf_on_cyclecloud/images/Import-Template1.png similarity index 100% rename from apps/wrf/images/Import-Template1.png rename to experimental/wrf_on_cyclecloud/images/Import-Template1.png diff --git a/apps/wrf/images/NFS-Cluster1.png b/experimental/wrf_on_cyclecloud/images/NFS-Cluster1.png similarity index 100% rename from apps/wrf/images/NFS-Cluster1.png rename to experimental/wrf_on_cyclecloud/images/NFS-Cluster1.png diff --git a/apps/wrf/images/NFS-Cluster2.png b/experimental/wrf_on_cyclecloud/images/NFS-Cluster2.png similarity index 100% rename from apps/wrf/images/NFS-Cluster2.png rename to experimental/wrf_on_cyclecloud/images/NFS-Cluster2.png diff --git a/apps/wrf/images/NFS-Cluster3.png b/experimental/wrf_on_cyclecloud/images/NFS-Cluster3.png similarity index 100% rename from apps/wrf/images/NFS-Cluster3.png rename to experimental/wrf_on_cyclecloud/images/NFS-Cluster3.png diff --git a/apps/wrf/images/Start-WRF-Cluster1.png b/experimental/wrf_on_cyclecloud/images/Start-WRF-Cluster1.png similarity index 100% rename from apps/wrf/images/Start-WRF-Cluster1.png rename to experimental/wrf_on_cyclecloud/images/Start-WRF-Cluster1.png diff --git a/apps/wrf/images/Start-WRF-Cluster2.png b/experimental/wrf_on_cyclecloud/images/Start-WRF-Cluster2.png similarity index 100% rename from apps/wrf/images/Start-WRF-Cluster2.png rename to experimental/wrf_on_cyclecloud/images/Start-WRF-Cluster2.png diff --git a/experimental/wrf_on_cyclecloud/readme copy.md b/experimental/wrf_on_cyclecloud/readme copy.md new file mode 100644 index 000000000..41ec62421 --- /dev/null +++ b/experimental/wrf_on_cyclecloud/readme copy.md @@ -0,0 +1,456 @@ +# Install and run WRF v4 and WPS v4 - Setup guide + +Summary of this procedure: +- Installs CycleCloud environment from scratch +- Creates NFS storage server using CycleCloud cluster template +- Installs WRF/WPS v4 software (via “azurehpc” scripts) +- Submit jobs to run WRF v4 application for testing + +## Prerequisites + +- As this procedure uses HBv2 VMs to run WRFv4 simulations, you may need to request quota increase for this type of SKU in the subscription and region you will deploy the environment. + + +## Install Azure CycleCloud + +Follow the steps to [Install and Setup CycleCloud](../../tutorials/cyclecloud/install-cyclecloud.md) + + +## Create NFS Storage cluster +- It can be possible to include an external NFS share at this point (in the example, I have shared from an NFS cluster using on CycleCloud template) + +![NFS-Cluster1](images/NFS-Cluster1.png) +![NFS-Cluster2](images/NFS-Cluster2.png) +![NFS-Cluster3](images/NFS-Cluster3.png) + +Changes: +- Change OS to use CentOS 7 versions +- Use +300GB storage size (space to download WRF data) +- Change cloud-init as following: +- Confirm the IP address of your NFS storage and change it below accordingly: + +``` +#!/bin/bash + +set -x +yum install -y epel-release +yum install -y Lmod at +systemctl enable --now atd.service +cat </mnt/exportfs.sh +#!/bin/bash +set -x +mkdir -p /mnt/exports/data /mnt/exports/apps +sudo exportfs -o rw,sync,no_root_squash 10.4.0.0/20:/mnt/exports/data +sudo exportfs -o rw,sync,no_root_squash 10.4.0.0/20:/mnt/exports/apps +EOF +chmod 755 /mnt/exportfs.sh +at now + 2 minute -f /mnt/exportfs.sh +``` + +Connect to NFS storage cluster and check the mounts are correct: +``` +# check mount +sudo exportfs -s +``` + +## Setup WRF cluster using HBv2 VM +Summary of steps: +- Start NFS storage cluster on CycleCloud +- Import WRF cluster template (from “azurehpc” scripts) +- Start WRF cluster using HBv2 VM +- Install WRF/WPS 4 software (from “azurehpc” scripts) +- Download data for WRF 4 +- Edit data locations in WRF config files +- Generate WRF 4 input files, change permissions +- Run WRF 4 applications for testing + + +### Import custom CycleCloud template for WRF + +After start NFS storage cluster, ssh to it and download azurehpc GitHub repository +``` +## Download azurehpc GitHub repository +cd /data +#git clone https://github.com/Azure/azurehpc.git +git clone https://github.com/marcusgaspar/azurehpc.git +``` + +Follow the procedures [here](https://docs.microsoft.com/en-us/azure/cyclecloud/tutorials/modify-cluster-template?view=cyclecloud-8#import-the-new-cluster-template) to upload the Cycle Cloud custom template created for WRF. +Use the template: [opbswrf-template.txt](opbswrf-template.txt) +``` +## Import CycleCloud template +cd /data/azurehpc/apps/wrf/ +cyclecloud import_template opbswrf -f opbswrf-template.txt --force +``` +After you import the template, you will see the WRF template in CycleCloud Portal: + +![Import-Template1](images/Import-Template1.png) + +### Create new WRF cluster +Choose the WRF Cluster name: +![Create-WRF-Cluster1](images/Create-WRF-Cluster1.png) + +Choose the SKUs you want use for testing and the subnet for the compute VMs: +![Create-WRF-Cluster2](images/Create-WRF-Cluster2a.png) + +Check **Additional NFS Mount** options and change to the correct NFS IP address, related to your environment. Don’t need to change NFS Mount Point and NFS Export Path +![Create-WRF-Cluster3](images/Create-WRF-Cluster3.png) + +Keep the default value for the other parameters, save it and start the cluster. + +### Spin Execute Node with HBv2 +After the cluster is up and running, start a worker node using HBv2 VM: +![Start-WRF-Cluster1](images/Start-WRF-Cluster1.png) +![Start-WRF-Cluster2](images/Start-WRF-Cluster2.png) +Click Add. + +### Install WRF/WPS 4 software (via “azurehpc” scripts) + +Ssh to the Execute Node (HBv2 VM) and run the following commands: + +**Important 1**: You must have the /apps and /data volumes correctly mounted on head and worker nodes. It is required for WRF setup scripts. + +**Important 2**: You need to be root user to run all commands below. +``` +# need to be root user for building everything +sudo su - + +###### Setup Spack +cd /data/azurehpc/apps/spack +./build_spack.sh hbv2 +source /apps/spack/0.16.0/spack/share/spack/setup-env.sh + +###### Setup WRF +# MPI_TYPE : openmpi or mvapich2 +# SKU_TYPE : hb, hbv2, hc + +# This procedure uses openmpi and hbv2 +cd /data/azurehpc/apps/wrf/ +./build_wrf.sh openmpi hbv2 +./build_wps.sh openmpi hbv2 +``` + +Create the env-variables file: +``` +###### Source Variables +cd /data/azurehpc/apps/wrf +vi env-variables +``` +And copy the content below to this file and save it: +``` +SKU_TYPE=hbv2 +SHARED_APP=${SHARED_APP:-/apps} + +if ! rpm -q python3; then + sudo yum install -y python3 +fi +source /etc/profile.d/modules.sh +export MODULEPATH=${SHARED_APP}/modulefiles/${SKU_TYPE}:$MODULEPATH +module use ${SHARED_APP}/modulefiles +module load spack/spack +source $SPACK_SETUP_ENV +spack load netcdf-fortran^openmpi +spack load hdf5^openmpi +spack load perl +module use /usr/share/Modules/modulefiles +module load mpi/openmpi-4.1.0 +module load gcc-9.2.0 +module load wrf/4.1.5-openmpi +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi +``` +Run the command: +``` +# Keep as root +#sudo su - +source /data/azurehpc/apps/wrf/env-variables +``` + +### Download WFR Input DATA (new_conus2.5km) +WPS (WRF preprocessing system) is used to create WRF input cases. WRF v3 models are not compatible with WRF v4, so some WRF v4 input cases will need to be generated with WPS v4. +I will outline the procedure used to create a new_conus2.5km input case for WRF v4. + +References: +- [azurehpc/apps/wrf](https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html) +- [Static data downloads from ucar.edu](https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html) + +Run the commands below to download geopraphical static data for WPS v4: +``` +# Keep as root +#sudo su - + +mkdir /data/wrfdata +cd /data/wrfdata +git clone https://github.com/akirakyle/WRF_benchmarks.git +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/topo_10m.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/topo_2m.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/topo_30s.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/albedo_modis.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/maxsnowalb_modis.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/topo_gmted2010_30s.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/modis_landuse_20class_30s_with_lakes.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/soiltemp_1deg.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/soiltype_top_30s.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/soiltype_bot_30s.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/greenfrac_fpar_modis.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/lai_modis_10m.tar.bz2 +wget https://www2.mmm.ucar.edu/wrf/src/wps_files/orogwd_10m.tar.bz2 + +tar xjvf topo_10m.tar.bz2 +tar xjvf topo_2m.tar.bz2 +tar xjvf topo_30s.tar.bz2 +tar xjvf albedo_modis.tar.bz2 +tar xjvf maxsnowalb_modis.tar.bz2 +tar xjvf topo_gmted2010_30s.tar.bz2 +tar xjvf modis_landuse_20class_30s_with_lakes.tar.bz2 +tar xjvf soiltemp_1deg.tar.bz2 +tar xjvf soiltype_top_30s.tar.bz2 +tar xjvf soiltype_bot_30s.tar.bz2 +tar xjvf greenfrac_fpar_modis.tar.bz2 +tar xjvf lai_modis_10m.tar.bz2 +tar xjvf orogwd_10m.tar.bz2 +``` + +Download the data from https://rda.ucar.edu/datasets/ds084.1/ +1) Register to the site and go to the "Data Access" section and download the following data: +2) Data Access > Web File Listing > Complete File List > 2018 > 2018-06-17 +3) Select: from gfs.0p25.2018061700.f000.grib2 to gfs.0p25.2018061712.f384.grib2 (93 files around 20GB) +4) Select Python Download Script and upload it to the worker VM as download_gfs_files.py. + +Run the commands and be sure of copying the download_gfs_files.py the folder below: +``` +# Keep as root +#sudo su - + +mkdir /data/wrfdata/gfs_files +cd /data/wrfdata/gfs_files +python download_gfs_files.py +``` + +### Generate WRF4 Input Files +Modify your **namelist.wps** file, setting the correct paths for **geog_data_path**, **opt_geogrid_tbl_path** and **opt_metgrid_tbl_path**: +``` +# Keep as root +#sudo su - + +#### Change Data Locations +cd /apps/hbv2/wps-openmpi/WPS-4.1 +cp namelist.wps namelist.wps.old +cp /data/wrfdata/WRF_benchmarks/cases/new_conus2.5km/namelist.wps namelist.wps + +vi /apps/hbv2/wps-openmpi/WPS-4.1/namelist.wps + geog_data_path = '/data/wrfdata/', + opt_geogrid_tbl_path = '/apps/hbv2/wps-openmpi/WPS-4.1/geogrid/', + opt_metgrid_tbl_path = '/apps/hbv2/wps-openmpi/WPS-4.1/metgrid/', +``` + +### Run Applications: + +#### Run geogrid.exe and metgrid.exe +``` +# Keep as root +sudo su - + +# Source variables +source /data/azurehpc/apps/wrf/env-variables + +#### Run geogrid.exe +cd /apps/hbv2/wps-openmpi/WPS-4.1/ +mpirun --allow-run-as-root ./geogrid.exe +ln -s ungrib/Variable_Tables/Vtable.GFS Vtable +./link_grib.csh /data/wrfdata/gfs_files/gfs.0p25.20180617* +./ungrib.exe >& ungrib.log + +#### Run metgrid.exe +mpirun --allow-run-as-root ./metgrid.exe +``` + +Expected results 1: +``` +# ! Successful completion of metgrid. ! +# You may receive also some warnings: +Note: The following floating-point exceptions are signalling: IEEE_OVERFLOW_FLAG IEEE_UNDERFLOW_FLAG IEEE_DENORMAL +``` +Expected results 2: +You will find the files below: +``` +ls -l *met_em.d* +# Should see the following files: +# met_em.d01.2018-06-17_12:00:00.nc +# met_em.d01.2018-06-17_09:00:00.nc +# met_em.d01.2018-06-17_06:00:00.nc +# met_em.d01.2018-06-17_03:00:00.nc +# met_em.d01.2018-06-17_00:00:00.nc +``` + +#### Run real.exe +``` +# Keep as root +sudo su - + +cd /apps/hbv2/wrf-openmpi/WRF-4.1.5/run +cp -f namelist.input namelist.input.old +cp -f /data/wrfdata/WRF_benchmarks/cases/new_conus2.5km/namelist.input . +cp /apps/hbv2/wps-openmpi/WPS-4.1/met_em.d0*.nc . +mpirun --allow-run-as-root ./real.exe +``` + +Expected results: +The following files should be generated in /apps/hbv2/wrf-openmpi/WRF-4.1.5/run/ +- wrfbdy_d01 +- wrfinput_d01 +``` +ls -l /apps/hbv2/wrf-openmpi/WRF-4.1.5/run/*_d0* +``` + +#### Change Permissions on Files +Grant permission to users that will run the WRF to access the files on /data and /apps. +For my environment, I used "azureadmin" as CycleCloud admin. +Change the user below accordingly. + +``` +# grant permission to users that will run the WRF to access the files. +chown -R :cyclecloud /data +chown -R :cyclecloud /apps +chmod -R g+w /data +chmod -R g+w /apps +``` + +**If you get here, you have completed the WRF v4 setup!** + +Now you can shutdown and terminate the HBv2 worker node used to perform these setup procedures. + +## Running and Testing + +Connect to head node of WRF Cluster and submit WRF v4 simulation job: + +> Where SKU_TYPE is the sku type you are running on and INPUTDIR contains the location of wrf input files (namelist.input, wrfbdy_d01 and wrfinput_d01) + +- Test 1 + - SKU: Standard_HB120rs_v2 + - Nodes: 1 + - Processes per node: 60 + - MPI processes per node: 60 +``` +mkdir ~/test1 +cd ~/test1 + +qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +``` + +- Test 2 + - SKU: Standard_HB120rs_v2 + - Nodes: **2** + - Processes per node: 60 + - MPI processes per node: 60 +``` +mkdir ~/test2 +cd ~/test2 + +qsub -l select=2:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +``` + +- Test 3 + - SKU: Standard_HB120rs_v2 + - Nodes: **3** + - Processes per node: 60 + - MPI processes per node: 60 +``` +mkdir ~/test3 +cd ~/test3 + +qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +``` + +- Test 4 + - SKU: Standard_HB120rs_v2 + - Nodes: **4** + - Processes per node: 60 + - MPI processes per node: 60 +``` +mkdir ~/test4 +cd ~/test4 + +qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +``` + +- Test 5 + - SKU: Standard_**HB120rs_v3** + - Nodes: **3** + - Processes per node: 60 + - MPI processes per node: 60 +``` +mkdir ~/test5 +cd ~/test5 + +qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +``` + +- Test 6 + - SKU: Standard_**HB120-64rs_v3** + - Nodes: 3 + - Processes per node: **64** + - MPI processes per node: **64** +``` +mkdir ~/test6 +cd ~/test6 + +qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +``` + +- Test 7 + - SKU: Standard_**HB120rs_v3** + - Nodes: 3 + - Processes per node: 64 + - MPI processes per node: 64 +``` +mkdir ~/test7 +cd ~/test7 + +qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +``` + +- Test 8 + - SKU: Standard_**HB120-64rs_v2** + - Nodes: 3 + - Processes per node: 64 + - MPI processes per node: 64 +``` +mkdir ~/test8 +cd ~/test8 + +qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +``` + +- Test 9 + - SKU: Standard_**HB120rs_v3** + - Nodes: 3 + - Processes per node: **120** + - MPI processes per node: **120** +``` +mkdir ~/test9 +cd ~/test9 + +qsub -l select=3:nodearray=execute1:ncpus=120:mpiprocs=120,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +``` + +### Validate Job Status +To validate the status of the job submission, you can use: +``` +# check jobs history +qstat -x + +# check jobs history showing the wall clock duration +qstat -xG + +# check jobs history showing the execution details +qstat -xf +``` + + + + + + diff --git a/experimental/wrf_on_cyclecloud/readme.md b/experimental/wrf_on_cyclecloud/readme.md new file mode 100644 index 000000000..26c8b3361 --- /dev/null +++ b/experimental/wrf_on_cyclecloud/readme.md @@ -0,0 +1,107 @@ +# Install and run WRF v4 and WPS v4 - End-to-end Setup guide for a Lab environment using Cycle Cloud + +Summary of this procedure: +- Installs CycleCloud Lab environment from scratch +- Creates NFS storage server using CycleCloud cluster template +- Installs WPS/WRF v4 software (via “azurehpc” scripts) + +## Prerequisites +- As this procedure uses HBv2 VMs to run WRFv4 simulations, you may need to request quota increase for this type of SKU in the subscription and region you will deploy the environment. + + +## Install Azure CycleCloud Lab environment +Follow the steps to [Install and Setup CycleCloud Lab Environment](../../tutorials/cyclecloud/install-cyclecloud.md) from scratch. + + +## Create NFS Storage cluster +- It can be possible to include an external NFS share at this point (in the example, I have shared from an NFS cluster using on CycleCloud template) +- As this procedure is for a lab environment we are creating a NFS storage cluster, using the standard template in Cycle Cloud. For production environments, you could use a high performance storage solutions, such as Azure NetApp Files (ANF), for instance. + + +![NFS-Cluster1](images/NFS-Cluster1.png) +![NFS-Cluster2](images/NFS-Cluster2.png) +![NFS-Cluster3](images/NFS-Cluster3.png) + +Changes: +- Change OS to use CentOS 7 versions +- Use +300GB storage size (space to download WRF data) +- Change cloud-init as following: +- Confirm the IP address of your NFS storage and change it below accordingly: + +``` +#!/bin/bash + +set -x +yum install -y epel-release +yum install -y Lmod at +systemctl enable --now atd.service +cat </mnt/exportfs.sh +#!/bin/bash +set -x +mkdir -p /mnt/exports/data /mnt/exports/apps +sudo exportfs -o rw,sync,no_root_squash 10.4.0.0/20:/mnt/exports/data +sudo exportfs -o rw,sync,no_root_squash 10.4.0.0/20:/mnt/exports/apps +EOF +chmod 755 /mnt/exportfs.sh +at now + 2 minute -f /mnt/exportfs.sh +``` + +Connect to NFS storage cluster and check the mounts are correct: +``` +# check mount +sudo exportfs -s +``` + +## Setup WRF cluster using HBv2 VM +Summary of steps: +- Import WRF cluster template (from “azurehpc” scripts) +- Start WRF cluster using HBv2 VM +- Install WRF/WPS v4 software (from “azurehpc” scripts) + + +### Import custom CycleCloud template for WRF + +- Start NFS storage cluster + +- SSH to it and download azurehpc GitHub repository to the /data folder. +``` +## Download azurehpc GitHub repository +cd /data +git clone https://github.com/Azure/azurehpc.git +``` + +Follow the procedures [here](https://docs.microsoft.com/en-us/azure/cyclecloud/tutorials/modify-cluster-template?view=cyclecloud-8#import-the-new-cluster-template) to upload the Cycle Cloud custom template created for WRF. +Use the template: [opbswrf-template.txt](opbswrf-template.txt) +``` +## Import CycleCloud template +cd /data/azurehpc/apps/wrf/ +cyclecloud import_template opbswrf -f opbswrf-template.txt --force +``` +After you import the template, you will see the WRF template in CycleCloud Portal: + +![Import-Template1](images/Import-Template1.png) + +### Create new WRF cluster +Choose the WRF Cluster name: +![Create-WRF-Cluster1](images/Create-WRF-Cluster1.png) + +Choose the SKUs you want use for testing and the subnet for the compute VMs: +![Create-WRF-Cluster2](images/Create-WRF-Cluster2a.png) + +Check **Additional NFS Mount** options and change to the correct NFS IP address, related to your environment. Don’t need to change NFS Mount Point and NFS Export Path +![Create-WRF-Cluster3](images/Create-WRF-Cluster3.png) + +Keep the default value for the other parameters, save it and start the cluster. + +### Spin Execute Node with HBv2 +After the cluster is up and running, start a worker node using HBv2 VM: +![Start-WRF-Cluster1](images/Start-WRF-Cluster1.png) +![Start-WRF-Cluster2](images/Start-WRF-Cluster2.png) +Click Add. + +### Install WPS/WRF v4 software (via “azurehpc” scripts) + +Now you have a WRF cluster properly configured and running in Cycle Cloud. + +You can follow the instructions here to finish the WPS/WRF installation: [Install and run WPS and WRF v4 - Setup guide](../../wrf/../README.md) + From 52e451e3b66eae9b153434ded55d9dd4d3974ba6 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 2 Dec 2022 14:49:34 -0300 Subject: [PATCH 30/75] small changes --- experimental/wrf_on_cyclecloud/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experimental/wrf_on_cyclecloud/readme.md b/experimental/wrf_on_cyclecloud/readme.md index 26c8b3361..8dcaf7dad 100644 --- a/experimental/wrf_on_cyclecloud/readme.md +++ b/experimental/wrf_on_cyclecloud/readme.md @@ -56,7 +56,7 @@ sudo exportfs -s Summary of steps: - Import WRF cluster template (from “azurehpc” scripts) - Start WRF cluster using HBv2 VM -- Install WRF/WPS v4 software (from “azurehpc” scripts) +- Install WPS/WRF v4 software (from “azurehpc” scripts) ### Import custom CycleCloud template for WRF From a480bd4fef87f51042c7db92a41606ea00019893 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 2 Dec 2022 14:51:07 -0300 Subject: [PATCH 31/75] fix link --- experimental/wrf_on_cyclecloud/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experimental/wrf_on_cyclecloud/readme.md b/experimental/wrf_on_cyclecloud/readme.md index 8dcaf7dad..6a8ced6db 100644 --- a/experimental/wrf_on_cyclecloud/readme.md +++ b/experimental/wrf_on_cyclecloud/readme.md @@ -103,5 +103,5 @@ Click Add. Now you have a WRF cluster properly configured and running in Cycle Cloud. -You can follow the instructions here to finish the WPS/WRF installation: [Install and run WPS and WRF v4 - Setup guide](../../wrf/../README.md) +You can follow the instructions here to finish the WPS/WRF installation: [Install and run WPS and WRF v4 - Setup guide](../../wrf/README.md) From 74e1706355afa53481dbafbb184b624a71f20c82 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 2 Dec 2022 14:52:22 -0300 Subject: [PATCH 32/75] fix link --- experimental/wrf_on_cyclecloud/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experimental/wrf_on_cyclecloud/readme.md b/experimental/wrf_on_cyclecloud/readme.md index 6a8ced6db..627789828 100644 --- a/experimental/wrf_on_cyclecloud/readme.md +++ b/experimental/wrf_on_cyclecloud/readme.md @@ -103,5 +103,5 @@ Click Add. Now you have a WRF cluster properly configured and running in Cycle Cloud. -You can follow the instructions here to finish the WPS/WRF installation: [Install and run WPS and WRF v4 - Setup guide](../../wrf/README.md) +You can follow the instructions here to finish the WPS/WRF installation: [Install and run WPS and WRF v4 - Setup guide](/apps/wrf/readme.md) From d9227ad09a5d5ac68caee4c42e5c324aa3b623c2 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 2 Dec 2022 14:58:03 -0300 Subject: [PATCH 33/75] link --- experimental/wrf_on_cyclecloud/readme.md | 1 - 1 file changed, 1 deletion(-) diff --git a/experimental/wrf_on_cyclecloud/readme.md b/experimental/wrf_on_cyclecloud/readme.md index 627789828..8fe59f5b3 100644 --- a/experimental/wrf_on_cyclecloud/readme.md +++ b/experimental/wrf_on_cyclecloud/readme.md @@ -100,7 +100,6 @@ After the cluster is up and running, start a worker node using HBv2 VM: Click Add. ### Install WPS/WRF v4 software (via “azurehpc” scripts) - Now you have a WRF cluster properly configured and running in Cycle Cloud. You can follow the instructions here to finish the WPS/WRF installation: [Install and run WPS and WRF v4 - Setup guide](/apps/wrf/readme.md) From b65cbed91d4ef79ba1cfe92453cbebd92cfb3d80 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Mon, 5 Dec 2022 14:32:33 -0300 Subject: [PATCH 34/75] fix repo --- apps/wrf/readme.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index e00dd35a2..8dbcd1bd9 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -25,8 +25,7 @@ Spin up and SSH to a Worker Node VM (HBv2). Be sure you have downloaded azurehpc GitHub repository in /data folder: ``` cd /data -#git clone https://github.com/Azure/azurehpc.git -git clone https://github.com/marcusgaspar/azurehpc.git +git clone https://github.com/Azure/azurehpc.git ``` Then, run the following commands: From 642b875c212868a6f80b757b988788ba58ba926b Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Tue, 6 Dec 2022 08:49:48 -0300 Subject: [PATCH 35/75] clean up --- apps/wrf/run_wps-real_openmpi.pbs | 50 -- experimental/wrf_on_cyclecloud/readme copy.md | 456 ------------------ 2 files changed, 506 deletions(-) delete mode 100644 apps/wrf/run_wps-real_openmpi.pbs delete mode 100644 experimental/wrf_on_cyclecloud/readme copy.md diff --git a/apps/wrf/run_wps-real_openmpi.pbs b/apps/wrf/run_wps-real_openmpi.pbs deleted file mode 100644 index d735bc539..000000000 --- a/apps/wrf/run_wps-real_openmpi.pbs +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -SKU_TYPE=${1:-$SKU_TYPE} -SKU_TYPE=${SKU_TYPE:-"hbv2"} -INPUTDIR=${2:-$INPUTDIR} -INPUTDIR=${INPUTDIR:-"/apps/hbv2/wrf-openmpi/WRF-4.1.5/run"} - -echo "INPUTDIR:" $INPUTDIR -echo "SKU_TYPE:" $SKU_TYPE - -SHARED_APP=${SHARED_APP:-/apps} - -if [ -z $INPUTDIR ]; then - echo "INPUTDIR parameter is required" - exit 1 -fi - -if ! rpm -q python3; then - sudo yum install -y python3 -fi - -echo "source envs" -source /data/azurehpc/apps/wrf/env-variables - -NPROCS=`cat $PBS_NODEFILE | wc -l` -echo "NPROCS:"$NPROCS - -echo "PBS_O_WORKDIR:" $PBS_O_WORKDIR -echo "INPUTDIR: " ${INPUTDIR} - -cd ${INPUTDIR} -pwd - -mpi_options="-x LD_LIBRARY_PATH " -#if [ -n $LD_PRELOAD ]; then -# mpi_options+="-x LD_PRELOAD" -#fi -echo "PBS_NODEFILE:" $PBS_NODEFILE -echo "mpi_options: " $mpi_options - -#cp -f namelist.input namelist.input.old -#cp -f /data/wrfdata/WRF_benchmarks/cases/new_conus2.5km/namelist.input . -cp /apps/hbv2/wps-openmpi/WPS-4.1/met_em.d0*.nc . - -#### Run real.exe -echo "-- Run real.exe" -mpirun $mpi_options -n $NPROCS --hostfile $PBS_NODEFILE --bind-to numa ./real.exe -#mpirun --allow-run-as-root ./real.exe - - - diff --git a/experimental/wrf_on_cyclecloud/readme copy.md b/experimental/wrf_on_cyclecloud/readme copy.md deleted file mode 100644 index 41ec62421..000000000 --- a/experimental/wrf_on_cyclecloud/readme copy.md +++ /dev/null @@ -1,456 +0,0 @@ -# Install and run WRF v4 and WPS v4 - Setup guide - -Summary of this procedure: -- Installs CycleCloud environment from scratch -- Creates NFS storage server using CycleCloud cluster template -- Installs WRF/WPS v4 software (via “azurehpc” scripts) -- Submit jobs to run WRF v4 application for testing - -## Prerequisites - -- As this procedure uses HBv2 VMs to run WRFv4 simulations, you may need to request quota increase for this type of SKU in the subscription and region you will deploy the environment. - - -## Install Azure CycleCloud - -Follow the steps to [Install and Setup CycleCloud](../../tutorials/cyclecloud/install-cyclecloud.md) - - -## Create NFS Storage cluster -- It can be possible to include an external NFS share at this point (in the example, I have shared from an NFS cluster using on CycleCloud template) - -![NFS-Cluster1](images/NFS-Cluster1.png) -![NFS-Cluster2](images/NFS-Cluster2.png) -![NFS-Cluster3](images/NFS-Cluster3.png) - -Changes: -- Change OS to use CentOS 7 versions -- Use +300GB storage size (space to download WRF data) -- Change cloud-init as following: -- Confirm the IP address of your NFS storage and change it below accordingly: - -``` -#!/bin/bash - -set -x -yum install -y epel-release -yum install -y Lmod at -systemctl enable --now atd.service -cat </mnt/exportfs.sh -#!/bin/bash -set -x -mkdir -p /mnt/exports/data /mnt/exports/apps -sudo exportfs -o rw,sync,no_root_squash 10.4.0.0/20:/mnt/exports/data -sudo exportfs -o rw,sync,no_root_squash 10.4.0.0/20:/mnt/exports/apps -EOF -chmod 755 /mnt/exportfs.sh -at now + 2 minute -f /mnt/exportfs.sh -``` - -Connect to NFS storage cluster and check the mounts are correct: -``` -# check mount -sudo exportfs -s -``` - -## Setup WRF cluster using HBv2 VM -Summary of steps: -- Start NFS storage cluster on CycleCloud -- Import WRF cluster template (from “azurehpc” scripts) -- Start WRF cluster using HBv2 VM -- Install WRF/WPS 4 software (from “azurehpc” scripts) -- Download data for WRF 4 -- Edit data locations in WRF config files -- Generate WRF 4 input files, change permissions -- Run WRF 4 applications for testing - - -### Import custom CycleCloud template for WRF - -After start NFS storage cluster, ssh to it and download azurehpc GitHub repository -``` -## Download azurehpc GitHub repository -cd /data -#git clone https://github.com/Azure/azurehpc.git -git clone https://github.com/marcusgaspar/azurehpc.git -``` - -Follow the procedures [here](https://docs.microsoft.com/en-us/azure/cyclecloud/tutorials/modify-cluster-template?view=cyclecloud-8#import-the-new-cluster-template) to upload the Cycle Cloud custom template created for WRF. -Use the template: [opbswrf-template.txt](opbswrf-template.txt) -``` -## Import CycleCloud template -cd /data/azurehpc/apps/wrf/ -cyclecloud import_template opbswrf -f opbswrf-template.txt --force -``` -After you import the template, you will see the WRF template in CycleCloud Portal: - -![Import-Template1](images/Import-Template1.png) - -### Create new WRF cluster -Choose the WRF Cluster name: -![Create-WRF-Cluster1](images/Create-WRF-Cluster1.png) - -Choose the SKUs you want use for testing and the subnet for the compute VMs: -![Create-WRF-Cluster2](images/Create-WRF-Cluster2a.png) - -Check **Additional NFS Mount** options and change to the correct NFS IP address, related to your environment. Don’t need to change NFS Mount Point and NFS Export Path -![Create-WRF-Cluster3](images/Create-WRF-Cluster3.png) - -Keep the default value for the other parameters, save it and start the cluster. - -### Spin Execute Node with HBv2 -After the cluster is up and running, start a worker node using HBv2 VM: -![Start-WRF-Cluster1](images/Start-WRF-Cluster1.png) -![Start-WRF-Cluster2](images/Start-WRF-Cluster2.png) -Click Add. - -### Install WRF/WPS 4 software (via “azurehpc” scripts) - -Ssh to the Execute Node (HBv2 VM) and run the following commands: - -**Important 1**: You must have the /apps and /data volumes correctly mounted on head and worker nodes. It is required for WRF setup scripts. - -**Important 2**: You need to be root user to run all commands below. -``` -# need to be root user for building everything -sudo su - - -###### Setup Spack -cd /data/azurehpc/apps/spack -./build_spack.sh hbv2 -source /apps/spack/0.16.0/spack/share/spack/setup-env.sh - -###### Setup WRF -# MPI_TYPE : openmpi or mvapich2 -# SKU_TYPE : hb, hbv2, hc - -# This procedure uses openmpi and hbv2 -cd /data/azurehpc/apps/wrf/ -./build_wrf.sh openmpi hbv2 -./build_wps.sh openmpi hbv2 -``` - -Create the env-variables file: -``` -###### Source Variables -cd /data/azurehpc/apps/wrf -vi env-variables -``` -And copy the content below to this file and save it: -``` -SKU_TYPE=hbv2 -SHARED_APP=${SHARED_APP:-/apps} - -if ! rpm -q python3; then - sudo yum install -y python3 -fi -source /etc/profile.d/modules.sh -export MODULEPATH=${SHARED_APP}/modulefiles/${SKU_TYPE}:$MODULEPATH -module use ${SHARED_APP}/modulefiles -module load spack/spack -source $SPACK_SETUP_ENV -spack load netcdf-fortran^openmpi -spack load hdf5^openmpi -spack load perl -module use /usr/share/Modules/modulefiles -module load mpi/openmpi-4.1.0 -module load gcc-9.2.0 -module load wrf/4.1.5-openmpi -mpi_options="-x LD_LIBRARY_PATH " -if [ -n $LD_PRELOAD ]; then - mpi_options+="-x LD_PRELOAD" -fi -``` -Run the command: -``` -# Keep as root -#sudo su - -source /data/azurehpc/apps/wrf/env-variables -``` - -### Download WFR Input DATA (new_conus2.5km) -WPS (WRF preprocessing system) is used to create WRF input cases. WRF v3 models are not compatible with WRF v4, so some WRF v4 input cases will need to be generated with WPS v4. -I will outline the procedure used to create a new_conus2.5km input case for WRF v4. - -References: -- [azurehpc/apps/wrf](https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html) -- [Static data downloads from ucar.edu](https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html) - -Run the commands below to download geopraphical static data for WPS v4: -``` -# Keep as root -#sudo su - - -mkdir /data/wrfdata -cd /data/wrfdata -git clone https://github.com/akirakyle/WRF_benchmarks.git -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/topo_10m.tar.bz2 -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/topo_2m.tar.bz2 -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/topo_30s.tar.bz2 -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/albedo_modis.tar.bz2 -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/maxsnowalb_modis.tar.bz2 -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/topo_gmted2010_30s.tar.bz2 -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/modis_landuse_20class_30s_with_lakes.tar.bz2 -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/soiltemp_1deg.tar.bz2 -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/soiltype_top_30s.tar.bz2 -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/soiltype_bot_30s.tar.bz2 -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/greenfrac_fpar_modis.tar.bz2 -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/lai_modis_10m.tar.bz2 -wget https://www2.mmm.ucar.edu/wrf/src/wps_files/orogwd_10m.tar.bz2 - -tar xjvf topo_10m.tar.bz2 -tar xjvf topo_2m.tar.bz2 -tar xjvf topo_30s.tar.bz2 -tar xjvf albedo_modis.tar.bz2 -tar xjvf maxsnowalb_modis.tar.bz2 -tar xjvf topo_gmted2010_30s.tar.bz2 -tar xjvf modis_landuse_20class_30s_with_lakes.tar.bz2 -tar xjvf soiltemp_1deg.tar.bz2 -tar xjvf soiltype_top_30s.tar.bz2 -tar xjvf soiltype_bot_30s.tar.bz2 -tar xjvf greenfrac_fpar_modis.tar.bz2 -tar xjvf lai_modis_10m.tar.bz2 -tar xjvf orogwd_10m.tar.bz2 -``` - -Download the data from https://rda.ucar.edu/datasets/ds084.1/ -1) Register to the site and go to the "Data Access" section and download the following data: -2) Data Access > Web File Listing > Complete File List > 2018 > 2018-06-17 -3) Select: from gfs.0p25.2018061700.f000.grib2 to gfs.0p25.2018061712.f384.grib2 (93 files around 20GB) -4) Select Python Download Script and upload it to the worker VM as download_gfs_files.py. - -Run the commands and be sure of copying the download_gfs_files.py the folder below: -``` -# Keep as root -#sudo su - - -mkdir /data/wrfdata/gfs_files -cd /data/wrfdata/gfs_files -python download_gfs_files.py -``` - -### Generate WRF4 Input Files -Modify your **namelist.wps** file, setting the correct paths for **geog_data_path**, **opt_geogrid_tbl_path** and **opt_metgrid_tbl_path**: -``` -# Keep as root -#sudo su - - -#### Change Data Locations -cd /apps/hbv2/wps-openmpi/WPS-4.1 -cp namelist.wps namelist.wps.old -cp /data/wrfdata/WRF_benchmarks/cases/new_conus2.5km/namelist.wps namelist.wps - -vi /apps/hbv2/wps-openmpi/WPS-4.1/namelist.wps - geog_data_path = '/data/wrfdata/', - opt_geogrid_tbl_path = '/apps/hbv2/wps-openmpi/WPS-4.1/geogrid/', - opt_metgrid_tbl_path = '/apps/hbv2/wps-openmpi/WPS-4.1/metgrid/', -``` - -### Run Applications: - -#### Run geogrid.exe and metgrid.exe -``` -# Keep as root -sudo su - - -# Source variables -source /data/azurehpc/apps/wrf/env-variables - -#### Run geogrid.exe -cd /apps/hbv2/wps-openmpi/WPS-4.1/ -mpirun --allow-run-as-root ./geogrid.exe -ln -s ungrib/Variable_Tables/Vtable.GFS Vtable -./link_grib.csh /data/wrfdata/gfs_files/gfs.0p25.20180617* -./ungrib.exe >& ungrib.log - -#### Run metgrid.exe -mpirun --allow-run-as-root ./metgrid.exe -``` - -Expected results 1: -``` -# ! Successful completion of metgrid. ! -# You may receive also some warnings: -Note: The following floating-point exceptions are signalling: IEEE_OVERFLOW_FLAG IEEE_UNDERFLOW_FLAG IEEE_DENORMAL -``` -Expected results 2: -You will find the files below: -``` -ls -l *met_em.d* -# Should see the following files: -# met_em.d01.2018-06-17_12:00:00.nc -# met_em.d01.2018-06-17_09:00:00.nc -# met_em.d01.2018-06-17_06:00:00.nc -# met_em.d01.2018-06-17_03:00:00.nc -# met_em.d01.2018-06-17_00:00:00.nc -``` - -#### Run real.exe -``` -# Keep as root -sudo su - - -cd /apps/hbv2/wrf-openmpi/WRF-4.1.5/run -cp -f namelist.input namelist.input.old -cp -f /data/wrfdata/WRF_benchmarks/cases/new_conus2.5km/namelist.input . -cp /apps/hbv2/wps-openmpi/WPS-4.1/met_em.d0*.nc . -mpirun --allow-run-as-root ./real.exe -``` - -Expected results: -The following files should be generated in /apps/hbv2/wrf-openmpi/WRF-4.1.5/run/ -- wrfbdy_d01 -- wrfinput_d01 -``` -ls -l /apps/hbv2/wrf-openmpi/WRF-4.1.5/run/*_d0* -``` - -#### Change Permissions on Files -Grant permission to users that will run the WRF to access the files on /data and /apps. -For my environment, I used "azureadmin" as CycleCloud admin. -Change the user below accordingly. - -``` -# grant permission to users that will run the WRF to access the files. -chown -R :cyclecloud /data -chown -R :cyclecloud /apps -chmod -R g+w /data -chmod -R g+w /apps -``` - -**If you get here, you have completed the WRF v4 setup!** - -Now you can shutdown and terminate the HBv2 worker node used to perform these setup procedures. - -## Running and Testing - -Connect to head node of WRF Cluster and submit WRF v4 simulation job: - -> Where SKU_TYPE is the sku type you are running on and INPUTDIR contains the location of wrf input files (namelist.input, wrfbdy_d01 and wrfinput_d01) - -- Test 1 - - SKU: Standard_HB120rs_v2 - - Nodes: 1 - - Processes per node: 60 - - MPI processes per node: 60 -``` -mkdir ~/test1 -cd ~/test1 - -qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs -``` - -- Test 2 - - SKU: Standard_HB120rs_v2 - - Nodes: **2** - - Processes per node: 60 - - MPI processes per node: 60 -``` -mkdir ~/test2 -cd ~/test2 - -qsub -l select=2:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs -``` - -- Test 3 - - SKU: Standard_HB120rs_v2 - - Nodes: **3** - - Processes per node: 60 - - MPI processes per node: 60 -``` -mkdir ~/test3 -cd ~/test3 - -qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs -``` - -- Test 4 - - SKU: Standard_HB120rs_v2 - - Nodes: **4** - - Processes per node: 60 - - MPI processes per node: 60 -``` -mkdir ~/test4 -cd ~/test4 - -qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs -``` - -- Test 5 - - SKU: Standard_**HB120rs_v3** - - Nodes: **3** - - Processes per node: 60 - - MPI processes per node: 60 -``` -mkdir ~/test5 -cd ~/test5 - -qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs -``` - -- Test 6 - - SKU: Standard_**HB120-64rs_v3** - - Nodes: 3 - - Processes per node: **64** - - MPI processes per node: **64** -``` -mkdir ~/test6 -cd ~/test6 - -qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs -``` - -- Test 7 - - SKU: Standard_**HB120rs_v3** - - Nodes: 3 - - Processes per node: 64 - - MPI processes per node: 64 -``` -mkdir ~/test7 -cd ~/test7 - -qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs -``` - -- Test 8 - - SKU: Standard_**HB120-64rs_v2** - - Nodes: 3 - - Processes per node: 64 - - MPI processes per node: 64 -``` -mkdir ~/test8 -cd ~/test8 - -qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs -``` - -- Test 9 - - SKU: Standard_**HB120rs_v3** - - Nodes: 3 - - Processes per node: **120** - - MPI processes per node: **120** -``` -mkdir ~/test9 -cd ~/test9 - -qsub -l select=3:nodearray=execute1:ncpus=120:mpiprocs=120,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs -``` - -### Validate Job Status -To validate the status of the job submission, you can use: -``` -# check jobs history -qstat -x - -# check jobs history showing the wall clock duration -qstat -xG - -# check jobs history showing the execution details -qstat -xf -``` - - - - - - From 79516f513591accdb40c8fc69911679a1468fb27 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Thu, 26 Jan 2023 18:12:42 -0300 Subject: [PATCH 36/75] temporary change while donte complete the PR. --- apps/wrf/readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 8dbcd1bd9..888c988f6 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -25,7 +25,8 @@ Spin up and SSH to a Worker Node VM (HBv2). Be sure you have downloaded azurehpc GitHub repository in /data folder: ``` cd /data -git clone https://github.com/Azure/azurehpc.git +git clone https://github.com/marcusgaspar/azurehpc.git +#git clone https://github.com/Azure/azurehpc.git ``` Then, run the following commands: From 2ea3d5bc46b86571ac5208aabb8f9caa62d2ecee Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 2 Feb 2024 12:05:38 -0300 Subject: [PATCH 37/75] Update install-cyclecloud.md fix permissions related to managed identity on the subscription --- tutorials/cyclecloud/install-cyclecloud.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tutorials/cyclecloud/install-cyclecloud.md b/tutorials/cyclecloud/install-cyclecloud.md index 1acf680b8..ccd002905 100644 --- a/tutorials/cyclecloud/install-cyclecloud.md +++ b/tutorials/cyclecloud/install-cyclecloud.md @@ -67,7 +67,7 @@ CycleCloud can be installed via Azure Marketplace, see [Quickstart - Install via ## 3. Assign Contributor role on the subscription to managed-identity From Azure Portal, go to Subscriptions and assign Contributor role to the CycleCloud VM managed Identity (Subscription > Access control (IAM) > Add > Add role assignment). ->You need to have **Owner** permission on the Subscription +>You need to have **Contributor** permission on the Subscription. If you need more granular permissions, see: [Create a custom role and managed identity for CycleCloud](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/managed-identities?view=cyclecloud-8#create-a-custom-role-and-managed-identity-for-cyclecloud) ## 4. Configure DNS name label for public IP (optional) You can define a DNS Name for the CycleCloud VM public IP, it can facilitate the access to the VM. @@ -77,7 +77,7 @@ Go to CycleCloud VM and click in DNS Name: Add a DNS Name and save: ![DNS-Label2](images/DNS-Label2.jpg) -In case you want to setup CycleCloud in environments with limited internet access, check this article: [Operating in a locked down network](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/running-in-locked-down-network?view=cyclecloud-8). +In case you want to setup CycleCloud in environments with limited internet access, check this article: [Operating in a locked down network] (https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/running-in-locked-down-network?view=cyclecloud-8). ## 5. Create a storage account Cyclecloud requires a storage account for [locker access](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/storage-blobs?view=cyclecloud-8). @@ -102,4 +102,4 @@ cd cyclecloud-cli-installer 1. Initialize the server with cyclecloud initialize. You will be prompted for the CycleServer URL, which is the FQDN of your application server. Enter it in the format https://FQDN. 2. The installed Azure CycleCloud server uses either a Let's Encrypt SSL certificate, or a self-signed certificate. Type yes when asked to allow the certificate. 3. Log in with the same username and password used for the CycleCloud web interface. - 4. Test that the CycleCloud CLI is working with cyclecloud show_cluster. \ No newline at end of file + 4. Test that the CycleCloud CLI is working with cyclecloud show_cluster. From e1f0428922fb260aabc52d5ed6317a6221226dc4 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 2 Feb 2024 17:03:18 -0300 Subject: [PATCH 38/75] Update install-cyclecloud.md --- tutorials/cyclecloud/install-cyclecloud.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorials/cyclecloud/install-cyclecloud.md b/tutorials/cyclecloud/install-cyclecloud.md index ccd002905..605982fa0 100644 --- a/tutorials/cyclecloud/install-cyclecloud.md +++ b/tutorials/cyclecloud/install-cyclecloud.md @@ -99,7 +99,7 @@ cd cyclecloud-cli-installer ./install.sh ``` - Initialize CycleCloud CLI - 1. Initialize the server with cyclecloud initialize. You will be prompted for the CycleServer URL, which is the FQDN of your application server. Enter it in the format https://FQDN. + 1. Run cyclecloud initialize. You will be prompted for the CycleServer URL, which is the FQDN of your application server. Enter it in the format https://FQDN. 2. The installed Azure CycleCloud server uses either a Let's Encrypt SSL certificate, or a self-signed certificate. Type yes when asked to allow the certificate. 3. Log in with the same username and password used for the CycleCloud web interface. 4. Test that the CycleCloud CLI is working with cyclecloud show_cluster. From 8c0604df499ac3ed123ba11a6e6167e526404de2 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 2 Feb 2024 17:10:53 -0300 Subject: [PATCH 39/75] Update install-cyclecloud.md --- tutorials/cyclecloud/install-cyclecloud.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tutorials/cyclecloud/install-cyclecloud.md b/tutorials/cyclecloud/install-cyclecloud.md index 605982fa0..2992518b0 100644 --- a/tutorials/cyclecloud/install-cyclecloud.md +++ b/tutorials/cyclecloud/install-cyclecloud.md @@ -99,7 +99,7 @@ cd cyclecloud-cli-installer ./install.sh ``` - Initialize CycleCloud CLI - 1. Run cyclecloud initialize. You will be prompted for the CycleServer URL, which is the FQDN of your application server. Enter it in the format https://FQDN. + 1. Run **cyclecloud initialize**. You will be prompted for the CycleServer URL, which is the FQDN of your application server. Enter it in the format https://FQDN. 2. The installed Azure CycleCloud server uses either a Let's Encrypt SSL certificate, or a self-signed certificate. Type yes when asked to allow the certificate. - 3. Log in with the same username and password used for the CycleCloud web interface. - 4. Test that the CycleCloud CLI is working with cyclecloud show_cluster. + 3. When prompted username and password, enter the same username and password used in the CycleCloud Portal web interface. + 4. Run **cyclecloud show_cluster** to test CycleCloud CLI is working. From 6cda4e9e15567f0d98da1ee8e54cc86fadd93ba8 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Thu, 11 Jul 2024 18:55:07 -0300 Subject: [PATCH 40/75] New WRF template based on the Slurm 3.0.6 standard template --- apps/wrf/slurm-wrf-template.txt | 887 ++++++++++++++++++++++++++++++++ 1 file changed, 887 insertions(+) create mode 100644 apps/wrf/slurm-wrf-template.txt diff --git a/apps/wrf/slurm-wrf-template.txt b/apps/wrf/slurm-wrf-template.txt new file mode 100644 index 000000000..de36a7dbc --- /dev/null +++ b/apps/wrf/slurm-wrf-template.txt @@ -0,0 +1,887 @@ + +################################ +## Cluster Configuration File ## +################################ + + +[cluster Slurm-WRF] +FormLayout = selectionpanel +IconUrl = https://avatars.githubusercontent.com/u/12666893?s=200&v=4 +Category = Schedulers + +Autoscale = $Autoscale + + [[node defaults]] + UsePublicNetwork = $UsePublicNetwork + Credentials = $Credentials + SubnetId = $SubnetId + Region = $Region + KeyPairLocation = ~/.ssh/cyclecloud.pem + Azure.Identities = $ManagedIdentity + + # Slurm autoscaling supports both Terminate and Deallocate shutdown policies + ShutdownPolicy = $configuration_slurm_shutdown_policy + + # Lustre mounts require termination notifications to unmount + EnableTerminateNotification = ${NFSType == "lustre" || NFSSchedType == "lustre" || AdditionalNFSType1 == "lustre" || AdditionalNFSType2 == "lustre" || EnableTerminateNotification} + TerminateNotificationTimeout = 10m + + [[[configuration]]] + + slurm.install_pkg = azure-slurm-install-pkg-3.0.6.tar.gz + slurm.autoscale_pkg = azure-slurm-pkg-3.0.6.tar.gz + + slurm.version = $configuration_slurm_version + slurm.accounting.enabled = $configuration_slurm_accounting_enabled + slurm.accounting.url = $configuration_slurm_accounting_url + slurm.accounting.user = $configuration_slurm_accounting_user + slurm.accounting.password = $configuration_slurm_accounting_password + slurm.accounting.certificate_url = $configuration_slurm_accounting_certificate_url + slurm.additional.config = $additional_slurm_config + slurm.ha_enabled = $configuration_slurm_ha_enabled + slurm.launch_parameters = $configuration_slurm_launch_parameters + slurm.disable_pmc = $configuration_slurm_disable_pmc + + # Disable ip-XXXXXXXX hostname generation + cyclecloud.hosts.standalone_dns.enabled = ${NodeNameIsHostname==false} + cyclecloud.hosts.simple_vpc_dns.enabled = ${NodeNameIsHostname==false} + + # For fast spin-up after Deallocate, force an immediate re-converge on boot + cyclecloud.converge_on_boot = true + + # Disable normal NFS exports and mounts + cyclecloud.mounts.sched.disabled = true + cyclecloud.mounts.shared.disabled = true + cyclecloud.exports.sched.disabled = true + cyclecloud.exports.shared.disabled = true + cyclecloud.exports.sched.samba.enabled = false + cyclecloud.exports.shared.samba.enabled = false + cyclecloud.exports.defaults.samba.enabled = false + cshared.server.legacy_links_disabled = true + + # May be used to identify the ID in cluster-init scripts + cluster.identities.default = $ManagedIdentity + + [[[cluster-init cyclecloud/slurm:default:3.0.6]]] + Optional = true + + [[[volume boot]]] + Size = ${ifThenElse(BootDiskSize > 0, BootDiskSize, undefined)} + SSD = True + + [[[configuration cyclecloud.mounts.nfs_shared]]] + type = $NFSType + mountpoint = /shared + export_path = ${ifThenElse(NFSType == "lustre", strcat("tcp:/lustrefs", NFSSharedExportPath), NFSSharedExportPath)} + address = $NFSAddress + options = $NFSSharedMountOptions + + [[[configuration cyclecloud.mounts.nfs_sched]]] + type = $NFSSchedType + mountpoint = /sched + export_path = ${ifThenElse(NFSSchedType == "lustre", strcat("tcp:/lustrefs", NFSSchedExportPath), NFSSchedExportPath)} + address = $NFSSchedAddress + options = $NFSSchedMountOptions + + [[[configuration cyclecloud.mounts.additional_nfs1]]] + disabled = ${AdditionalNFS1 isnt true} + type = $AdditionalNFSType1 + address = $AdditionalNFSAddress1 + mountpoint = $AdditionalNFSMountPoint1 + export_path = ${ifThenElse(AdditionalNFSType1 == "lustre", strcat("tcp:/lustrefs", AdditionalNFSExportPath1), AdditionalNFSExportPath1)} + options = $AdditionalNFSMountOptions1 + + [[[configuration cyclecloud.mounts.additional_nfs2]]] + disabled = ${AdditionalNFS2 isnt true} + type = $AdditionalNFSType2 + address = $AdditionalNFSAddress2 + mountpoint = $AdditionalNFSMountPoint2 + export_path = ${ifThenElse(AdditionalNFSType2 == "lustre", strcat("tcp:/lustrefs", AdditionalNFSExportPath2), AdditionalNFSExportPath2)} + options = $AdditionalNFSMountOptions2 + + [[node scheduler]] + MachineType = $SchedulerMachineType + ImageName = $SchedulerImageName + IsReturnProxy = $ReturnProxy + AdditionalClusterInitSpecs = $SchedulerClusterInitSpecs + ComputerName = ${toLower(regexps("([^a-zA-Z0-9-])", ifThenElse(SchedulerHostName=="Cluster Prefix", StrJoin("-", ClusterName, "scheduler"), ifThenElse(Size(Trim(SchedulerHostName)) == 0 || SchedulerHostName == "Generated", undefined, SchedulerHostName)), "-"))} + # indented version, for clarity. + # ${toLower( + # regexps("([^a-zA-Z0-9-])", + # ifThenElse(SchedulerHostName=="Cluster Prefix", + # StrJoin("-", ClusterName, "scheduler"), + # ifThenElse(Size(Trim(SchedulerHostName)) == 0 || SchedulerHostName == "Generated", + # undefined, + # SchedulerHostName)), + # "-"))} + Zone = ${ifThenElse(configuration_slurm_ha_enabled, SchedulerZone, undefined)} + + [[[configuration]]] + # Disable NFS mount of built-in /sched since it is a local volume mount: cyclecloud.mounts.builtinsched + cyclecloud.mounts.nfs_sched.disabled = ${UseBuiltinSched && !configuration_slurm_ha_enabled} + cyclecloud.mounts.nfs_shared.disabled = ${UseBuiltinShared && !configuration_slurm_ha_enabled} + slurm.secondary_scheduler_name = ${ifThenElse(configuration_slurm_ha_enabled, "scheduler-ha-1", undefined)} + + + [[[cluster-init cyclecloud/slurm:scheduler:3.0.6]]] + + [[[network-interface eth0]]] + AssociatePublicIpAddress = $UsePublicNetwork + + [[[volume sched]]] + Size = $SchedFilesystemSize + SSD = True + Mount = builtinsched + Persistent = False + Disabled = ${!UseBuiltinSched || configuration_slurm_ha_enabled} + + [[[volume shared]]] + Size = $FilesystemSize + SSD = True + Mount = builtinshared + Persistent = True + Disabled = ${!UseBuiltinShared || configuration_slurm_ha_enabled} + + [[[configuration cyclecloud.mounts.builtinsched]]] + disabled = ${!UseBuiltinSched || configuration_slurm_ha_enabled} + mountpoint = /sched + fs_type = xfs + + [[[configuration cyclecloud.mounts.builtinshared]]] + disabled = ${!UseBuiltinShared || configuration_slurm_ha_enabled} + mountpoint = /shared + fs_type = xfs + + [[[configuration cyclecloud.exports.builtinsched]]] + disabled = ${!UseBuiltinSched || configuration_slurm_ha_enabled} + export_path = /sched + options = no_root_squash + samba.enabled = false + type = nfs + + [[[configuration cyclecloud.exports.builtinshared]]] + disabled = ${!UseBuiltinShared || configuration_slurm_ha_enabled} + export_path = /shared + samba.enabled = false + type = nfs + + [[nodearray scheduler-ha]] + Extends = scheduler + IsReturnProxy = false + InitialCount = $configuration_slurm_ha_enabled + Zone = $SchedulerHAZone + [[[configuration]]] + autoscale.enabled = false + slurm.node_prefix = ${ifThenElse(NodeNamePrefix=="Cluster Prefix", StrJoin("-", ClusterName, ""), NodeNamePrefix)} + slurm.use_nodename_as_hostname = $NodeNameIsHostname + slurm.is_primary_scheduler = false + + [[nodearray login]] + InitialCount = $NumberLoginNodes + MachineType = $loginMachineType + ImageName = $SchedulerImageName + + [[[cluster-init cyclecloud/slurm:login:3.0.6]]] + [[[configuration]]] + autoscale.enabled = false + slurm.node_prefix = ${ifThenElse(NodeNamePrefix=="Cluster Prefix", StrJoin("-", ClusterName, ""), NodeNamePrefix)} + slurm.use_nodename_as_hostname = $NodeNameIsHostname + + [[node nodearraybase]] + Abstract = true + [[[configuration]]] + slurm.autoscale = true + + slurm.node_prefix = ${ifThenElse(NodeNamePrefix=="Cluster Prefix", StrJoin("-", ClusterName, ""), NodeNamePrefix)} + slurm.use_nodename_as_hostname = $NodeNameIsHostname + + [[[cluster-init cyclecloud/slurm:execute:3.0.6]]] + + [[[network-interface eth0]]] + AssociatePublicIpAddress = $ExecuteNodesPublic + + [[nodearray hpc]] + Extends = nodearraybase + MachineType = $HPCMachineType + ImageName = $HPCImageName + MaxCoreCount = $MaxHPCExecuteCoreCount + Azure.MaxScalesetSize = $HPCMaxScalesetSize + AdditionalClusterInitSpecs = $HPCClusterInitSpecs + EnableNodeHealthChecks = $EnableNodeHealthChecks + + + [[[configuration]]] + slurm.default_partition = true + slurm.hpc = true + slurm.partition = hpc + + + [[nodearray htc]] + Extends = nodearraybase + MachineType = $HTCMachineType + ImageName = $HTCImageName + MaxCoreCount = $MaxHTCExecuteCoreCount + + Interruptible = $HTCUseLowPrio + MaxPrice = $HTCSpotMaxPrice + AdditionalClusterInitSpecs = $HTCClusterInitSpecs + + [[[configuration]]] + slurm.hpc = false + slurm.partition = htc + # set pcpu = false for all hyperthreaded VMs + slurm.use_pcpu = false + + [[nodearray dynamic]] + Extends = nodearraybase + MachineType = $DynamicMachineType + ImageName = $DynamicImageName + MaxCoreCount = $MaxDynamicExecuteCoreCount + + Interruptible = $DynamicUseLowPrio + MaxPrice = $DynamicSpotMaxPrice + AdditionalClusterInitSpecs = $DynamicClusterInitSpecs + [[[configuration]]] + slurm.hpc = false + slurm.dynamic_config := "-Z --conf \"Feature=dyn\"" + # set pcpu = false for all hyperthreaded VMs + slurm.use_pcpu = false + +[parameters About] +Order = 1 + + [[parameters About Slurm]] + + [[[parameter slurm]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''
    Slurm icon

    Follow the instructions in theREADMEfor details on instructions on extending and configuring the Project for your environment.


    Slurm is the most widely used workload manager in HPC, as the scheduler of choice for six of the top ten systems in the TOP500 and with market penetration of more than 70%. Slurm is an advanced, open-source scheduler designed to satisfy the demanding needs of high-performance computing (HPC), high-throughput computing (HTC), and artificial intelligence (AI).

    Commercial Support provided by SchedMD

    Get more from your HPC investment! SchedMD, the company behind Slurm development, can answer your Slurm questions and explain our options for consultation, training, support, and migration.

    Contact SchedMD

    View more details about Slurm?

    Slurm at a glance

    Slurm provides massive scalability and can easily manage performance requirements for small cluster, large cluster, and supercomputer needs. Slurm outperforms competitive schedulers with compute rates at:

    • 100K+ nodes/GPU
    • 17M+ jobs per day
    • 120M+ jobs per week

    Slurm’s plug-in based architecture enables optimization and control in scheduling operations to meet organizational priorities. With first class resource management for GPUs, Slurm allows users to request GPU resources alongside CPUs. This flexibility ensures that jobs are executed quickly and efficiently, while maximizing resource utilization.


    Other Slurm features include:

    • NVIDIA GH200 support for AI, LLM, and ML environments
    • Advanced scheduling policies
    • Unique HPC, HTC, AI/ML workload expertise
    • Cloud bursting capabilities
    • Power saving capabilities, accounting, and reporting
    • Provided REST API daemon
    • Native support of containers
    • Tailored Slurm consulting and training available through SchedMD
    ''' + +[parameters Required Settings] +Order = 10 + + + [[parameters Virtual Machines ]] + Description = "The cluster, in this case, has two roles: the scheduler node with shared filer and the execute hosts. Configure which VM types to use based on the requirements of your application." + Order = 20 + + [[[parameter Region]]] + Label = Region + Description = Deployment Location + ParameterType = Cloud.Region + + [[[parameter SchedulerMachineType]]] + Label = Scheduler VM Type + Description = The VM type for scheduler node + ParameterType = Cloud.MachineType + DefaultValue = Standard_D4ads_v5 + + [[[parameter loginMachineType]]] + Label = Login node VM Type + Description = The VM type for login nodes. + ParameterType = Cloud.MachineType + DefaultValue = Standard_D8as_v4 + + [[[parameter HPCMachineType]]] + Label = HPC VM Type + Description = The VM type for HPC execute nodes + ParameterType = Cloud.MachineType + DefaultValue = Standard_F2s_v2 + + [[[parameter HTCMachineType]]] + Label = HTC VM Type + Description = The VM type for HTC execute nodes + ParameterType = Cloud.MachineType + DefaultValue = Standard_F2s_v2 + + [[[parameter DynamicMachineType]]] + Label = Dyn VM Type + Description = The VM type for Dynamic execute nodes + ParameterType = Cloud.MachineType + DefaultValue = Standard_F2s_v2 + Config.MultiSelect = true + + + [[parameters Auto-Scaling]] + Description = "The cluster can autoscale to the workload, adding execute hosts as jobs are queued. To enable this check the box below and choose the initial and maximum core counts for the cluster." + Order = 30 + + [[[parameter Autoscale]]] + Label = Autoscale + DefaultValue = true + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Start and stop execute instances automatically + + [[[parameter MaxHPCExecuteCoreCount]]] + Label = Max HPC Cores + Description = The total number of HPC execute cores to start + DefaultValue = 100 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 1 + Config.IntegerOnly = true + + [[[parameter MaxHTCExecuteCoreCount]]] + Label = Max HTC Cores + Description = The total number of HTC execute cores to start + DefaultValue = 100 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 1 + Config.IntegerOnly = true + + [[[parameter MaxDynamicExecuteCoreCount]]] + Label = Max Dyn Cores + Description = The total number of Dynamic execute cores to start + DefaultValue = 100 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 1 + Config.IntegerOnly = true + + [[[parameter HPCMaxScalesetSize]]] + Label = Max VMs per VMSS + Description = The maximum number of VMs created per VM Scaleset e.g. switch in Slurm. + DefaultValue = 100 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 1 + Config.IntegerOnly = true + + + [[[parameter HTCUseLowPrio]]] + Label = HTC Spot + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Use Spot VMs for HTC execute hosts + + [[[parameter HTCSpotMaxPrice]]] + Label = Max Price HTC + DefaultValue = -1 + Description = Max price for Spot VMs in USD (value of -1 will not evict based on price) + Config.Plugin = pico.form.NumberTextBox + Conditions.Excluded := HTCUseLowPrio isnt true + Config.MinValue = -1 + + [[[parameter DynamicUseLowPrio]]] + Label = DynSpot + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Use Spot VMs for Dynamic execute hosts + + [[[parameter DynamicSpotMaxPrice]]] + Label = Max Price Dyn + DefaultValue = -1 + Description = Max price for Spot VMs in USD (value of -1 will not evict based on price) + Config.Plugin = pico.form.NumberTextBox + Conditions.Excluded := DynamicUseLowPrio isnt true + Config.MinValue = -1 + + [[[parameter NumberLoginNodes]]] + Label = Num Login Nodes + DefaultValue = 0 + Description = Number of optional login nodes to create. + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 0 + Config.MaxValue = 10000 + Config.IntegerOnly = true + + [[parameters Networking]] + Order = 40 + + [[[parameter SubnetId]]] + Label = Subnet ID + Description = Subnet Resource Path (ResourceGroup/VirtualNetwork/Subnet) + ParameterType = Azure.Subnet + Required = True + + [[parameters High Availability]] + Order = 50 + Description = "Slurm can be setup in HA mode - where slurmctld is running on two nodes with failover. Note that checking this box will require an external NFS, so any reference to the 'builtin' NFS will be hidden." + [[[parameter configuration_slurm_ha_enabled]]] + Label = Slurm HA Node + Description = Deploy with an additional HA node + DefaultValue = false + ParameterType = Boolean + + +[parameters Network Attached Storage] +Order = 15 + + [[parameters Shared Storage]] + Order = 10 + + [[[parameter About Shared Storage]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''

    The directories /sched and /shared are network attached mounts and exist on all nodes of the cluster.
    +
    + Options for providing these mounts:
    + [Builtin]: The scheduler node is an NFS server that provides the mountpoint to the other nodes of the cluster (not supported for HA configurations).
    + [External NFS]: A network attached storage such as Azure Netapp Files, HPC Cache, or another VM running an NFS server provides the mountpoint.
    + [Azure Managed Lustre]: An Azure Managed Lustre deployment provides the mountpoint.
    +

    +

    + Note: the cluster must be terminated for changes to filesystem mounts to take effect. +

    ''' + Conditions.Hidden := false + + [[parameters Scheduler Mount]] + Order = 20 + Label = File-system Mount for /sched + + [[[parameter About sched]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''

    Slurm's configuration is linked in from the /sched directory. It is managed by the scheduler node

    ''' + Order = 6 + + [[[parameter About sched part 2]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''

    To disable the built-in NFS export of the /sched directory, and to use an external filesystem, select the checkbox below.

    ''' + Order = 7 + Conditions.Hidden := configuration_slurm_ha_enabled + + [[[parameter UseBuiltinSched]]] + Label = Use Builtin NFS + Description = Use the builtin NFS for /sched + DefaultValue = true + ParameterType = Boolean + Conditions.Hidden := configuration_slurm_ha_enabled + Disabled = configuration_slurm_ha_enabled + + [[[parameter NFSSchedDiskWarning]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "

    Warning: switching an active cluster over to NFS or Lustre from Builtin will delete the shared disk.

    " + Conditions.Hidden := UseBuiltinSched || configuration_slurm_ha_enabled + + [[[parameter NFSSchedType]]] + Label = FS Type + ParameterType = StringList + Config.Label = Type of shared filesystem to use for this cluster + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="External NFS"; Value="nfs"], [Label="Azure Managed Lustre"; Value="lustre"]} + DefaultValue = nfs + Conditions.Hidden := UseBuiltinSched && !configuration_slurm_ha_enabled + + [[[parameter NFSSchedAddress]]] + Label = IP Address + Description = The IP address or hostname of the NFS server or Lustre FS. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + Conditions.Hidden := UseBuiltinSched && !configuration_slurm_ha_enabled + + [[[parameter NFSSchedExportPath]]] + Label = Export Path + Description = The path exported by the file system + DefaultValue = /sched + Conditions.Hidden := UseBuiltinSched && !configuration_slurm_ha_enabled + + [[[parameter NFSSchedMountOptions]]] + Label = Mount Options + Description = NFS Client Mount Options + Conditions.Hidden := UseBuiltinSched && !configuration_slurm_ha_enabled + + + [[[parameter SchedFilesystemSize]]] + Label = Size (GB) + Description = The filesystem size (cannot be changed after initial start) + DefaultValue = 30 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 10 + Config.MaxValue = 10240 + Config.IntegerOnly = true + Conditions.Excluded := !UseBuiltinSched || configuration_slurm_ha_enabled + + + + [[parameters Default NFS Share]] + Order = 30 + Label = File-system Mount for /shared + + [[[parameter About shared]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''

    Users' home directories reside within the /shared mountpoint with the base homedir /shared/home.

    ''' + Order = 6 + + [[[parameter About shared part 2]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''

    To disable the built-in NFS export of the /sched directory, and to use an external filesystem, select the checkbox below.

    ''' + Order = 7 + Conditions.Hidden := configuration_slurm_ha_enabled + + [[[parameter UseBuiltinShared]]] + Label = Use Builtin NFS + Description = Use the builtin NFS for /share + DefaultValue = true + ParameterType = Boolean + Conditions.Hidden := configuration_slurm_ha_enabled + Disabled = configuration_slurm_ha_enabled + + [[[parameter NFSDiskWarning]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "

    Warning: switching an active cluster over to NFS or Lustre from Builtin will delete the shared disk.

    " + Conditions.Hidden := UseBuiltinShared || configuration_slurm_ha_enabled + + [[[parameter NFSType]]] + Label = FS Type + ParameterType = StringList + Config.Label = Type of shared filesystem to use for this cluster + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="External NFS"; Value="nfs"], [Label="Azure Managed Lustre"; Value="lustre"]} + DefaultValue = nfs + Conditions.Hidden := UseBuiltinShared && !configuration_slurm_ha_enabled + + [[[parameter NFSAddress]]] + Label = IP Address + Description = The IP address or hostname of the NFS server or Lustre FS. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + Conditions.Hidden := UseBuiltinShared && !configuration_slurm_ha_enabled + + [[[parameter NFSSharedExportPath]]] + Label = Export Path + Description = The path exported by the file system + DefaultValue = /shared + Conditions.Hidden := UseBuiltinShared && !configuration_slurm_ha_enabled + + [[[parameter NFSSharedMountOptions]]] + Label = Mount Options + Description = NFS Client Mount Options + Conditions.Hidden := UseBuiltinShared && !configuration_slurm_ha_enabled + + + [[[parameter FilesystemSize]]] + Label = Size (GB) + Description = The filesystem size (cannot be changed after initial start) + DefaultValue = 100 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 10 + Config.MaxValue = 10240 + Config.IntegerOnly = true + Conditions.Excluded := !UseBuiltinShared || configuration_slurm_ha_enabled + + [[parameters Additional NFS Mount]] + Order = 40 + Label = Additional Filesystem Mount + [[[parameter Additional Shared FS Mount Readme]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "

    Mount another shared filesystem endpoint on the cluster nodes.

    " + Order = 20 + + [[[parameter AdditionalNFS1]]] + HideLabel = true + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Add Shared Filesystem mount + + [[[parameter AdditionalNFSType1]]] + Label = FS Type + ParameterType = StringList + Config.Label = Shared filesystem type of the additional mount + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="External NFS"; Value="nfs"], [Label="Azure Managed Lustre"; Value="lustre"]} + DefaultValue = nfs + Conditions.Excluded := AdditionalNFS1 isnt true + + [[[parameter AdditionalNFSAddress1]]] + Label = IP Address + Description = The IP address or hostname of the additional mount. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + Conditions.Excluded := AdditionalNFS1 isnt true + + [[[parameter AdditionalNFSMountPoint1]]] + Label = Mount Point + Description = The path at which to mount the Filesystem + DefaultValue = /data + Conditions.Excluded := AdditionalNFS1 isnt true + + [[[parameter AdditionalNFSExportPath1]]] + Label = Export Path + Description = The path exported by the file system + DefaultValue = /anf-vol1/wrf/data + Conditions.Excluded := AdditionalNFS1 isnt true + + [[[parameter AdditionalNFSMountOptions1]]] + Label = Mount Options + Description = Filesystem Client Mount Options + Conditions.Excluded := AdditionalNFS1 isnt true + + [[[parameter AdditionalNFS2]]] + HideLabel = true + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Add Shared Filesystem mount + + [[[parameter AdditionalNFSType2]]] + Label = FS Type + ParameterType = StringList + Config.Label = Shared filesystem type of the additional mount + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="External NFS"; Value="nfs"], [Label="Azure Managed Lustre"; Value="lustre"]} + DefaultValue = nfs + Conditions.Excluded := AdditionalNFS2 isnt true + + [[[parameter AdditionalNFSAddress2]]] + Label = IP Address + Description = The IP address or hostname of the additional mount. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + Conditions.Excluded := AdditionalNFS2 isnt true + + [[[parameter AdditionalNFSMountPoint2]]] + Label = Mount Point + Description = The path at which to mount the Filesystem + DefaultValue = /apps + Conditions.Excluded := AdditionalNFS2 isnt true + + [[[parameter AdditionalNFSExportPath2]]] + Label = Export Path + Description = The path exported by the file system + DefaultValue = /anf-vol1/wrf/apps + Conditions.Excluded := AdditionalNFS2 isnt true + + [[[parameter AdditionalNFSMountOptions2]]] + Label = Mount Options + Description = Filesystem Client Mount Options + Conditions.Excluded := AdditionalNFS2 isnt true + + +[parameters Advanced Settings] +Order = 20 + + [[parameters Azure Settings]] + Order = 10 + + [[[parameter Credentials]]] + Description = The credentials for the cloud provider + ParameterType = Cloud.Credentials + + [[[parameter ManagedIdentity]]] + Label = Managed Id + Description = Optionally assign an Azure user assigned managed identity to all nodes to access Azure resources using assigned roles. + ParameterType = Azure.ManagedIdentity + DefaultValue = =undefined + + [[[parameter BootDiskSize]]] + Description = Optional: Size of the OS/boot disk in GB for all nodes in the cluster (leave at 0 to use Image size) + ParameterType = Integer + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 0 + Config.MaxValue = 32,000 + Config.IntegerOnly = true + Config.Increment = 64 + DefaultValue = 0 + + [[parameters Slurm Settings ]] + + Order = 5 + + [[[parameter slurm_version_warning]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + + [[[parameter configuration_slurm_version]]] + Required = True + Label = Slurm Version + Description = Version of Slurm to install on the cluster + ParameterType = StringList + Config.Plugin = pico.form.Dropdown + Config.FreeForm = true + Config.Entries := {[Value="22.05.11-1"], [Value="23.02.7-1"]} + DefaultValue = 23.02.7-1 + + [[[parameter configuration_slurm_accounting_enabled]]] + Label = Job Accounting + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Configure Slurm job accounting + + [[[parameter configuration_slurm_accounting_url]]] + Label = Slurm DBD URL + Description = URL of the database to use for Slurm job accounting + Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + + [[[parameter configuration_slurm_accounting_user]]] + Label = Slurm DBD User + Description = User for Slurm DBD admin + Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + + [[[parameter configuration_slurm_accounting_password]]] + Label = Slurm DBD Password + Description = Password for Slurm DBD admin + ParameterType = Password + Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + + [[[parameter configuration_slurm_accounting_certificate_url]]] + Label = SSL Certificate URL + Description = URL to fetch SSL certificate for authentication to DB. Use AzureCA.pem (embedded) for use with deprecated MariaDB instances. + Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + ParameterType = StringList + Config.Plugin = pico.form.Dropdown + Config.FreeForm = true + Config.Entries := {[Value=""], [Value="AzureCA.pem"]} + DefaultValue = "" + + [[[parameter configuration_slurm_shutdown_policy]]] + Label = Shutdown Policy + description = By default, autostop will Delete stopped VMS for lowest cost. Optionally, Stop/Deallocate the VMs for faster restart instead. + DefaultValue = Terminate + config.plugin = pico.control.AutoCompleteDropdown + [[[[list Config.Entries]]]] + Name = Terminate + Label = Terminate + [[[[list Config.Entries]]]] + Name = Deallocate + Label = Deallocate + + [[[parameter EnableTerminateNotification]]] + Label = Enable Termination notifications + DefaultValue = False + + [[[parameter additional_slurm_config]]] + Label = Slurm Configuration + Description = Any additional lines to add to slurm.conf + ParameterType = Text + + [[[parameter configuration_slurm_launch_parameters]]] + Label = Launch Parameters + Description = Deploy Slurm with Launch Parameters (comma delimited) + DefaultValue = '' + ParameterType = String + + + + [[parameters Software]] + Description = "Specify the scheduling software, and base OS installed on all nodes, and optionally the cluster-init and chef versions from your locker." + Order = 10 + + [[[parameter NodeNameIsHostname]]] + Label = Name As Hostname + Description = Should the hostname match the nodename for execute nodes? + ParameterType = Boolean + DefaultValue = true + + [[[parameter NodeNamePrefix]]] + Label = Node Prefix + Description = Prefix for generated node names, i.e. "prefix-" generates prefix-nodearray-1. Use 'Cluster Prefix' to get $ClusterName-nodearray-1 + ParameterType = StringList + Config.Plugin = pico.form.Dropdown + Config.FreeForm = true + DefaultValue = "Cluster Prefix" + Config.Entries := {[Value=""], [Value="Cluster Prefix"]} + Conditions.Hidden := NodeNameIsHostname != true + + [[[parameter SchedulerHostName]]] + Label = Scheduler Hostname + Description = Hostname of scheduler. 'Generated' uses the default generated hostname. 'Cluster Prefix' will generate $ClusterName-scheduler. + ParameterType = StringList + Config.Plugin = pico.form.Dropdown + Config.FreeForm = true + DefaultValue = "Cluster Prefix" + Config.Entries := {[Value="Generated"], [Value="Cluster Prefix"]} + Conditions.Hidden := NodeNameIsHostname != true + + [[[parameter SchedulerImageName]]] + Label = Scheduler OS + ParameterType = Cloud.Image + Config.OS = linux + DefaultValue = almalinux8 + Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu20", "cycle.image.ubuntu22", "cycle.image.sles15-hpc", "almalinux8"} + + [[[parameter HPCImageName]]] + Label = HPC OS + ParameterType = Cloud.Image + Config.OS = linux + DefaultValue = almalinux8 + Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu20", "cycle.image.ubuntu22", "cycle.image.sles15-hpc", "almalinux8"} + + [[[parameter HTCImageName]]] + Label = HTC OS + ParameterType = Cloud.Image + Config.OS = linux + DefaultValue = almalinux8 + Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu20", "cycle.image.ubuntu22", "cycle.image.sles15-hpc", "almalinux8"} + + [[[parameter DynamicImageName]]] + Label = Dynamic OS + ParameterType = Cloud.Image + Config.OS = linux + DefaultValue = almalinux8 + Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu20", "cycle.image.ubuntu22", "cycle.image.sles15-hpc", "almalinux8"} + + [[[parameter SchedulerClusterInitSpecs]]] + Label = Scheduler Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to the scheduler node + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter HTCClusterInitSpecs]]] + Label = HTC Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to HTC execute nodes + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter HPCClusterInitSpecs]]] + Label = HPC Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to HPC execute nodes + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter DynamicClusterInitSpecs]]] + Label = Dyn Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to Dynamic execute nodes + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter configuration_slurm_disable_pmc]]] + Label = Disable PMC + Description = Disable packages from packages.microsoft.com + ParameterType = Boolean + DefaultValue = false + + + [[parameters Advanced Networking]] + + [[[parameter ReturnProxy]]] + Label = Return Proxy + DefaultValue = true + ParameterType = Boolean + Config.Label = Use SSH tunnel to connect to CycleCloud (required if direct access is blocked) + + [[[parameter UsePublicNetwork]]] + Label = Public Head Node + DefaultValue = true + ParameterType = Boolean + Config.Label = Access scheduler node from the Internet + + [[[parameter ExecuteNodesPublic]]] + Label = Public Execute + DefaultValue = false + ParameterType = Boolean + Config.Label = Access execute nodes from the Internet + Conditions.Excluded := UsePublicNetwork isnt true + + [[[parameter SchedulerZone]]] + Label = Scheduler Zone + Description = The availability zone in which to deploy the scheduler node. + DefaultValue = =undefined + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Value=1], [Value=2], [Value=3], [Value=undefined; Label="Any"]} + + [[[parameter SchedulerHAZone]]] + Label = Scheduler HA Zone + Description = The availability zone in which to deploy the scheduler-ha node. + DefaultValue = =undefined + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Value=1], [Value=2], [Value=3], [Value=undefined; Label="Any"]} + Conditions.Hidden := configuration_slurm_ha_enabled isnt true + + [[parameters Node Health Checks]] + Description = "Section for configuring Node Health Checks" + Order = 12 + + [[[parameter EnableNodeHealthChecks]]] + Label = Enable NHC tests + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Run Node Health Checks on startup From e193b8c322f7394a38dabccd706c87b2d769913f Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 12 Jul 2024 17:32:20 -0300 Subject: [PATCH 41/75] Update to slurm template version 3.0.7 --- apps/wrf/slurm-wrf-template.txt | 40 ++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/apps/wrf/slurm-wrf-template.txt b/apps/wrf/slurm-wrf-template.txt index de36a7dbc..2e746ee6b 100644 --- a/apps/wrf/slurm-wrf-template.txt +++ b/apps/wrf/slurm-wrf-template.txt @@ -23,13 +23,13 @@ Autoscale = $Autoscale ShutdownPolicy = $configuration_slurm_shutdown_policy # Lustre mounts require termination notifications to unmount - EnableTerminateNotification = ${NFSType == "lustre" || NFSSchedType == "lustre" || AdditionalNFSType1 == "lustre" || AdditionalNFSType2 == "lustre" || EnableTerminateNotification} + EnableTerminateNotification = ${NFSType == "lustre" || NFSSchedType == "lustre" || AdditionalNFSType == "lustre" || EnableTerminateNotification} TerminateNotificationTimeout = 10m [[[configuration]]] - slurm.install_pkg = azure-slurm-install-pkg-3.0.6.tar.gz - slurm.autoscale_pkg = azure-slurm-pkg-3.0.6.tar.gz + slurm.install_pkg = azure-slurm-install-pkg-3.0.7.tar.gz + slurm.autoscale_pkg = azure-slurm-pkg-3.0.7.tar.gz slurm.version = $configuration_slurm_version slurm.accounting.enabled = $configuration_slurm_accounting_enabled @@ -37,6 +37,7 @@ Autoscale = $Autoscale slurm.accounting.user = $configuration_slurm_accounting_user slurm.accounting.password = $configuration_slurm_accounting_password slurm.accounting.certificate_url = $configuration_slurm_accounting_certificate_url + slurm.accounting.storageloc = $configuration_slurm_accounting_storageloc slurm.additional.config = $additional_slurm_config slurm.ha_enabled = $configuration_slurm_ha_enabled slurm.launch_parameters = $configuration_slurm_launch_parameters @@ -62,7 +63,7 @@ Autoscale = $Autoscale # May be used to identify the ID in cluster-init scripts cluster.identities.default = $ManagedIdentity - [[[cluster-init cyclecloud/slurm:default:3.0.6]]] + [[[cluster-init cyclecloud/slurm:default:3.0.7]]] Optional = true [[[volume boot]]] @@ -97,7 +98,7 @@ Autoscale = $Autoscale address = $AdditionalNFSAddress2 mountpoint = $AdditionalNFSMountPoint2 export_path = ${ifThenElse(AdditionalNFSType2 == "lustre", strcat("tcp:/lustrefs", AdditionalNFSExportPath2), AdditionalNFSExportPath2)} - options = $AdditionalNFSMountOptions2 + options = $AdditionalNFSMountOptions2 [[node scheduler]] MachineType = $SchedulerMachineType @@ -123,7 +124,7 @@ Autoscale = $Autoscale slurm.secondary_scheduler_name = ${ifThenElse(configuration_slurm_ha_enabled, "scheduler-ha-1", undefined)} - [[[cluster-init cyclecloud/slurm:scheduler:3.0.6]]] + [[[cluster-init cyclecloud/slurm:scheduler:3.0.7]]] [[[network-interface eth0]]] AssociatePublicIpAddress = $UsePublicNetwork @@ -181,7 +182,7 @@ Autoscale = $Autoscale MachineType = $loginMachineType ImageName = $SchedulerImageName - [[[cluster-init cyclecloud/slurm:login:3.0.6]]] + [[[cluster-init cyclecloud/slurm:login:3.0.7]]] [[[configuration]]] autoscale.enabled = false slurm.node_prefix = ${ifThenElse(NodeNamePrefix=="Cluster Prefix", StrJoin("-", ClusterName, ""), NodeNamePrefix)} @@ -195,7 +196,7 @@ Autoscale = $Autoscale slurm.node_prefix = ${ifThenElse(NodeNamePrefix=="Cluster Prefix", StrJoin("-", ClusterName, ""), NodeNamePrefix)} slurm.use_nodename_as_hostname = $NodeNameIsHostname - [[[cluster-init cyclecloud/slurm:execute:3.0.6]]] + [[[cluster-init cyclecloud/slurm:execute:3.0.7]]] [[[network-interface eth0]]] AssociatePublicIpAddress = $ExecuteNodesPublic @@ -255,7 +256,7 @@ Order = 1 [[[parameter slurm]]] HideLabel = true Config.Plugin = pico.widget.HtmlTemplateWidget - Config.Template = '''
    Slurm icon

    Follow the instructions in theREADMEfor details on instructions on extending and configuring the Project for your environment.


    Slurm is the most widely used workload manager in HPC, as the scheduler of choice for six of the top ten systems in the TOP500 and with market penetration of more than 70%. Slurm is an advanced, open-source scheduler designed to satisfy the demanding needs of high-performance computing (HPC), high-throughput computing (HTC), and artificial intelligence (AI).

    Commercial Support provided by SchedMD

    Get more from your HPC investment! SchedMD, the company behind Slurm development, can answer your Slurm questions and explain our options for consultation, training, support, and migration.

    Contact SchedMD

    View more details about Slurm?

    Slurm at a glance

    Slurm provides massive scalability and can easily manage performance requirements for small cluster, large cluster, and supercomputer needs. Slurm outperforms competitive schedulers with compute rates at:

    • 100K+ nodes/GPU
    • 17M+ jobs per day
    • 120M+ jobs per week

    Slurm’s plug-in based architecture enables optimization and control in scheduling operations to meet organizational priorities. With first class resource management for GPUs, Slurm allows users to request GPU resources alongside CPUs. This flexibility ensures that jobs are executed quickly and efficiently, while maximizing resource utilization.


    Other Slurm features include:

    • NVIDIA GH200 support for AI, LLM, and ML environments
    • Advanced scheduling policies
    • Unique HPC, HTC, AI/ML workload expertise
    • Cloud bursting capabilities
    • Power saving capabilities, accounting, and reporting
    • Provided REST API daemon
    • Native support of containers
    • Tailored Slurm consulting and training available through SchedMD
    ''' + Config.Template = '''
    Slurm icon

    Follow the instructions in theREADMEfor details on instructions on extending and configuring the Project for your environment.


    Slurm is the most widely used workload manager in HPC, as the scheduler of choice for six of the top ten systems in the TOP500 and with market penetration of more than 70%. Slurm is an advanced, open-source scheduler designed to satisfy the demanding needs of high-performance computing (HPC), high-throughput computing (HTC), and artificial intelligence (AI).

    Commercial Support provided by SchedMD

    Get more from your HPC investment! SchedMD, the company behind Slurm development, can answer your Slurm questions and explain our options for consultation, training, support, and migration.

    Contact SchedMD

    View more details about Slurm?

    Slurm at a glance

    Slurm provides massive scalability and can easily manage performance requirements for small cluster, large cluster, and supercomputer needs. Slurm outperforms competitive schedulers with compute rates at:

    • 100K+ nodes/GPU
    • 17M+ jobs per day
    • 120M+ jobs per week

    Slurm’s plug-in based architecture enables optimization and control in scheduling operations to meet organizational priorities. With first class resource management for GPUs, Slurm allows users to request GPU resources alongside CPUs. This flexibility ensures that jobs are executed quickly and efficiently, while maximizing resource utilization.


    Other Slurm features include:

    • NVIDIA and AMD GPU support for AI, LLM, and ML environments
    • Advanced scheduling policies
    • Unique HPC, HTC, AI/ML workload expertise
    • Cloud bursting capabilities
    • Power saving capabilities, accounting, and reporting
    • Provided REST API daemon
    • Native support of containers
    • Tailored Slurm consulting and training available through SchedMD
    ''' [parameters Required Settings] Order = 10 @@ -505,7 +506,7 @@ Order = 15 [[[parameter About shared part 2]]] HideLabel = true Config.Plugin = pico.widget.HtmlTemplateWidget - Config.Template = '''

    To disable the built-in NFS export of the /sched directory, and to use an external filesystem, select the checkbox below.

    ''' + Config.Template = '''

    To disable the built-in NFS export of the /shared directory, and to use an external filesystem, select the checkbox below.

    ''' Order = 7 Conditions.Hidden := configuration_slurm_ha_enabled @@ -644,7 +645,7 @@ Order = 15 Label = Mount Options Description = Filesystem Client Mount Options Conditions.Excluded := AdditionalNFS2 isnt true - + [parameters Advanced Settings] Order = 20 @@ -679,6 +680,8 @@ Order = 20 [[[parameter slurm_version_warning]]] HideLabel = true Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "
    Note: For SLES HPC, we can only install the version supported by SLES HPC's zypper repos. At the time of this release, that is 23.02.7
    " + [[[parameter configuration_slurm_version]]] Required = True @@ -687,8 +690,8 @@ Order = 20 ParameterType = StringList Config.Plugin = pico.form.Dropdown Config.FreeForm = true - Config.Entries := {[Value="22.05.11-1"], [Value="23.02.7-1"]} - DefaultValue = 23.02.7-1 + Config.Entries := {[Value="23.02.7-4"], [Value="23.11.7-1"]} + DefaultValue = 23.11.7-1 [[[parameter configuration_slurm_accounting_enabled]]] Label = Job Accounting @@ -696,11 +699,22 @@ Order = 20 Widget.Plugin = pico.form.BooleanCheckBox Widget.Label = Configure Slurm job accounting + [[[parameter slurm_database_warning]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + Config.Template := "
    Note: Checking this box will create persistent databases and tables in SQL DB provided. Deleting this cluster will not automatically delete those databases. User is responsible for periodically purging/archiving their slurm databases to maintain costs.
    " + [[[parameter configuration_slurm_accounting_url]]] Label = Slurm DBD URL Description = URL of the database to use for Slurm job accounting Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + [[[parameter configuration_slurm_accounting_storageloc]]] + Label = Database name + Description = Database name to store slurm accounting records + Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + [[[parameter configuration_slurm_accounting_user]]] Label = Slurm DBD User Description = User for Slurm DBD admin From 3931b3ced7aecca6cdc5477d02426d33c9478cb0 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 12 Jul 2024 17:46:31 -0300 Subject: [PATCH 42/75] fix --- apps/wrf/slurm-wrf-template.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/wrf/slurm-wrf-template.txt b/apps/wrf/slurm-wrf-template.txt index 2e746ee6b..c91f55675 100644 --- a/apps/wrf/slurm-wrf-template.txt +++ b/apps/wrf/slurm-wrf-template.txt @@ -23,7 +23,7 @@ Autoscale = $Autoscale ShutdownPolicy = $configuration_slurm_shutdown_policy # Lustre mounts require termination notifications to unmount - EnableTerminateNotification = ${NFSType == "lustre" || NFSSchedType == "lustre" || AdditionalNFSType == "lustre" || EnableTerminateNotification} + EnableTerminateNotification = ${NFSType == "lustre" || NFSSchedType == "lustre" || AdditionalNFSType1 == "lustre" || AdditionalNFSType2 == "lustre" || EnableTerminateNotification} TerminateNotificationTimeout = 10m [[[configuration]]] From 94a41fd16d0245721419404cc87da138e13cb502 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 12 Jul 2024 18:45:25 -0300 Subject: [PATCH 43/75] changes to run on AlmaLinux8 and HBv3 --- apps/spack/build_spack.sh | 2 +- apps/spack/compilers.yaml | 4 ++-- apps/spack/packages.yaml | 2 +- apps/wrf/build_wps.sh | 2 +- apps/wrf/build_wrf.sh | 2 +- apps/wrf/readme.md | 12 ++++++------ 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/spack/build_spack.sh b/apps/spack/build_spack.sh index c6ec9258d..d02db7e9a 100755 --- a/apps/spack/build_spack.sh +++ b/apps/spack/build_spack.sh @@ -2,7 +2,7 @@ set -e APPS_SPACK_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" APP_NAME=spack -APP_VERSION=0.16.0 +APP_VERSION=0.16.3 SHARED_APP=${SHARED_APP:-/apps} INTEL_MPI_VERSION=${INTEL_MPI_VERSION:-2018.4.274} # This should be retrieved dynamically diff --git a/apps/spack/compilers.yaml b/apps/spack/compilers.yaml index 42cac4c45..b117ed82e 100644 --- a/apps/spack/compilers.yaml +++ b/apps/spack/compilers.yaml @@ -4,7 +4,7 @@ compilers: extra_rpaths: [] flags: {} modules: [] - operating_system: centos7 + operating_system: almalinux8 paths: cc: /usr/bin/gcc cxx: /usr/bin/g++ @@ -17,7 +17,7 @@ compilers: extra_rpaths: [] flags: {} modules: [gcc-9.2.0] - operating_system: centos7 + operating_system: almalinux8 paths: cc: /opt/gcc-9.2.0/bin/gcc cxx: /opt/gcc-9.2.0/bin/g++ diff --git a/apps/spack/packages.yaml b/apps/spack/packages.yaml index ded47454b..89015ee12 100644 --- a/apps/spack/packages.yaml +++ b/apps/spack/packages.yaml @@ -2,7 +2,7 @@ packages: openmpi: externals: - - spec: openmpi@4.0.5%gcc@9.2.0 + - spec: openmpi@5.0.2%gcc@9.2.0 modules: - mpi/openmpi buildable: False diff --git a/apps/wrf/build_wps.sh b/apps/wrf/build_wps.sh index f781c361f..b8cc68ff0 100755 --- a/apps/wrf/build_wps.sh +++ b/apps/wrf/build_wps.sh @@ -27,7 +27,7 @@ function get_version { WRF_VERSION=4.1.5 case $MPI_TYPE in openmpi) - MPI_VER=4.0.5 + MPI_VER=5.0.2 ;; mvapich2) MPI_VER=2.3.5 diff --git a/apps/wrf/build_wrf.sh b/apps/wrf/build_wrf.sh index 59d4c02f3..09180c8fe 100755 --- a/apps/wrf/build_wrf.sh +++ b/apps/wrf/build_wrf.sh @@ -38,7 +38,7 @@ function get_version { MPI_VER=2.7.4 ;; openmpi) - MPI_VER=4.0.5 + MPI_VER=5.0.2 ;; mvapich2) MPI_VER=2.3.5 diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index 888c988f6..dff295baf 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -36,17 +36,17 @@ sudo su - ###### Setup Spack cd /data/azurehpc/apps/spack -./build_spack.sh hbv2 -source /apps/spack/0.16.0/spack/share/spack/setup-env.sh +./build_spack.sh hbv3 +source /apps/spack/0.16.3/spack/share/spack/setup-env.sh ###### Setup WRF # MPI_TYPE : openmpi or mvapich2 -# SKU_TYPE : hb, hbv2, hc +# SKU_TYPE : hb, hbv2, hc, hbv3 -# This procedure uses openmpi and hbv2 +# This procedure uses openmpi and hbv3 cd /data/azurehpc/apps/wrf/ -./build_wrf.sh openmpi hbv2 -./build_wps.sh openmpi hbv2 +./build_wrf.sh openmpi hbv3 +./build_wps.sh openmpi hbv3 ``` Run the command to source the env-variables file: From 60b1eb6945b7ee58796ae9af43ff1c10f0917e63 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 12 Jul 2024 19:30:53 -0300 Subject: [PATCH 44/75] download of gfs files has changed --- apps/wrf/rda-download-gfs-files.py | 302 +++++++++++++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 apps/wrf/rda-download-gfs-files.py diff --git a/apps/wrf/rda-download-gfs-files.py b/apps/wrf/rda-download-gfs-files.py new file mode 100644 index 000000000..63d690c2d --- /dev/null +++ b/apps/wrf/rda-download-gfs-files.py @@ -0,0 +1,302 @@ +#!/usr/bin/env python +""" +Python script to download selected files from rda.ucar.edu. +After you save the file, don't forget to make it executable +i.e. - "chmod 755 " +""" +import sys, os +from urllib.request import build_opener + +opener = build_opener() + +filelist = [ + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f000.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f003.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f006.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f009.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f012.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f015.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f018.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f021.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f024.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f027.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f030.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f033.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f036.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f039.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f042.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f045.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f048.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f051.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f054.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f057.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f060.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f063.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f066.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f069.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f072.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f075.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f078.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f081.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f084.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f087.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f090.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f093.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f096.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f099.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f102.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f105.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f108.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f111.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f114.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f117.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f120.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f123.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f126.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f129.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f132.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f135.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f138.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f141.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f144.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f147.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f150.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f153.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f156.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f159.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f162.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f165.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f168.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f171.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f174.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f177.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f180.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f183.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f186.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f189.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f192.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f195.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f198.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f201.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f204.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f207.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f210.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f213.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f216.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f219.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f222.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f225.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f228.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f231.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f234.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f237.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f240.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f252.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f264.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f276.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f288.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f300.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f312.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f324.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f336.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f348.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f360.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f372.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061700.f384.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f000.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f003.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f006.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f009.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f012.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f015.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f018.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f021.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f024.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f027.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f030.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f033.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f036.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f039.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f042.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f045.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f048.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f051.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f054.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f057.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f060.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f063.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f066.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f069.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f072.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f075.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f078.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f081.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f084.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f087.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f090.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f093.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f096.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f099.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f102.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f105.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f108.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f111.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f114.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f117.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f120.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f123.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f126.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f129.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f132.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f135.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f138.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f141.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f144.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f147.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f150.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f153.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f156.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f159.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f162.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f165.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f168.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f171.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f174.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f177.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f180.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f183.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f186.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f189.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f192.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f195.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f198.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f201.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f204.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f207.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f210.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f213.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f216.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f219.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f222.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f225.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f228.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f231.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f234.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f237.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f240.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f252.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f264.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f276.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f288.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f300.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f312.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f324.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f336.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f348.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f360.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f372.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061706.f384.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f000.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f003.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f006.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f009.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f012.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f015.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f018.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f021.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f024.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f027.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f030.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f033.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f036.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f039.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f042.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f045.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f048.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f051.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f054.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f057.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f060.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f063.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f066.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f069.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f072.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f075.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f078.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f081.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f084.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f087.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f090.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f093.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f096.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f099.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f102.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f105.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f108.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f111.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f114.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f117.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f120.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f123.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f126.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f129.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f132.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f135.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f138.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f141.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f144.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f147.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f150.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f153.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f156.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f159.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f162.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f165.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f168.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f171.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f174.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f177.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f180.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f183.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f186.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f189.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f192.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f195.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f198.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f201.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f204.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f207.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f210.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f213.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f216.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f219.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f222.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f225.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f228.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f231.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f234.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f237.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f240.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f252.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f264.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f276.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f288.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f300.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f312.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f324.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f336.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f348.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f360.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f372.grib2', + 'https://data.rda.ucar.edu/ds084.1/2018/20180617/gfs.0p25.2018061712.f384.grib2' +] + +for file in filelist: + ofile = os.path.basename(file) + sys.stdout.write("downloading " + ofile + " ... ") + sys.stdout.flush() + infile = opener.open(file) + outfile = open(ofile, "wb") + outfile.write(infile.read()) + outfile.close() + sys.stdout.write("done\n") From 2179fb1ddd38ec47d38e65d19b7ba348a8547b06 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 12 Jul 2024 19:38:05 -0300 Subject: [PATCH 45/75] hbv2 to hbv3 --- apps/wrf/readme.md | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index dff295baf..c136e9bd6 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -3,7 +3,7 @@ ## Prerequisites - You need a cluster built with the desired configuration for networking, storage, compute etc. You can use the tutorial in this repo with an end-to-end instructions to setup a lab environment on Cycle Cloud to run WPS and WRF v4. (See [Install and run WPS and WRF v4 - end-to-end setup guide](../../experimental/wrf_on_cyclecloud/readme.md) for details). -- As this procedure uses HBv2 VMs to run WRFv4 simulations, you may need to request quota increase for this type of SKU in the subscription and region you will deploy the environment. You can use different SKU if you want to. +- As this procedure uses HBv3 VMs to run WRFv4 simulations, you may need to request quota increase for this type of SKU in the subscription and region you will deploy the environment. You can use different SKU if you want to. - You need to download/clone the azurehpc GitHub repository - This installation procedure requires you have 2 folders mounted /apps and /data on your storage solution @@ -16,7 +16,7 @@ ### Install WPS/WRF v4 software (via “azurehpc” scripts) -Spin up and SSH to a Worker Node VM (HBv2). +Spin up and SSH to a Worker Node VM (HBv3). **Important 1**: You must have the /apps and /data volumes correctly mounted on head and worker nodes. It is required for WRF setup scripts. @@ -125,14 +125,14 @@ Modify your **namelist.wps** file, setting the correct paths for **geog_data_pat #sudo su - #### Change Data Locations -cd /apps/hbv2/wps-openmpi/WPS-4.1 +cd /apps/hbv3/wps-openmpi/WPS-4.1 cp namelist.wps namelist.wps.old cp /data/wrfdata/WRF_benchmarks/cases/new_conus2.5km/namelist.wps namelist.wps -vi /apps/hbv2/wps-openmpi/WPS-4.1/namelist.wps +vi /apps/hbv3/wps-openmpi/WPS-4.1/namelist.wps geog_data_path = '/data/wrfdata/', - opt_geogrid_tbl_path = '/apps/hbv2/wps-openmpi/WPS-4.1/geogrid/', - opt_metgrid_tbl_path = '/apps/hbv2/wps-openmpi/WPS-4.1/metgrid/', + opt_geogrid_tbl_path = '/apps/hbv3/wps-openmpi/WPS-4.1/geogrid/', + opt_metgrid_tbl_path = '/apps/hbv3/wps-openmpi/WPS-4.1/metgrid/', ``` ### Run Applications: @@ -146,7 +146,7 @@ sudo su - source /data/azurehpc/apps/wrf/env-variables #### Run geogrid.exe -cd /apps/hbv2/wps-openmpi/WPS-4.1/ +cd /apps/hbv3/wps-openmpi/WPS-4.1/ mpirun --allow-run-as-root ./geogrid.exe ln -s ungrib/Variable_Tables/Vtable.GFS Vtable ./link_grib.csh /data/wrfdata/gfs_files/gfs.0p25.20180617* @@ -179,19 +179,19 @@ ls -l *met_em.d* # Keep as root sudo su - -cd /apps/hbv2/wrf-openmpi/WRF-4.1.5/run +cd /apps/hbv3/wrf-openmpi/WRF-4.1.5/run cp -f namelist.input namelist.input.old cp -f /data/wrfdata/WRF_benchmarks/cases/new_conus2.5km/namelist.input . -cp /apps/hbv2/wps-openmpi/WPS-4.1/met_em.d0*.nc . +cp /apps/hbv3/wps-openmpi/WPS-4.1/met_em.d0*.nc . mpirun --allow-run-as-root ./real.exe ``` Expected results: -The following files should be generated in /apps/hbv2/wrf-openmpi/WRF-4.1.5/run/ +The following files should be generated in /apps/hbv3/wrf-openmpi/WRF-4.1.5/run/ - wrfbdy_d01 - wrfinput_d01 ``` -ls -l /apps/hbv2/wrf-openmpi/WRF-4.1.5/run/*_d0* +ls -l /apps/hbv3/wrf-openmpi/WRF-4.1.5/run/*_d0* ``` #### Change Permissions on Files @@ -209,7 +209,7 @@ chmod -R g+w /apps **If you get here, you have completed the WRF v4 setup!** -Now you can shutdown and terminate the worker node (HBv2) used to perform these setup procedures. +Now you can shutdown and terminate the worker node (HBv3) used to perform these setup procedures. ## Running and Testing @@ -226,7 +226,7 @@ Connect to head node of your cluster and submit WRF v4 simulation job: mkdir ~/test1 cd ~/test1 -qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv3,INPUTDIR=/apps/hbv3/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 2 @@ -238,7 +238,7 @@ qsub -l select=1:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v " mkdir ~/test2 cd ~/test2 -qsub -l select=2:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=2:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv3,INPUTDIR=/apps/hbv3/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 3 @@ -250,7 +250,7 @@ qsub -l select=2:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v " mkdir ~/test3 cd ~/test3 -qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v "SKU_TYPE=hbv3,INPUTDIR=/apps/hbv3/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 4 @@ -262,7 +262,7 @@ qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=30,place=scatter:excl -v " mkdir ~/test4 cd ~/test4 -qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv3,INPUTDIR=/apps/hbv3/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 5 @@ -274,7 +274,7 @@ qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " mkdir ~/test5 cd ~/test5 -qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv3,INPUTDIR=/apps/hbv3/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 6 @@ -286,7 +286,7 @@ qsub -l select=3:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " mkdir ~/test6 cd ~/test6 -qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v "SKU_TYPE=hbv3,INPUTDIR=/apps/hbv3/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 7 @@ -298,7 +298,7 @@ qsub -l select=4:nodearray=execute1:ncpus=60:mpiprocs=60,place=scatter:excl -v " mkdir ~/test7 cd ~/test7 -qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv3,INPUTDIR=/apps/hbv3/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 8 @@ -310,7 +310,7 @@ qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v " mkdir ~/test8 cd ~/test8 -qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv3,INPUTDIR=/apps/hbv3/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 9 @@ -322,7 +322,7 @@ qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v " mkdir ~/test9 cd ~/test9 -qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv3,INPUTDIR=/apps/hbv3/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` - Test 10 @@ -334,7 +334,7 @@ qsub -l select=3:nodearray=execute1:ncpus=64:mpiprocs=64,place=scatter:excl -v " mkdir ~/test10 cd ~/test10 -qsub -l select=3:nodearray=execute1:ncpus=120:mpiprocs=120,place=scatter:excl -v "SKU_TYPE=hbv2,INPUTDIR=/apps/hbv2/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs +qsub -l select=3:nodearray=execute1:ncpus=120:mpiprocs=120,place=scatter:excl -v "SKU_TYPE=hbv3,INPUTDIR=/apps/hbv3/wrf-openmpi/WRF-4.1.5/run" /data/azurehpc/apps/wrf/run_wrf_openmpi.pbs ``` ### Test Results From 221767743a6520910c10047fc079ef8f2d0d3cc1 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Mon, 15 Jul 2024 15:10:31 -0300 Subject: [PATCH 46/75] small fixes and including hbv3 --- apps/wrf/env-variables | 11 ++++++++--- apps/wrf/readme.md | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/apps/wrf/env-variables b/apps/wrf/env-variables index b80bb5ec2..6e7eb7bd6 100644 --- a/apps/wrf/env-variables +++ b/apps/wrf/env-variables @@ -1,6 +1,11 @@ -SKU_TYPE=hbv2 +SKU_TYPE=${1:-$hbv3} +SKU_TYPE=${SKU_TYPE:-$hbv3} +SHARED_APP=${2:-/apps} SHARED_APP=${SHARED_APP:-/apps} +echo "SKU_TYPE:" $SKU_TYPE +echo "SHARED_APP:" $SHARED_APP + if ! rpm -q python3; then sudo yum install -y python3 fi @@ -13,10 +18,10 @@ spack load netcdf-fortran^openmpi spack load hdf5^openmpi spack load perl module use /usr/share/Modules/modulefiles -module load mpi/openmpi-4.1.0 +module load mpi/openmpi-5.0.2 module load gcc-9.2.0 module load wrf/4.1.5-openmpi mpi_options="-x LD_LIBRARY_PATH " if [ -n $LD_PRELOAD ]; then mpi_options+="-x LD_PRELOAD" -fi \ No newline at end of file +fi diff --git a/apps/wrf/readme.md b/apps/wrf/readme.md index c136e9bd6..29dffd43b 100755 --- a/apps/wrf/readme.md +++ b/apps/wrf/readme.md @@ -54,7 +54,7 @@ Run the command to source the env-variables file: ###### Source Variables # Keep as root #sudo su - -source /data/azurehpc/apps/wrf/env-variables +source /data/azurehpc/apps/wrf/env-variables hbv3 ``` ### Download WFR Input DATA (new_conus2.5km) @@ -143,7 +143,7 @@ vi /apps/hbv3/wps-openmpi/WPS-4.1/namelist.wps sudo su - # Source variables -source /data/azurehpc/apps/wrf/env-variables +source /data/azurehpc/apps/wrf/env-variables hbv3 #### Run geogrid.exe cd /apps/hbv3/wps-openmpi/WPS-4.1/ @@ -159,7 +159,7 @@ mpirun --allow-run-as-root ./metgrid.exe Expected results 1: ``` # ! Successful completion of metgrid. ! -# You may receive also some warnings: +# You may receive also some warnings, which is expected: Note: The following floating-point exceptions are signalling: IEEE_OVERFLOW_FLAG IEEE_UNDERFLOW_FLAG IEEE_DENORMAL ``` Expected results 2: From 6644b1ecbbfdf8a26293b8d3fa7e53e2fb1c6dc6 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Tue, 16 Jul 2024 12:10:38 -0300 Subject: [PATCH 47/75] add slurm script --- apps/wrf/run_wrf_openmpi.slurm | 46 ++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 apps/wrf/run_wrf_openmpi.slurm diff --git a/apps/wrf/run_wrf_openmpi.slurm b/apps/wrf/run_wrf_openmpi.slurm new file mode 100644 index 000000000..09912afa2 --- /dev/null +++ b/apps/wrf/run_wrf_openmpi.slurm @@ -0,0 +1,46 @@ +#!/bin/bash + +#SBATCH --job-name=wrf +#SBATCH --nodes=1 +#SBATCH --ntasks=120 + +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv3"} +INPUTDIR=${2:-$INPUTDIR} +INPUTDIR=${INPUTDIR:-"/apps/hbv3/wrf-openmpi/WRF-4.1.5/run"} + +echo "INPUTDIR:" $INPUTDIR +echo "SKU_TYPE:" $SKU_TYPE + +SHARED_APP=${SHARED_APP:-/apps} + +if [ -z $INPUTDIR ]; then + echo "INPUTDIR parameter is required" + exit 1 +fi + +if ! rpm -q python3; then + sudo yum install -y python3 +fi + +echo "source envs" +source /data/azurehpc/apps/wrf/env-variables + +echo "SLURM_NTASKS:"$SLURM_NTASKS + +echo "SLURM_SUBMIT_DIR:" $SLURM_SUBMIT_DIR +echo "WRFROOT:" ${WRFROOT} +echo "INPUTDIR: " ${INPUTDIR} + +cd $SLURM_SUBMIT_DIR +ln -s ${WRFROOT}/run/* . +cp ${INPUTDIR}/*_d01 . +cp ${INPUTDIR}/namelist.input . + +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi +echo "SLURM_JOB_NODELIST:" $SLURM_JOB_NODELIST + +mpirun $mpi_options -n $SLURM_NTASKS --hostfile $SLURM_JOB_NODELIST --bind-to numa wrf.exe From fc742ad71172f55088b0d7e64b5215a437052380 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Wed, 17 Jul 2024 16:23:32 -0300 Subject: [PATCH 48/75] slurm submission --- apps/wrf/run_wrf_openmpi.slurm | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/apps/wrf/run_wrf_openmpi.slurm b/apps/wrf/run_wrf_openmpi.slurm index 09912afa2..b7145697f 100644 --- a/apps/wrf/run_wrf_openmpi.slurm +++ b/apps/wrf/run_wrf_openmpi.slurm @@ -1,8 +1,14 @@ #!/bin/bash #SBATCH --job-name=wrf -#SBATCH --nodes=1 -#SBATCH --ntasks=120 +#SBATCH --partition=hpc +#SBATCH --nodes=1 ### number of nodes (-N) +###SBATCH --ntasks=120 ### number of parallel processes (tasks) (-n) +#SBATCH --ntasks-per-node=120 ### number of parallel processes (tasks) per node (-c) +#SBATCH --exclusive +#SBATCH --output=slurm-wrf-%j.out +#SBATCH --error=slurm-wrf-%j.err + SKU_TYPE=${1:-$SKU_TYPE} SKU_TYPE=${SKU_TYPE:-"hbv3"} @@ -24,7 +30,7 @@ if ! rpm -q python3; then fi echo "source envs" -source /data/azurehpc/apps/wrf/env-variables +source /data/azurehpc/apps/wrf/env-variables hbv3 echo "SLURM_NTASKS:"$SLURM_NTASKS @@ -42,5 +48,13 @@ if [ -n $LD_PRELOAD ]; then mpi_options+="-x LD_PRELOAD" fi echo "SLURM_JOB_NODELIST:" $SLURM_JOB_NODELIST +echo "mpi_options:" $mpi_options + +scontrol show hostname $SLURM_JOB_NODELIST > hostfile.txt +echo "cat hostfile.txt: " +cat hostfile.txt + +NPROCS=`cat hostfile.txt | wc -l` +echo "NPROCS:" $NPROCS -mpirun $mpi_options -n $SLURM_NTASKS --hostfile $SLURM_JOB_NODELIST --bind-to numa wrf.exe +mpirun $mpi_options -n $NPROCS --hostfile hostfile.txt --bind-to numa wrf.exe From a75b7d7a257917509b5469d1a8affde7de8979bf Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Thu, 18 Jul 2024 12:10:26 -0300 Subject: [PATCH 49/75] Update install-cyclecloud.md --- tutorials/cyclecloud/install-cyclecloud.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorials/cyclecloud/install-cyclecloud.md b/tutorials/cyclecloud/install-cyclecloud.md index 2992518b0..51129e2e3 100644 --- a/tutorials/cyclecloud/install-cyclecloud.md +++ b/tutorials/cyclecloud/install-cyclecloud.md @@ -93,7 +93,7 @@ Create storage account from the Azure Portal: ## 7. Install CycleCloud CLI - Follow these steps to [Install CycleCloud CLI](https://learn.microsoft.com/en-us/azure/cyclecloud/how-to/install-cyclecloud-cli?view=cyclecloud-8): ``` -wget wget https:///static/tools/cyclecloud-cli.zip --no-check-certificate +wget https:///static/tools/cyclecloud-cli.zip --no-check-certificate unzip cyclecloud-cli.zip cd cyclecloud-cli-installer ./install.sh From 652960a4c2bd06e20638f5c59ec00ccc61db0b91 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Thu, 18 Jul 2024 13:56:02 -0300 Subject: [PATCH 50/75] Newer version of WRF PBS template --- apps/wrf/opbswrf-template-v2.txt | 484 +++++++++++++++++++++++++++++++ 1 file changed, 484 insertions(+) create mode 100644 apps/wrf/opbswrf-template-v2.txt diff --git a/apps/wrf/opbswrf-template-v2.txt b/apps/wrf/opbswrf-template-v2.txt new file mode 100644 index 000000000..2f02d6c51 --- /dev/null +++ b/apps/wrf/opbswrf-template-v2.txt @@ -0,0 +1,484 @@ + +################################ +## Cluster Configuration File ## +################################ + +[cluster OpenPBS-WRF] +FormLayout = selectionpanel +IconUrl = https://avatars.githubusercontent.com/u/12666893?s=200&v=4 +Category = Schedulers + +Autoscale = $Autoscale + + [[node defaults]] + UsePublicNetwork = $UsePublicNetwork + Credentials = $Credentials + ImageName = $ImageName + SubnetId = $SubnetId + Region = $Region + KeyPairLocation = ~/.ssh/cyclecloud.pem + Azure.Identities = $ManagedIdentity + + [[[configuration]]] + pbspro.version = $PBSVersion + # For fast spin-up after Deallocate, force an immediate re-converge on boot + cyclecloud.converge_on_boot = true + + # Disable normal NFS exports and mounts + cyclecloud.mounts.sched.disabled = true + cyclecloud.mounts.shared.disabled = true + cyclecloud.exports.sched.disabled = true + cyclecloud.exports.shared.disabled = true + cyclecloud.exports.sched.samba.enabled = false + cyclecloud.exports.shared.samba.enabled = false + cyclecloud.exports.defaults.samba.enabled = false + cshared.server.legacy_links_disabled = true + + # May be used to identify the ID in cluster-init scripts + cluster.identities.default = $ManagedIdentity + + [[[cluster-init cyclecloud/pbspro:default]]] + Optional = false + + + [[[volume boot]]] + Size = ${ifThenElse(BootDiskSize > 0, BootDiskSize, undefined)} + SSD = True + + [[[configuration cyclecloud.mounts.nfs_shared]]] + type = nfs + mountpoint = /shared + export_path = $NFSSharedExportPath + address = $NFSAddress + options = $NFSSharedMountOptions + + [[[configuration cyclecloud.mounts.nfs_sched]]] + type = nfs + mountpoint = /sched + disabled = $NFSSchedDisable + + [[[configuration cyclecloud.mounts.additional_nfs1]]] + disabled = ${AdditionalNAS1 isnt true} + type = nfs + address = $AdditonalNFSAddress1 + mountpoint = $AdditionalNFSMountPoint1 + export_path = $AdditionalNFSExportPath1 + options = $AdditionalNFSMountOptions1 + + + [[[configuration cyclecloud.mounts.additional_nfs2]]] + disabled = ${AdditionalNAS2 isnt true} + type = nfs + address = $AdditonalNFSAddress2 + mountpoint = $AdditionalNFSMountPoint2 + export_path = $AdditionalNFSExportPath2 + options = $AdditionalNFSMountOptions2 + + + [[node server]] + ImageName = $SchedulerImageName + MachineType = $serverMachineType + IsReturnProxy = $ReturnProxy + AdditionalClusterInitSpecs = $serverClusterInitSpecs + + [[[configuration]]] + cyclecloud.mounts.nfs_sched.disabled = true + cyclecloud.mounts.nfs_shared.disabled = ${NFSType != "External"} + pbspro.cron_method = $AzpbsCronMethod + pbspro.queues.workq.ignore = ${Autoscale != true} + pbspro.queues.htcq.ignore = ${Autoscale != true} + + [[[cluster-init cyclecloud/pbspro:server]]] + + [[[network-interface eth0]]] + AssociatePublicIpAddress = $UsePublicNetwork + + [[[input-endpoint ganglia]]] + PrivatePort = 8652 + PublicPort = 8652 + + [[[volume sched]]] + Size = 1024 + SSD = True + Mount = builtinsched + Persistent = False + + [[[volume shared]]] + Size = ${ifThenElse(NFSType == "Builtin", FilesystemSize, 2)} + SSD = True + Mount = builtinshared + Persistent = ${NFSType == "Builtin"} + + [[[configuration cyclecloud.mounts.builtinsched]]] + mountpoint = /sched + fs_type = xfs + + [[[configuration cyclecloud.mounts.builtinshared]]] + disabled = ${NFSType != "Builtin"} + mountpoint = /shared + fs_type = xfs + + [[[configuration cyclecloud.exports.builtinsched]]] + export_path = /sched + options = no_root_squash + samba.enabled = false + type = nfs + + [[[configuration cyclecloud.exports.builtinshared]]] + disabled = ${NFSType != "Builtin"} + export_path = /shared + samba.enabled = false + type = nfs + + + + [[nodearray login]] + InitialCount = $NumberLoginNodes + MachineType = $serverMachineType + + [[[cluster-init cyclecloud/pbspro:login]]] + + [[[configuration]]] + autoscale.enabled = false + + [[nodearray execute]] + MachineType = $ExecuteMachineType + MaxCoreCount = $MaxExecuteCoreCount + + Interruptible = $UseLowPrio + AdditionalClusterInitSpecs = $ExecuteClusterInitSpecs + EnableNodeHealthChecks = $EnableNodeHealthChecks + + + [[[configuration]]] + # setting this completely disables the autoscaler from adding nodes to the cluster + # even manually created nodes. Instead, you can add this to your autoscale.json + # {"pbspro": {"ignore_queues": ["workq", "htcq"]}} + # which is what pbspro.queues.workq.ignore does as well. + # autoscale.enabled = $Autoscale + + [[[cluster-init cyclecloud/pbspro:execute]]] + + [[[network-interface eth0]]] + AssociatePublicIpAddress = $ExecuteNodesPublic + + +[parameters About] +Order = 1 + + [[parameters About OpenPBS]] + + [[[parameter pbspro]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "

    OpenPBS is a highly configurable open source workload manager. See the OpenPBS project site for an overview.

    " + +[parameters Required Settings] +Order = 10 + + [[parameters Virtual Machines ]] + Description = "The cluster, in this case, has two roles: the scheduler server-node with shared filer and the execute hosts. Configure which VM types to use based on the requirements of your application." + Order = 20 + + [[[parameter Region]]] + Label = Region + Description = Deployment Location + ParameterType = Cloud.Region + + [[[parameter serverMachineType]]] + Label = Server VM Type + Description = The VM type for scheduler server and shared filer. + ParameterType = Cloud.MachineType + DefaultValue = Standard_D8as_v4 + + [[[parameter ExecuteMachineType]]] + Label = Execute VM Type + Description = The VM type for execute nodes + ParameterType = Cloud.MachineType + DefaultValue = Standard_F2s_v2 + Config.Multiselect = true + + + [[parameters Auto-Scaling]] + Description = "The cluster can autoscale to the workload, adding execute hosts as jobs are queued. To enable this, check the box below and choose the initial and maximum core counts for the cluster." + Order = 30 + + [[[parameter Autoscale]]] + Label = Autoscale + DefaultValue = true + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Start instances automatically. Shutdown is determined by Keep Alive. + + [[[parameter AzpbsCronMethod]]] + Label = Cron Method + DefaultValue = cron + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="Cron"; Value="cron"], [Label="PBS Timer Hook"; Value="pbs_hook"]} + Config.Options = cron,pbs_hook + Description = "The method used to run the azpbs cron job. Cron is the default and will run the azpbs cron job 15 seconds. The pbs_hook method will do the same but use PBS built-in timer." + + [[[parameter MaxExecuteCoreCount]]] + Label = Max Cores + Description = The total number of execute cores to start + DefaultValue = 100 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 1 + Config.IntegerOnly = true + + [[[parameter UseLowPrio]]] + Label = Low Priority + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Use low priority instances for execute hosts + + [[parameters Networking]] + Order = 40 + + [[[parameter SubnetId]]] + Label = Subnet ID + Description = Subnet Resource Path (ResourceGroup/VirtualNetwork/Subnet) + ParameterType = Azure.Subnet + Required = True + +[parameters Network Attached Storage] +Order = 15 + + + [[parameters Scheduler Mount]] + Order = 5 + [[[parameter About sched]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''

    The directory /sched is a network attached mount and exists in all nodes of the cluster. + It's managed by the scheduler node. + To disable the mount of the /sched directory, and to supply your own for a hybrid scenario, select the checkbox below.''' + Order = 6 + + [[[parameter NFSSchedDisable]]] + HideLabel = true + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = External Scheduler + + [[parameters Default NFS Share]] + Order = 10 + [[[parameter About shared]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "

    The directory /shared is a network attached mount and exists in all nodes of the cluster. Users' home directories reside within this mountpoint with the base homedir /shared/home.

    There are two options for providing this mount:
    [Builtin]: The scheduler node is an NFS server that provides the mountpoint to the other nodes of the cluster.
    [External NFS]: A network attached storage such as Azure Netapp Files, HPC Cache, or another VM running an NFS server, provides the mountpoint.

    Note: the cluster must be terminated for this to take effect.

    " + Order = 20 + + [[[parameter NFSType]]] + Label = NFS Type + ParameterType = StringList + Config.Label = Type of NFS to use for this cluster + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="External NFS"; Value="External"], [Label="Builtin"; Value="Builtin"]} + DefaultValue = Builtin + + [[[parameter NFSDiskWarning]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "

    Warning: switching an active cluster over to NFS will delete the shared disk.

    " + Conditions.Hidden := NFSType != "External" + + [[[parameter NFSAddress]]] + Label = NFS IP Address + Description = The IP address or hostname of the NFS server. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + Conditions.Hidden := NFSType != "External" + + [[[parameter NFSSharedExportPath]]] + Label = Shared Export Path + Description = The path exported by the file system + DefaultValue = /shared + Conditions.Hidden := NFSType != "External" + + [[[parameter NFSSharedMountOptions]]] + Label = NFS Mount Options + Description = NFS Client Mount Options + Conditions.Hidden := NFSType != "External" + + [[[parameter FilesystemSize]]] + Label = Size (GB) + Description = The filesystem size (cannot be changed after initial start) + DefaultValue = 100 + + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 10 + Config.MaxValue = 10240 + Config.IntegerOnly = true + Conditions.Excluded := NFSType != "Builtin" + + [[parameters Additional NFS Mount]] + Order = 20 + [[[parameter Additional NFS Mount Readme]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "

    Mount another NFS endpoint on the cluster nodes.

    " + Order = 20 + + [[[parameter AdditionalNAS1]]] + HideLabel = true + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Add NFS mount + + [[[parameter AdditonalNFSAddress1]]] + Label = NFS IP Address + Description = The IP address or hostname of the NFS server. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + Conditions.Excluded := AdditionalNAS1 isnt true + + [[[parameter AdditionalNFSMountPoint1]]] + Label = NFS Mount Point + Description = The path at which to mount the Filesystem + DefaultValue = /data + Conditions.Excluded := AdditionalNAS1 isnt true + + [[[parameter AdditionalNFSExportPath1]]] + Label = NFS Export Path + Description = The path exported by the file system + DefaultValue = /anf-vol2/wrf/data + Conditions.Excluded := AdditionalNAS1 isnt true + + [[[parameter AdditionalNFSMountOptions1]]] + Label = NFS Mount Options + Description = NFS Client Mount Options + Conditions.Excluded := AdditionalNAS1 isnt true + + [[[parameter AdditionalNAS2]]] + HideLabel = true + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Add NFS mount + + [[[parameter AdditonalNFSAddress2]]] + Label = NFS IP Address + Description = The IP address or hostname of the NFS server. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + Conditions.Excluded := AdditionalNAS2 isnt true + + [[[parameter AdditionalNFSMountPoint2]]] + Label = NFS Mount Point + Description = The path at which to mount the Filesystem + DefaultValue = /apps + Conditions.Excluded := AdditionalNAS2 isnt true + + [[[parameter AdditionalNFSExportPath2]]] + Label = NFS Export Path + Description = The path exported by the file system + DefaultValue = /anf-vol2/wrf/apps + Conditions.Excluded := AdditionalNAS2 isnt true + + [[[parameter AdditionalNFSMountOptions2]]] + Label = NFS Mount Options + Description = NFS Client Mount Options + Conditions.Excluded := AdditionalNAS2 isnt true + + +[parameters Advanced Settings] +Order = 20 + + [[parameters Azure Settings]] + Order = 10 + + [[[parameter Credentials]]] + Description = The credentials for the cloud provider + ParameterType = Cloud.Credentials + + [[[parameter ManagedIdentity]]] + Label = Managed Id + Description = Optionally assign an Azure user assigned managed identity to all nodes to access Azure resources using assigned roles. + ParameterType = Azure.ManagedIdentity + DefaultValue = =undefined + + [[[parameter BootDiskSize]]] + Description = Optional: Size of the OS/boot disk in GB for all nodes in the cluster (leave at 0 to use Image size) + ParameterType = Integer + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 0 + Config.MaxValue = 32,000 + Config.IntegerOnly = true + Config.Increment = 64 + DefaultValue = 0 + + + + [[parameters Software]] + Description = "Specify the scheduling software, and base OS installed on all nodes, and optionally the cluster-init and chef versions from your locker." + Order = 10 + + + [[[parameter SchedulerImageName]]] + Label = Scheduler OS + ParameterType = Cloud.Image + Config.OS = linux + DefaultValue = almalinux8 + Config.Filter := Package in {"cycle.image.centos7", "almalinux8"} + + [[[parameter ImageName]]] + Label = Compute OS + ParameterType = Cloud.Image + Config.OS = linux + DefaultValue = almalinux8 + Config.Filter := Package in {"cycle.image.centos7", "almalinux8"} + + [[[parameter PBSVersion]]] + Label = PBS Version + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="OpenPBS v22, el8-only"; Value="22.05.11-0"], [Label="OpenPBS v20, el8-only"; Value="20.0.1-0"], [Label="PBSPro v18, el7-only"; Value="18.1.4-0"]} + DefaultValue = 20.0.1-0 + + [[[parameter serverClusterInitSpecs]]] + Label = Server Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to the server node + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter ExecuteClusterInitSpecs]]] + Label = Execute Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to execute nodes + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter NumberLoginNodes]]] + Label = Num Login Nodes + DefaultValue = 0 + Description = Number of optional login nodes to create. + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 0 + Config.MaxValue = 10000 + Config.IntegerOnly = true + + + [[parameters Advanced Networking]] + + [[[parameter ReturnProxy]]] + Label = Return Proxy + DefaultValue = true + ParameterType = Boolean + Config.Label = Use SSH tunnel to connect to CycleCloud (required if direct access is blocked) + + [[[parameter UsePublicNetwork]]] + Label = Public Head Node + DefaultValue = true + ParameterType = Boolean + Config.Label = Access server node from the Internet + + [[[parameter ExecuteNodesPublic]]] + Label = Public Execute + DefaultValue = false + ParameterType = Boolean + Config.Label = Access execute nodes from the Internet + Conditions.Excluded := UsePublicNetwork isnt true + + [[parameters Node Health Checks]] + Description = "Section for configuring Node Health Checks" + Order = 12 + + [[[parameter EnableNodeHealthChecks]]] + Label = Enable NHC tests + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Run Node Health Checks on startup \ No newline at end of file From d3bb31747fe7645f1aeabd484d380c2852202b0b Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 19 Jul 2024 14:22:09 -0300 Subject: [PATCH 51/75] solving issues with slurm file --- apps/wrf/run_wrf_openmpi_v2.slurm | 63 +++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 apps/wrf/run_wrf_openmpi_v2.slurm diff --git a/apps/wrf/run_wrf_openmpi_v2.slurm b/apps/wrf/run_wrf_openmpi_v2.slurm new file mode 100644 index 000000000..7a3e41da4 --- /dev/null +++ b/apps/wrf/run_wrf_openmpi_v2.slurm @@ -0,0 +1,63 @@ +#!/bin/bash +#SBATCH --job-name=wrf +#SBATCH --partition=hpc +###SBATCH --ntasks=120 +#SBATCH --ntasks-per-node=120 +#SBATCH --nodes=2 +#SBATCH --exclusive +#SBATCH --output=log-hello_mpi_test.out + +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv3"} +INPUTDIR=${2:-$INPUTDIR} +INPUTDIR=${INPUTDIR:-"/apps/hbv3/wrf-openmpi/WRF-4.1.5/run"} + +echo "INPUTDIR:" $INPUTDIR +echo "SKU_TYPE:" $SKU_TYPE + +SHARED_APP=${SHARED_APP:-/apps} + +if [ -z $INPUTDIR ]; then + echo "INPUTDIR parameter is required" + exit 1 +fi + +if ! rpm -q python3; then + sudo yum install -y python3 +fi + +echo "source envs" +source /data/azurehpc/apps/wrf/env-variables hbv3 + +# Run the program with mpirun +echo "SLURM_JOB_NODELIST:" $SLURM_JOB_NODELIST +echo "SLURM_NTASKS:" $SLURM_NTASKS + +scontrol show hostname $SLURM_JOB_NODELIST > hostfile.txt +NPROCS=`cat hostfile.txt | wc -l` +echo "NPROCS:" $NPROCS + +echo "SLURM_SUBMIT_DIR:" $SLURM_SUBMIT_DIR +echo "WRFROOT:" ${WRFROOT} +echo "INPUTDIR: " ${INPUTDIR} + +cd $SLURM_SUBMIT_DIR +ln -s ${WRFROOT}/run/* . +cp ${INPUTDIR}/*_d01 . +cp ${INPUTDIR}/namelist.input . + +echo "LD_PRELOAD:" $LD_PRELOAD +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi +echo "mpi_options:" $mpi_options + +pwd + +echo "=============1" +#mpirun $mpi_options -n $NPROCS --hostfile hostfile.txt --bind-to numa ./hello_mpi +mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa /data/hello-world/hello_mpi +echo "=============2" +mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa ./wrf.exe +echo "=============3" From d3b3da083d590af32292d8c8429b8530cd05c47b Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 19 Jul 2024 18:54:51 -0300 Subject: [PATCH 52/75] fixing slurm script and submission --- apps/wrf/run_wrf_openmpi.slurm | 23 +++++------ apps/wrf/run_wrf_openmpi_v2.slurm | 63 ------------------------------- apps/wrf/submit-wrf-slurm.sh | 2 + 3 files changed, 12 insertions(+), 76 deletions(-) delete mode 100644 apps/wrf/run_wrf_openmpi_v2.slurm create mode 100644 apps/wrf/submit-wrf-slurm.sh diff --git a/apps/wrf/run_wrf_openmpi.slurm b/apps/wrf/run_wrf_openmpi.slurm index b7145697f..c4c43779f 100644 --- a/apps/wrf/run_wrf_openmpi.slurm +++ b/apps/wrf/run_wrf_openmpi.slurm @@ -1,14 +1,10 @@ #!/bin/bash - #SBATCH --job-name=wrf #SBATCH --partition=hpc -#SBATCH --nodes=1 ### number of nodes (-N) -###SBATCH --ntasks=120 ### number of parallel processes (tasks) (-n) -#SBATCH --ntasks-per-node=120 ### number of parallel processes (tasks) per node (-c) +#SBATCH --ntasks-per-node=120 +#SBATCH --nodes=2 #SBATCH --exclusive #SBATCH --output=slurm-wrf-%j.out -#SBATCH --error=slurm-wrf-%j.err - SKU_TYPE=${1:-$SKU_TYPE} SKU_TYPE=${SKU_TYPE:-"hbv3"} @@ -32,8 +28,6 @@ fi echo "source envs" source /data/azurehpc/apps/wrf/env-variables hbv3 -echo "SLURM_NTASKS:"$SLURM_NTASKS - echo "SLURM_SUBMIT_DIR:" $SLURM_SUBMIT_DIR echo "WRFROOT:" ${WRFROOT} echo "INPUTDIR: " ${INPUTDIR} @@ -43,18 +37,21 @@ ln -s ${WRFROOT}/run/* . cp ${INPUTDIR}/*_d01 . cp ${INPUTDIR}/namelist.input . +echo "LD_PRELOAD:" $LD_PRELOAD mpi_options="-x LD_LIBRARY_PATH " if [ -n $LD_PRELOAD ]; then mpi_options+="-x LD_PRELOAD" fi -echo "SLURM_JOB_NODELIST:" $SLURM_JOB_NODELIST echo "mpi_options:" $mpi_options -scontrol show hostname $SLURM_JOB_NODELIST > hostfile.txt -echo "cat hostfile.txt: " -cat hostfile.txt +echo "SLURM_JOB_NODELIST:" $SLURM_JOB_NODELIST +echo "SLURM_NTASKS:" $SLURM_NTASKS +scontrol show hostname $SLURM_JOB_NODELIST > hostfile.txt NPROCS=`cat hostfile.txt | wc -l` echo "NPROCS:" $NPROCS -mpirun $mpi_options -n $NPROCS --hostfile hostfile.txt --bind-to numa wrf.exe +echo "Running WRF.exe..." +#mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa /data/hello-world/hello_mpi +mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa wrf.exe +echo "WRF finished." diff --git a/apps/wrf/run_wrf_openmpi_v2.slurm b/apps/wrf/run_wrf_openmpi_v2.slurm deleted file mode 100644 index 7a3e41da4..000000000 --- a/apps/wrf/run_wrf_openmpi_v2.slurm +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -#SBATCH --job-name=wrf -#SBATCH --partition=hpc -###SBATCH --ntasks=120 -#SBATCH --ntasks-per-node=120 -#SBATCH --nodes=2 -#SBATCH --exclusive -#SBATCH --output=log-hello_mpi_test.out - -SKU_TYPE=${1:-$SKU_TYPE} -SKU_TYPE=${SKU_TYPE:-"hbv3"} -INPUTDIR=${2:-$INPUTDIR} -INPUTDIR=${INPUTDIR:-"/apps/hbv3/wrf-openmpi/WRF-4.1.5/run"} - -echo "INPUTDIR:" $INPUTDIR -echo "SKU_TYPE:" $SKU_TYPE - -SHARED_APP=${SHARED_APP:-/apps} - -if [ -z $INPUTDIR ]; then - echo "INPUTDIR parameter is required" - exit 1 -fi - -if ! rpm -q python3; then - sudo yum install -y python3 -fi - -echo "source envs" -source /data/azurehpc/apps/wrf/env-variables hbv3 - -# Run the program with mpirun -echo "SLURM_JOB_NODELIST:" $SLURM_JOB_NODELIST -echo "SLURM_NTASKS:" $SLURM_NTASKS - -scontrol show hostname $SLURM_JOB_NODELIST > hostfile.txt -NPROCS=`cat hostfile.txt | wc -l` -echo "NPROCS:" $NPROCS - -echo "SLURM_SUBMIT_DIR:" $SLURM_SUBMIT_DIR -echo "WRFROOT:" ${WRFROOT} -echo "INPUTDIR: " ${INPUTDIR} - -cd $SLURM_SUBMIT_DIR -ln -s ${WRFROOT}/run/* . -cp ${INPUTDIR}/*_d01 . -cp ${INPUTDIR}/namelist.input . - -echo "LD_PRELOAD:" $LD_PRELOAD -mpi_options="-x LD_LIBRARY_PATH " -if [ -n $LD_PRELOAD ]; then - mpi_options+="-x LD_PRELOAD" -fi -echo "mpi_options:" $mpi_options - -pwd - -echo "=============1" -#mpirun $mpi_options -n $NPROCS --hostfile hostfile.txt --bind-to numa ./hello_mpi -mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa /data/hello-world/hello_mpi -echo "=============2" -mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa ./wrf.exe -echo "=============3" diff --git a/apps/wrf/submit-wrf-slurm.sh b/apps/wrf/submit-wrf-slurm.sh new file mode 100644 index 000000000..2662b2d8b --- /dev/null +++ b/apps/wrf/submit-wrf-slurm.sh @@ -0,0 +1,2 @@ +#!/bin/bash +sbatch --export=ALL,SKU_TYPE=hbv3,INPUTDIR=/apps/hbv3/wrf-openmpi/WRF-4.1.5/run /data/azurehpc/apps/wrf/run_wrf_openmpi.slurm From d1f33e6324c936108600fbcfde0fe0b6d9f56cb9 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 19 Jul 2024 19:21:40 -0300 Subject: [PATCH 53/75] add duration --- apps/wrf/run_wrf_openmpi.slurm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/wrf/run_wrf_openmpi.slurm b/apps/wrf/run_wrf_openmpi.slurm index c4c43779f..7078f2aea 100644 --- a/apps/wrf/run_wrf_openmpi.slurm +++ b/apps/wrf/run_wrf_openmpi.slurm @@ -2,10 +2,13 @@ #SBATCH --job-name=wrf #SBATCH --partition=hpc #SBATCH --ntasks-per-node=120 -#SBATCH --nodes=2 +#SBATCH --nodes=1 #SBATCH --exclusive #SBATCH --output=slurm-wrf-%j.out +# Capture start time +start_time=$(date +%s) + SKU_TYPE=${1:-$SKU_TYPE} SKU_TYPE=${SKU_TYPE:-"hbv3"} INPUTDIR=${2:-$INPUTDIR} @@ -54,4 +57,10 @@ echo "NPROCS:" $NPROCS echo "Running WRF.exe..." #mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa /data/hello-world/hello_mpi mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa wrf.exe +# Capture end time +end_time=$(date +%s) +# Calculate duration +duration=$((end_time - start_time)) echo "WRF finished." +echo "Execution time: $duration seconds" + From dcf42e1dc13d4e062f6c73b714253f86f2ff982f Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 19 Jul 2024 19:27:15 -0300 Subject: [PATCH 54/75] fix --- apps/wrf/run_wrf_openmpi.slurm | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/wrf/run_wrf_openmpi.slurm b/apps/wrf/run_wrf_openmpi.slurm index 7078f2aea..e6f9b2636 100644 --- a/apps/wrf/run_wrf_openmpi.slurm +++ b/apps/wrf/run_wrf_openmpi.slurm @@ -57,6 +57,7 @@ echo "NPROCS:" $NPROCS echo "Running WRF.exe..." #mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa /data/hello-world/hello_mpi mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa wrf.exe + # Capture end time end_time=$(date +%s) # Calculate duration From 7142c08ab420dd12991f4b9d26b4b9bdb66efddb Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 19 Jul 2024 21:51:10 -0300 Subject: [PATCH 55/75] format duration --- apps/wrf/run_wrf_openmpi.slurm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/wrf/run_wrf_openmpi.slurm b/apps/wrf/run_wrf_openmpi.slurm index e6f9b2636..38bee743d 100644 --- a/apps/wrf/run_wrf_openmpi.slurm +++ b/apps/wrf/run_wrf_openmpi.slurm @@ -62,6 +62,12 @@ mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa wrf. end_time=$(date +%s) # Calculate duration duration=$((end_time - start_time)) +# Format duration to hh:mm:ss +hours=$(printf "%02d" $((duration / 3600))) +minutes=$(printf "%02d" $(( (duration % 3600) / 60 ))) +seconds=$(printf "%02d" $((duration % 60))) +duration="${hours}:${minutes}:${seconds}" + echo "WRF finished." echo "Execution time: $duration seconds" From b4e7176d273633828a6d2f8052344ac573840f87 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Mon, 22 Jul 2024 14:54:30 -0300 Subject: [PATCH 56/75] clean up file --- apps/wrf/run_wrf_openmpi.slurm | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/wrf/run_wrf_openmpi.slurm b/apps/wrf/run_wrf_openmpi.slurm index 38bee743d..e9b671a1d 100644 --- a/apps/wrf/run_wrf_openmpi.slurm +++ b/apps/wrf/run_wrf_openmpi.slurm @@ -55,7 +55,6 @@ NPROCS=`cat hostfile.txt | wc -l` echo "NPROCS:" $NPROCS echo "Running WRF.exe..." -#mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa /data/hello-world/hello_mpi mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa wrf.exe # Capture end time From d1c30cbacec7fad0abeb40bdc8f050bda69f12c0 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Tue, 23 Jul 2024 15:02:22 -0300 Subject: [PATCH 57/75] Adding automation scripts --- apps/wrf/automation/build-folder-structure.sh | 0 apps/wrf/automation/fwddatan.awk | 88 +++++++++++ apps/wrf/automation/namelist.ARWpost | 24 +++ apps/wrf/automation/namelist.input | 140 ++++++++++++++++++ apps/wrf/automation/namelist.wps | 50 +++++++ apps/wrf/automation/run_wps1_openmpi.pbs | 71 +++++++++ apps/wrf/automation/run_wps1_openmpi.slurm | 87 +++++++++++ apps/wrf/automation/run_wps2_openmpi.pbs | 30 ++++ apps/wrf/automation/run_wrf1_openmpi.pbs | 59 ++++++++ apps/wrf/automation/run_wrf2_openmpi.pbs | 35 +++++ 10 files changed, 584 insertions(+) create mode 100644 apps/wrf/automation/build-folder-structure.sh create mode 100644 apps/wrf/automation/fwddatan.awk create mode 100644 apps/wrf/automation/namelist.ARWpost create mode 100644 apps/wrf/automation/namelist.input create mode 100644 apps/wrf/automation/namelist.wps create mode 100644 apps/wrf/automation/run_wps1_openmpi.pbs create mode 100644 apps/wrf/automation/run_wps1_openmpi.slurm create mode 100644 apps/wrf/automation/run_wps2_openmpi.pbs create mode 100644 apps/wrf/automation/run_wrf1_openmpi.pbs create mode 100644 apps/wrf/automation/run_wrf2_openmpi.pbs diff --git a/apps/wrf/automation/build-folder-structure.sh b/apps/wrf/automation/build-folder-structure.sh new file mode 100644 index 000000000..e69de29bb diff --git a/apps/wrf/automation/fwddatan.awk b/apps/wrf/automation/fwddatan.awk new file mode 100644 index 000000000..427b44163 --- /dev/null +++ b/apps/wrf/automation/fwddatan.awk @@ -0,0 +1,88 @@ +{ data = $1; + hplus = $2; + len = length(data); + res = len - 6; + dias_mes = "31,28,31,30,31,30,31,31,30,31,30,31" + ano = substr(data,1,4); + mes = substr(data,5,2); + dia = substr(data,7,2); + resto = substr(data,9,res); + fs="," + a=split(dias_mes,dias,fs); +# an1 = (1900+ano)/4.0; + an1 = ano/4.0; + bix = substr(an1,1,3); + + if (bix == an1){ + dias_mes = "31,29,31,30,31,30,31,31,30,31,30,31"; + split(dias_mes,dias,fs);} + + diao = dia + if(diao<10) { diao= substr(data,8,1) + 1 - 1}; + + hres = resto + hplus; + ndia = hres/24.0; + diai = int (ndia) + + if(diai >= 1) + { + hres = hres - (diai*24) + diao = dia + diai; + }; + + if(mes<10) {mes = substr(data,6,1) + 1 - 1}; + + if(diao > dias[mes]) + { + diao = diao - dias[mes]; + mes=mes+1; + if(mes > 12) + { + mes=1; + anoteste=ano; + ano = ano +1; + if(ano==100) + { + ano="0"; + }; + + }; + }; + + + if(hres < 0) + { + diai = diai - 1 + hres = hres - (diai*24) + if(hres == 24) + { + hres=0; + diai = diai + 1; + }; + diao = dia + diai; + }; + + if(diao<1) + { + mes=mes-1; + + if(mes<1) + { + mes=12; + ano = ano -1; + if(ano<0) + { + ano=99; + }; + }; + diao = dias[mes] + diao ; + } + + + if(diao<10) {diao="0"diao}; + if(ano<10) {ano="0"ano}; + if(mes<10) {mes="0"mes}; + if(hres<10) {hres="0"hres}; + + print ano mes diao hres; +} diff --git a/apps/wrf/automation/namelist.ARWpost b/apps/wrf/automation/namelist.ARWpost new file mode 100644 index 000000000..59e791ed0 --- /dev/null +++ b/apps/wrf/automation/namelist.ARWpost @@ -0,0 +1,24 @@ +&datetime + start_date = '2022-12-20_12:00:00', + end_date = '2022-12-20_14:00:00', +! end_date = '2022-12-26_00:00:00', + interval_seconds = 3600, + tacc = 0, + debug_level = 0, +/ + +&io + input_root_name = '/data/wrfdata/wrfdir/2022122012/wrfout_d02' + output_root_name = '/data/wrfdata/arwdir/2022122012/arwout_d02' + + mercator_defs = .true., + split_output = .true., + frames_per_outfile = 1, + plot = 'list', + fields = 'T2,U10,V10,RAINC,RAINNC,RAINSH', +/ + +&interp + interp_method = 0, + interp_levels = 1000.,950.,850.,700.,500.,400.,200., +/ diff --git a/apps/wrf/automation/namelist.input b/apps/wrf/automation/namelist.input new file mode 100644 index 000000000..482442b46 --- /dev/null +++ b/apps/wrf/automation/namelist.input @@ -0,0 +1,140 @@ +&time_control + run_days = 0, + run_hours = 132, + run_minutes = 0, + run_seconds = 0, + start_year = aai, aai, + start_month = mmi, mmi, + start_day = ddi, ddi, + start_hour = hhi, hhi, + end_year = aaf, aaf, + end_month = mmf, mmf, + end_day = ddf, ddf, + end_hour = hhf, hhf, + interval_seconds = 10800, + input_from_file = .true.,.true., + history_interval = 60, 60, + frames_per_outfile = 1, 1, + restart = .false., + restart_interval = 7200, + io_form_history = 2, + io_form_restart = 2, + io_form_input = 2, + io_form_boundary = 2, + debug_level = 0, + + / + + &domains +!time_step = 100, + time_step = 80, + time_step_fract_num = 0, + time_step_fract_den = 1, + max_dom = 2, + s_we = 1, 1, + e_we = 420, 982, + s_sn = 1, 1, + e_sn = 300, 646, + p_top_requested = 7200, + num_metgrid_levels = 34, + num_metgrid_soil_levels = 4, + use_surface = .true., + sfcp_to_sfcp = .true., + dx = 9000., 3000., + dy = 9000., 3000., + grid_id = 1, 2, + parent_id = 1, 1, + i_parent_start = 1, 46, + j_parent_start = 1, 39, + parent_grid_ratio = 1, 3, + parent_time_step_ratio = 1, 3, + feedback = 1, + smooth_option = 0, + / + + &physics + mp_physics = 95, 95, + ra_lw_physics = 4, 4, + ra_sw_physics = 4, 4, + slope_rad = 1, 1, + topo_shading = 0, 1, + radt = 30, 30, + sf_urban_physics = 1, 1, + sf_sfclay_physics = 1, 1, + sf_surface_physics = 2, 2, + bl_pbl_physics = 1, 1, + bldt = 0, 0, + cu_physics = 3, 3, + cudt = 5, 5, + cugd_avedx = 3, + sst_update = 0, + isfflx = 1, + ifsnow = 0, + icloud = 1, + surface_input_source = 1, + num_soil_layers = 4, + maxiens = 1, + maxens = 3, + maxens2 = 3, + maxens3 = 16, + ensdim = 144, + + / + + &fdda + / + + &dynamics + dyn_opt = 2, + rk_ord = 3, + w_damping = 1, + diff_opt = 1, 1, + km_opt = 4, 4, + damp_opt = 3, + base_temp = 290., + zdamp = 5000., 5000., + dampcoef = 0.2, 0.2, + khdif = 0, 0, + kvdif = 0, 0, + smdiv = 0.1, 0.1, + emdiv = 0.01, 0.01, + epssm = 0.1, 0.1, + non_hydrostatic = .true., .true., + time_step_sound = 0, 0, + h_mom_adv_order = 5, 5, + v_mom_adv_order = 3, 3, + h_sca_adv_order = 3, 5, + v_sca_adv_order = 2, 3, + moist_adv_opt = 1, 1, + scalar_adv_opt = 1, 1, + chem_adv_opt = 1, 1, + tke_adv_opt = 1, 1, + diff_6th_opt = 1, 1, + diff_6th_factor = 0.12, 0.12, + / + + &bdy_control + spec_bdy_width = 5, + spec_zone = 1, + relax_zone = 4, + specified = .true., .false., + periodic_x = .false., .false., + symmetric_xs = .false., .false., + symmetric_xe = .false., .false., + open_xs = .false., .false., + open_xe = .false., .false., + periodic_y = .false., .false., + symmetric_ys = .false., .false., + symmetric_ye = .false., .false., + open_ys = .false., .false., + open_ye = .false., .false., + nested = .false., .true., + / + + &grib2 + / + + &namelist_quilt + nio_tasks_per_group = 0, + nio_groups = 1, + / diff --git a/apps/wrf/automation/namelist.wps b/apps/wrf/automation/namelist.wps new file mode 100644 index 000000000..503fd2523 --- /dev/null +++ b/apps/wrf/automation/namelist.wps @@ -0,0 +1,50 @@ +&share + wrf_core = 'ARW', + max_dom = 2, + start_date = 'aai-mmi-ddi_hhi:00:00','aai-mmi-ddi_hhi:00:00', + end_date = 'aaf-mmf-ddf_hhf:00:00','aaf-mmf-ddf_hhf:00:00', + interval_seconds = 10800 + io_form_geogrid = 2, + opt_output_from_geogrid_path = '/data/wrfdata/wpsdir/wrkday', + debug_level = 0, +/ + +&geogrid + parent_id = 1,1, + parent_grid_ratio = 1,3, + i_parent_start = 1,46, + j_parent_start = 1,39, + e_we = 420,982, + e_sn = 300,646, + geog_data_res = '30s','30s', + dx = 9000, + dy = 9000, + map_proj = 'lambert', + ref_lat = -3.0, + ref_lon = -48.0, + truelat1 = -3.0, + truelat2 = -3.0, + stand_lon = -48.0, + geog_data_path = '/data/wrfdata/geog', + opt_geogrid_tbl_path = '/data/wrfdata/wpsdir/wrkday', + ref_x = 210.0, + ref_y = 150.0, +/ + +&ungrib + out_format = 'WPS', + prefix = 'FILE', +/ + +&metgrid + fg_name = 'FILE' + io_form_metgrid = 2, + opt_output_from_metgrid_path = '/data/wrfdata/wpsdir/wrkday', + opt_metgrid_tbl_path = '/data/wrfdata/wpsdir/wrkday', +/ + +&mod_levs + press_pa = 201300, 200100, 100000, 95000, 90000, 85000, 80000, 75000, + 70000, 65000, 60000, 55000, 50000, 45000, 40000, 35000, + 30000, 25000, 20000, 15000, 10000, 5000, 1000 +/ diff --git a/apps/wrf/automation/run_wps1_openmpi.pbs b/apps/wrf/automation/run_wps1_openmpi.pbs new file mode 100644 index 000000000..99f413008 --- /dev/null +++ b/apps/wrf/automation/run_wps1_openmpi.pbs @@ -0,0 +1,71 @@ +#!/bin/bash +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv2"} + +path_scr=/apps/hbv2/scripts +WRFDAT="/data/wrfdata" +WPSDIR=${WRFDAT}/wpsdir +WRFDIR=${WRFDAT}/wrfdir +WRKDAY=${2:-$WRKDAY} + +ANO=`echo ${WRKDAY} | cut -c 1-4` +MES=`echo ${WRKDAY} | cut -c 5-6` +DIA=`echo ${WRKDAY} | cut -c 7-8` +HOR=`echo ${WRKDAY} | cut -c 9-10` + +#DIAFIM=`date +%Y%m%d --date="$ANO$MES$DIA +5 day"` +DIAFIM=`echo ${WRKDAY} 132 | awk -f $path_scr/fwddatan.awk` + +ANOF=`echo ${DIAFIM} | cut -c 1-4` +MESF=`echo ${DIAFIM} | cut -c 5-6` +DIAF=`echo ${DIAFIM} | cut -c 7-8` +HORF=`echo ${DIAFIM} | cut -c 9-10` + + +echo $WRFDAT $WPSDIR $WRFDIR $WRKDAY $DIAFIM + +mkdir -p $WPSDIR/$WRKDAY + +#echo "INPUTDIR:" $INPUTDIR +echo "SKU_TYPE:" $SKU_TYPE + +SHARED_APP=${SHARED_APP:-/apps} + +echo "source envs" +source /data/azurehpc/apps/wrf/env-variables + +# Waintig 30 seconds +sleep 30s + +python3 ${path_scr}/get_gfs_data.py $ANO $MES $DIA + +NPROCS=`cat $PBS_NODEFILE | wc -l` +echo "NPROCS:"$NPROCS + +cd ${WPSDIR}/${WRKDAY} +echo "cd $WPSDIR/$WRKDAY" + +ln -s ${WRFDAT}/tables/wps/* $WPSDIR/$WRKDAY + +cp ${WRFDAT}/tables/namelist/namelist.wps $WPSDIR/$WRKDAY + +sed -i s/wrkday/${WRKDAY}/g namelist.wps + +sed -i s/aai/${ANO}/g namelist.wps +sed -i s/mmi/${MES}/g namelist.wps +sed -i s/ddi/${DIA}/g namelist.wps +sed -i s/hhi/${HOR}/g namelist.wps + +sed -i s/aaf/${ANOF}/g namelist.wps +sed -i s/mmf/${MESF}/g namelist.wps +sed -i s/ddf/${DIAF}/g namelist.wps +sed -i s/hhf/${HORF}/g namelist.wps + +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi + +./link_grib.csh ${WRFDAT}/gfs_data/${WRKDAY}/gfs* +./ungrib.exe >& ungrib.log + diff --git a/apps/wrf/automation/run_wps1_openmpi.slurm b/apps/wrf/automation/run_wps1_openmpi.slurm new file mode 100644 index 000000000..097237c2e --- /dev/null +++ b/apps/wrf/automation/run_wps1_openmpi.slurm @@ -0,0 +1,87 @@ +#!/bin/bash +#SBATCH --job-name=wps1 +#SBATCH --partition=hpc +#SBATCH --ntasks-per-node=120 +#SBATCH --nodes=1 +#SBATCH --exclusive +#SBATCH --output=slurm-wps1-%j.out + +# Capture start time +start_time=$(date +%s) + +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv3"} + +path_scr=/apps/scripts +WRFDAT="/data/wrfdata" +WPSDIR=${WRFDAT}/wpsdir +WRFDIR=${WRFDAT}/wrfdir +WRKDAY=${2:-$WRKDAY} + +ANO=`echo ${WRKDAY} | cut -c 1-4` +MES=`echo ${WRKDAY} | cut -c 5-6` +DIA=`echo ${WRKDAY} | cut -c 7-8` +HOR=`echo ${WRKDAY} | cut -c 9-10` + +#DIAFIM=`date +%Y%m%d --date="$ANO$MES$DIA +5 day"` +DIAFIM=`echo ${WRKDAY} 132 | awk -f $path_scr/fwddatan.awk` + +ANOF=`echo ${DIAFIM} | cut -c 1-4` +MESF=`echo ${DIAFIM} | cut -c 5-6` +DIAF=`echo ${DIAFIM} | cut -c 7-8` +HORF=`echo ${DIAFIM} | cut -c 9-10` + +echo $WRFDAT $WPSDIR $WRFDIR $WRKDAY $DIAFIM + +mkdir -p $WPSDIR/$WRKDAY + +#echo "INPUTDIR:" $INPUTDIR +echo "SKU_TYPE:" $SKU_TYPE + +SHARED_APP=${SHARED_APP:-/apps} + +echo "source envs" +source /data/azurehpc/apps/wrf/env-variables $SKU_TYPE + +# Waintig 30 seconds +sleep 30s + +#TODO: add the get_gfs_data.py script +#python3 ${path_scr}/get_gfs_data.py $ANO $MES $DIA + +echo "SLURM_SUBMIT_DIR:" $SLURM_SUBMIT_DIR + +cd ${WPSDIR}/${WRKDAY} +echo "cd $WPSDIR/$WRKDAY" + +ln -s ${WRFDAT}/tables/wps/* $WPSDIR/$WRKDAY + +cp ${WRFDAT}/tables/namelist/namelist.wps $WPSDIR/$WRKDAY + +sed -i s/wrkday/${WRKDAY}/g namelist.wps + +sed -i s/aai/${ANO}/g namelist.wps +sed -i s/mmi/${MES}/g namelist.wps +sed -i s/ddi/${DIA}/g namelist.wps +sed -i s/hhi/${HOR}/g namelist.wps + +sed -i s/aaf/${ANOF}/g namelist.wps +sed -i s/mmf/${MESF}/g namelist.wps +sed -i s/ddf/${DIAF}/g namelist.wps +sed -i s/hhf/${HORF}/g namelist.wps + +./link_grib.csh ${WRFDAT}/gfs_data/${WRKDAY}/gfs* +./ungrib.exe >& ungrib.log + +# Capture end time +end_time=$(date +%s) +# Calculate duration +duration=$((end_time - start_time)) +# Format duration to hh:mm:ss +hours=$(printf "%02d" $((duration / 3600))) +minutes=$(printf "%02d" $(( (duration % 3600) / 60 ))) +seconds=$(printf "%02d" $((duration % 60))) +duration="${hours}:${minutes}:${seconds}" + +echo "WPS1 finished." +echo "Execution time: $duration seconds" \ No newline at end of file diff --git a/apps/wrf/automation/run_wps2_openmpi.pbs b/apps/wrf/automation/run_wps2_openmpi.pbs new file mode 100644 index 000000000..40e49f4c3 --- /dev/null +++ b/apps/wrf/automation/run_wps2_openmpi.pbs @@ -0,0 +1,30 @@ +#!/bin/bash +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv2"} + +WRFDAT="/data/wrfdata" +WPSDIR=${WRFDAT}/wpsdir +WRFDIR=${WRFDAT}/wrfdir +WRKDAY=${2:-$WRKDAY} + +echo $WRFDAT $WPSDIR $WRFDIR $WRKDAY + +echo "SKU_TYPE:" $SKU_TYPE + +echo "source envs" +source /data/azurehpc/apps/wrf/env-variables + +NPROCS=`cat $PBS_NODEFILE | wc -l` +echo "NPROCS:"$NPROCS + +cd $WPSDIR/$WRKDAY +echo "cd $WPSDIR/$WRKDAY" + +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi +echo "PBS_NODEFILE:" $PBS_NODEFILE + +mpirun $mpi_options -n $NPROCS --hostfile $PBS_NODEFILE --bind-to numa geogrid.exe +mpirun $mpi_options -n $NPROCS --hostfile $PBS_NODEFILE --bind-to numa metgrid.exe diff --git a/apps/wrf/automation/run_wrf1_openmpi.pbs b/apps/wrf/automation/run_wrf1_openmpi.pbs new file mode 100644 index 000000000..ceacffb80 --- /dev/null +++ b/apps/wrf/automation/run_wrf1_openmpi.pbs @@ -0,0 +1,59 @@ +#!/bin/bash +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv2"} + +path_scr=/apps/hbv2/scripts +WRFDAT="/data/wrfdata" +WPSDIR=${WRFDAT}/wpsdir +WRFDIR=${WRFDAT}/wrfdir +WRKDAY=${2:-$WRKDAY} + +ANO=`echo ${WRKDAY} | cut -c 1-4` +MES=`echo ${WRKDAY} | cut -c 5-6` +DIA=`echo ${WRKDAY} | cut -c 7-8` +HOR=`echo ${WRKDAY} | cut -c 9-10` + +#DIAFIM=`date +%Y%m%d --date="$ANO$MES$DIA +5 day"` +DIAFIM=`echo ${WRKDAY} 132 | awk -f $path_scr/fwddatan.awk` + +ANOf=`echo ${DIAFIM} | cut -c 1-4` +MESf=`echo ${DIAFIM} | cut -c 5-6` +DIAf=`echo ${DIAFIM} | cut -c 7-8` +HORF=`echo ${DIAFIM} | cut -c 9-10` + +echo $WRFDAT $WPSDIR $WRFDIR + +mkdir -p $WRFDIR/$WRKDAY + +echo "source envs" +source /data/azurehpc/apps/wrf/env-variables + +NPROCS=`cat $PBS_NODEFILE | wc -l` +echo "NPROCS:"$NPROCS + +cd $WRFDIR/$WRKDAY +echo "cd $WRFDIR/$WRKDAY" + +ln -s ${WPSDIR}/${WRKDAY}/met_em* $WRFDIR/$WRKDAY +echo "ln -s ${WPSDIR}/${WRKDAY}/met_em* ." +ln -s ${WRFDAT}/tables/wrf/* $WRFDIR/$WRKDAY +echo "ln -s ${WRFDAT}/tables/wrf/* ." +cp ${WRFDAT}/tables/namelist/namelist.input $WRFDIR/$WRKDAY + +sed -i s/aai/${ANO}/g namelist.input +sed -i s/mmi/${MES}/g namelist.input +sed -i s/ddi/${DIA}/g namelist.input +sed -i s/hhi/${HOR}/g namelist.input + +sed -i s/aaf/${ANOf}/g namelist.input +sed -i s/mmf/${MESf}/g namelist.input +sed -i s/ddf/${DIAf}/g namelist.input +sed -i s/hhf/${HORF}/g namelist.input + +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi +echo "PBS_NODEFILE:" $PBS_NODEFILE + +mpirun $mpi_options -n $NPROCS --hostfile $PBS_NODEFILE --bind-to numa real.exe diff --git a/apps/wrf/automation/run_wrf2_openmpi.pbs b/apps/wrf/automation/run_wrf2_openmpi.pbs new file mode 100644 index 000000000..60560e4d7 --- /dev/null +++ b/apps/wrf/automation/run_wrf2_openmpi.pbs @@ -0,0 +1,35 @@ +#!/bin/bash +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv2"} + +WRFDAT="/data/wrfdata" +WPSDIR=${WRFDAT}/wpsdir +WRFDIR=${WRFDAT}/wrfdir +WRKDAY=${2:-$WRKDAY} + +ANO=`echo ${WRKDAY} | cut -c 1-4` +MES=`echo ${WRKDAY} | cut -c 5-6` +DIA=`echo ${WRKDAY} | cut -c 7-8` + +echo $WRFDAT $WPSDIR $WRFDIR + +mkdir -p $WRFDIR/$WRKDAY + +echo "SKU_TYPE:" $SKU_TYPE + +echo "source envs" +source /data/azurehpc/apps/wrf/env-variables + +NPROCS=`cat $PBS_NODEFILE | wc -l` +echo "NPROCS:"$NPROCS + +cd $WRFDIR/$WRKDAY +echo "cd $WRFDIR/$WRKDAY" + +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi +echo "PBS_NODEFILE:" $PBS_NODEFILE + +mpirun $mpi_options -n $NPROCS --hostfile $PBS_NODEFILE --bind-to numa wrf.exe From 650619628f8810201b73bc56a066eb09674c8315 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Wed, 24 Jul 2024 14:27:06 -0300 Subject: [PATCH 58/75] wps1.slurm --- apps/wrf/automation/build-folder-structure.sh | 36 +++++++++ apps/wrf/automation/get_gfs_data.py | 73 +++++++++++++++++++ apps/wrf/automation/run_wps1_openmpi.pbs | 2 +- apps/wrf/automation/run_wps1_openmpi.slurm | 1 - 4 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 apps/wrf/automation/get_gfs_data.py diff --git a/apps/wrf/automation/build-folder-structure.sh b/apps/wrf/automation/build-folder-structure.sh index e69de29bb..b1ddcbfbc 100644 --- a/apps/wrf/automation/build-folder-structure.sh +++ b/apps/wrf/automation/build-folder-structure.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +WRFDAT="/data/wrfdata" + +echo "creating ${WRFDAT}/wpsdir/" +mkdir -p ${WRFDAT}/wpsdir/ + +echo "creating ${WRFDAT}/wrfdir/" +mkdir -p ${WRFDAT}/wrfdir/ + +echo "creating ${WRFDAT}/tables/wps/" +mkdir -p ${WRFDAT}/tables/wps/ + +echo "creating ${WRFDAT}/tables/wrf/" +mkdir -p ${WRFDAT}/tables/wrf/ + +echo "creating ${WRFDAT}/tables/namelist/" +mkdir -p ${WRFDAT}/tables/namelist/ + +echo "creating ${WRFDAT}/gfs_files/" +mkdir -p ${WRFDAT}/gfs_files/ + +echo "creating /apps/scripts/" +mkdir -p /apps/scripts/ + +echo "copying namelist.wps" +cp namelist.wps ${WRFDAT}/tables/namelist/namelist.wps + +echo "copying namelist.input" +cp namelist.input ${WRFDAT}/tables/namelist/namelist.input + +echo "copying scripts" +cp fwddatan.awk /apps/scripts/ +cp get_gfs_data.py /apps/scripts/ + + diff --git a/apps/wrf/automation/get_gfs_data.py b/apps/wrf/automation/get_gfs_data.py new file mode 100644 index 000000000..5549238ab --- /dev/null +++ b/apps/wrf/automation/get_gfs_data.py @@ -0,0 +1,73 @@ +#from wget import download +import wget +import datetime as dt +import os, subprocess +import sys +from time import time as timer +from multiprocessing.pool import ThreadPool +#import requests +year = int(sys.argv[1]) +month = int(sys.argv[2]) +day = int(sys.argv[3]) + +##dia = dt.date.today() +#dia = dt.datetime(dia.year,dia.month,dia.day,12) +dia = dt.datetime(year,month,day,12) +print(dia) +inicio = 00 +##fim = 28 ## Dados para 1 dia +fim = 135 ## Dados para 5 dias + +data_sys = dia.strftime("%Y%m%d%H") +data_gfs = dia.strftime("%Y%m%d") + +##path_home = "/data/wrfdata/itv-data/" +path_home = "/data/wrfdata/gfs_data/" + + +#### CASO O DIRETORIO PARA O DOWNLOAD NAO EXISTE, ELE SERA CRIADO #### + +if not os.path.isdir(path_home + "/" + data_sys ): + os.system("mkdir -p " + path_home + data_sys ) + +#### URL (http://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod) +#### Alteracao realizada em 10 / set / 2020 +#### URL (ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/gfs/prod) + +#### DOWNLOAD DOS ARQUIVOS ##### +args_inputs = [] +j=0 +for i in range(inicio,fim,3): + k = str(i) + if i < 10 : + k = ('00' + k) + if i >= 10 and i < 100 : + k = ('0' + k) + + gfs = "gfs.t12z.pgrb2.0p25.f" + k + print(gfs) + + if not os.path.isfile(path_home + "/" + data_sys + "/" + gfs): + f_out = path_home + "/" + data_sys + '/' + gfs + +#### url = ('http://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.' + data_gfs + '/12/' + gfs) +#### url = ('ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.' + data_gfs + '/12/' + gfs) +#### url = ('ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.' + data_gfs + '/12/atmos/' + gfs) + url = ('https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.' + data_gfs + '/12/atmos/' + gfs) + + args_inputs.append ((f_out, url)) + j=j+1 + +def fetch_url(entry): + path, uri = entry + print ("Downloading...", path) + filename = wget.download(uri,path_home + data_sys) + return path + +start=timer() +results = ThreadPool(6).imap_unordered(fetch_url, args_inputs) + +for path in results: + print(path) + +print("Elapsed Time: ", timer() - start) diff --git a/apps/wrf/automation/run_wps1_openmpi.pbs b/apps/wrf/automation/run_wps1_openmpi.pbs index 99f413008..0d31b11dc 100644 --- a/apps/wrf/automation/run_wps1_openmpi.pbs +++ b/apps/wrf/automation/run_wps1_openmpi.pbs @@ -2,7 +2,7 @@ SKU_TYPE=${1:-$SKU_TYPE} SKU_TYPE=${SKU_TYPE:-"hbv2"} -path_scr=/apps/hbv2/scripts +path_scr=/apps/scripts WRFDAT="/data/wrfdata" WPSDIR=${WRFDAT}/wpsdir WRFDIR=${WRFDAT}/wrfdir diff --git a/apps/wrf/automation/run_wps1_openmpi.slurm b/apps/wrf/automation/run_wps1_openmpi.slurm index 097237c2e..1e87e853d 100644 --- a/apps/wrf/automation/run_wps1_openmpi.slurm +++ b/apps/wrf/automation/run_wps1_openmpi.slurm @@ -35,7 +35,6 @@ echo $WRFDAT $WPSDIR $WRFDIR $WRKDAY $DIAFIM mkdir -p $WPSDIR/$WRKDAY -#echo "INPUTDIR:" $INPUTDIR echo "SKU_TYPE:" $SKU_TYPE SHARED_APP=${SHARED_APP:-/apps} From 96ce008070c5610ab169f6571bb7172427c265d8 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Wed, 24 Jul 2024 14:48:51 -0300 Subject: [PATCH 59/75] changes --- apps/wrf/automation/build-folder-structure.sh | 1 + apps/wrf/automation/run_wps1_openmpi.slurm | 1 + apps/wrf/automation/submit-pbs.sh | 41 +++++++++++++++++++ apps/wrf/automation/submit-slurm.sh | 39 ++++++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 apps/wrf/automation/submit-pbs.sh create mode 100644 apps/wrf/automation/submit-slurm.sh diff --git a/apps/wrf/automation/build-folder-structure.sh b/apps/wrf/automation/build-folder-structure.sh index b1ddcbfbc..77137ba52 100644 --- a/apps/wrf/automation/build-folder-structure.sh +++ b/apps/wrf/automation/build-folder-structure.sh @@ -32,5 +32,6 @@ cp namelist.input ${WRFDAT}/tables/namelist/namelist.input echo "copying scripts" cp fwddatan.awk /apps/scripts/ cp get_gfs_data.py /apps/scripts/ +cp cp run_*.slurm run_*.pbs /apps/scripts/ diff --git a/apps/wrf/automation/run_wps1_openmpi.slurm b/apps/wrf/automation/run_wps1_openmpi.slurm index 1e87e853d..d88ae5600 100644 --- a/apps/wrf/automation/run_wps1_openmpi.slurm +++ b/apps/wrf/automation/run_wps1_openmpi.slurm @@ -17,6 +17,7 @@ WRFDAT="/data/wrfdata" WPSDIR=${WRFDAT}/wpsdir WRFDIR=${WRFDAT}/wrfdir WRKDAY=${2:-$WRKDAY} +echo "WRKDAY:" $WRKDAY ANO=`echo ${WRKDAY} | cut -c 1-4` MES=`echo ${WRKDAY} | cut -c 5-6` diff --git a/apps/wrf/automation/submit-pbs.sh b/apps/wrf/automation/submit-pbs.sh new file mode 100644 index 000000000..d21f39d2e --- /dev/null +++ b/apps/wrf/automation/submit-pbs.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# JOB_wps1 => Executa o download, altera a namelist.wps e executa o ungrib.exe +# JOB_wps2 => Exuta o geogrid.exe e o metgrid.exe +# JOB_wrf1 => Altera a namelist.input e executa o real.exe +# JOB_wrf2 => Executa o wrf.exe +# FILAS => execute1 com 120 ncpus; execute2 com 96 ncpus (otimizada); execute3 com 64 ncpus (otimizada) +# NODES => select 1,2,3 e 4 (maximo de 4 nodes) +# MPIPROCS sempre igual a NCPUS + +path_wrf=/data/wrfdata/wrfdir +path_wps=/data/wrfdata/wpsdir +path_scr=/apps/hbv2/scripts + +data=$1 + +aa=`echo $data | cut -c 1-4` +mm=`echo $data | cut -c 5-6` +dd=`echo $data | cut -c 7-8` + +lastday=`date +%Y%m%d --date="$aa$mm$dd +1 day"` +aaf=`echo $lastday | cut -c 1-4` +mmf=`echo $lastday | cut -c 5-6` +ddf=`echo $lastday | cut -c 7-8` +sfx="_12:00:00" + + +#EST1 => select=(1-4); nodearray=execute1; ncpus=120; mpiprocs=120 +#EST2 => select=(1-4); nodearray=execute2; ncpus=96; mpiprocs=96 +#EST3 => select=(1-4); nodearray=execute3; ncpus=64; mpiprocs=64 + +JOB_wps1=$(qsub -N wps1 -l select=1:nodearray=execute2:ncpus=16:mpiprocs=16,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wps1_openmpi.pbs) +JOB_wps2=$(qsub -W depend=afterany:$JOB_wps1 -N wps2 -l select=1:nodearray=execute2:ncpus=16:mpiprocs=16,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wps2_openmpi.pbs) +JOB_wrf1=$(qsub -W depend=afterany:$JOB_wps2 -N wrf1 -l select=1:nodearray=execute2:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wrf1_openmpi.pbs) +JOB_wrf2=$(qsub -W depend=afterany:$JOB_wrf1 -N wrf2 -l select=4:nodearray=execute2:ncpus=96:mpiprocs=96,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wrf2_openmpi.pbs) + +exit + +JOB_wps1=$(qsub -N wps1 -l select=1:nodearray=execute3:ncpus=16:mpiprocs=16,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wps1_openmpi.pbs) +JOB_wps2=$(qsub -W depend=afterany:$JOB_wps1 -N wps2 -l select=1:nodearray=execute3:ncpus=16:mpiprocs=16,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wps2_openmpi.pbs) + +exit diff --git a/apps/wrf/automation/submit-slurm.sh b/apps/wrf/automation/submit-slurm.sh new file mode 100644 index 000000000..b29fc3d5a --- /dev/null +++ b/apps/wrf/automation/submit-slurm.sh @@ -0,0 +1,39 @@ +#!/bin/sh +# JOB_wps1 => Executa o download, altera a namelist.wps e executa o ungrib.exe +# JOB_wps2 => Exuta o geogrid.exe e o metgrid.exe +# JOB_wrf1 => Altera a namelist.input e executa o real.exe +# JOB_wrf2 => Executa o wrf.exe +# FILAS => execute1 com 120 ncpus; execute2 com 96 ncpus (otimizada); execute3 com 64 ncpus (otimizada) +# NODES => select 1,2,3 e 4 (maximo de 4 nodes) +# MPIPROCS sempre igual a NCPUS + +path_wrf=/data/wrfdata/wrfdir +path_wps=/data/wrfdata/wpsdir +path_scr=/apps/scripts + +data=$1 +echo "data: $data" + +aa=`echo $data | cut -c 1-4` +mm=`echo $data | cut -c 5-6` +dd=`echo $data | cut -c 7-8` + +lastday=`date +%Y%m%d --date="$aa$mm$dd +1 day"` +aaf=`echo $lastday | cut -c 1-4` +mmf=`echo $lastday | cut -c 5-6` +ddf=`echo $lastday | cut -c 7-8` +sfx="_12:00:00" + + +#EST1 => select=(1-4); nodearray=execute1; ncpus=120; mpiprocs=120 +#EST2 => select=(1-4); nodearray=execute2; ncpus=96; mpiprocs=96 +#EST3 => select=(1-4); nodearray=execute3; ncpus=64; mpiprocs=64 + +sbatch --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps1_openmpi.slurm + +#JOB_wps1=$(qsub -N wps1 -l select=1:nodearray=execute2:ncpus=16:mpiprocs=16,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wps1_openmpi.pbs) +#JOB_wps2=$(qsub -W depend=afterany:$JOB_wps1 -N wps2 -l select=1:nodearray=execute2:ncpus=16:mpiprocs=16,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wps2_openmpi.pbs) +#JOB_wrf1=$(qsub -W depend=afterany:$JOB_wps2 -N wrf1 -l select=1:nodearray=execute2:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wrf1_openmpi.pbs) +#JOB_wrf2=$(qsub -W depend=afterany:$JOB_wrf1 -N wrf2 -l select=4:nodearray=execute2:ncpus=96:mpiprocs=96,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wrf2_openmpi.pbs) + +exit From 307a652d0482ae20ac16551006e741d75580e31b Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Wed, 24 Jul 2024 18:26:23 -0300 Subject: [PATCH 60/75] slurm files --- apps/wrf/automation/build-folder-structure.sh | 11 ++- apps/wrf/automation/run_wps1_openmpi.slurm | 16 +++- apps/wrf/automation/run_wps2_openmpi.slurm | 58 ++++++++++++ apps/wrf/automation/run_wrf1_openmpi.slurm | 89 +++++++++++++++++++ apps/wrf/automation/run_wrf2_openmpi.slurm | 61 +++++++++++++ apps/wrf/automation/submit-slurm.sh | 16 ++-- apps/wrf/env-variables | 1 + 7 files changed, 234 insertions(+), 18 deletions(-) create mode 100644 apps/wrf/automation/run_wps2_openmpi.slurm create mode 100644 apps/wrf/automation/run_wrf1_openmpi.slurm create mode 100644 apps/wrf/automation/run_wrf2_openmpi.slurm diff --git a/apps/wrf/automation/build-folder-structure.sh b/apps/wrf/automation/build-folder-structure.sh index 77137ba52..896f0a3bf 100644 --- a/apps/wrf/automation/build-folder-structure.sh +++ b/apps/wrf/automation/build-folder-structure.sh @@ -17,8 +17,8 @@ mkdir -p ${WRFDAT}/tables/wrf/ echo "creating ${WRFDAT}/tables/namelist/" mkdir -p ${WRFDAT}/tables/namelist/ -echo "creating ${WRFDAT}/gfs_files/" -mkdir -p ${WRFDAT}/gfs_files/ +echo "creating ${WRFDAT}/gfs_data/" +mkdir -p ${WRFDAT}/gfs_data/ echo "creating /apps/scripts/" mkdir -p /apps/scripts/ @@ -32,6 +32,11 @@ cp namelist.input ${WRFDAT}/tables/namelist/namelist.input echo "copying scripts" cp fwddatan.awk /apps/scripts/ cp get_gfs_data.py /apps/scripts/ -cp cp run_*.slurm run_*.pbs /apps/scripts/ +cp run_*.slurm run_*.pbs submit*.sh /apps/scripts/ +echo "creating links to WPF files" +ln -s /apps/hbv3/wps-openmpi/WPS-4.1/* /data/wrfdata/tables/wps/ + +echo "creating links to WRF files" +ln -s /apps/hbv3/wrf-openmpi/WRF-4.1.5/run/* /data/wrfdata/tables/wrf/ diff --git a/apps/wrf/automation/run_wps1_openmpi.slurm b/apps/wrf/automation/run_wps1_openmpi.slurm index d88ae5600..48954ec46 100644 --- a/apps/wrf/automation/run_wps1_openmpi.slurm +++ b/apps/wrf/automation/run_wps1_openmpi.slurm @@ -40,22 +40,27 @@ echo "SKU_TYPE:" $SKU_TYPE SHARED_APP=${SHARED_APP:-/apps} -echo "source envs" +# Load environment variables +echo "Load environment variables" source /data/azurehpc/apps/wrf/env-variables $SKU_TYPE -# Waintig 30 seconds +# Waiting 30 seconds +echo "Waiting 30 seconds" sleep 30s -#TODO: add the get_gfs_data.py script -#python3 ${path_scr}/get_gfs_data.py $ANO $MES $DIA +# Download gfs data +echo "Downloading gfs data..." +python3 ${path_scr}/get_gfs_data.py $ANO $MES $DIA echo "SLURM_SUBMIT_DIR:" $SLURM_SUBMIT_DIR cd ${WPSDIR}/${WRKDAY} echo "cd $WPSDIR/$WRKDAY" +echo "ln -s ${WRFDAT}/tables/wps/* $WPSDIR/$WRKDAY" ln -s ${WRFDAT}/tables/wps/* $WPSDIR/$WRKDAY +echo "Copying namelist.wps" cp ${WRFDAT}/tables/namelist/namelist.wps $WPSDIR/$WRKDAY sed -i s/wrkday/${WRKDAY}/g namelist.wps @@ -70,7 +75,10 @@ sed -i s/mmf/${MESF}/g namelist.wps sed -i s/ddf/${DIAF}/g namelist.wps sed -i s/hhf/${HORF}/g namelist.wps +echo "Running link_grib.csh..." ./link_grib.csh ${WRFDAT}/gfs_data/${WRKDAY}/gfs* + +echo "Running ungrib.exe..." ./ungrib.exe >& ungrib.log # Capture end time diff --git a/apps/wrf/automation/run_wps2_openmpi.slurm b/apps/wrf/automation/run_wps2_openmpi.slurm new file mode 100644 index 000000000..de0bd323d --- /dev/null +++ b/apps/wrf/automation/run_wps2_openmpi.slurm @@ -0,0 +1,58 @@ +#!/bin/bash +#SBATCH --job-name=wps2 +#SBATCH --partition=hpc +#SBATCH --ntasks-per-node=120 +#SBATCH --nodes=1 +#SBATCH --exclusive +#SBATCH --output=slurm-wps2-%j.out + +# Capture start time +start_time=$(date +%s) + +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv3"} + +WRFDAT="/data/wrfdata" +WPSDIR=${WRFDAT}/wpsdir +WRFDIR=${WRFDAT}/wrfdir +WRKDAY=${2:-$WRKDAY} + +echo $WRFDAT $WPSDIR $WRFDIR $WRKDAY + +echo "SKU_TYPE:" $SKU_TYPE + +# Load environment variables +echo "Load environment variables" +source /data/azurehpc/apps/wrf/env-variables $SKU_TYPE + +cd $WPSDIR/$WRKDAY +echo "cd $WPSDIR/$WRKDAY" + +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi +echo "mpi_options:" $mpi_options + +echo "SLURM_JOB_NODELIST:" $SLURM_JOB_NODELIST +echo "SLURM_NTASKS:" $SLURM_NTASKS + +scontrol show hostname $SLURM_JOB_NODELIST > hostfile.txt + +echo "Running geogrid.exe..." +mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa geogrid.exe +echo "Running metgrid.exe..." +mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa metgrid.exe + +# Capture end time +end_time=$(date +%s) +# Calculate duration +duration=$((end_time - start_time)) +# Format duration to hh:mm:ss +hours=$(printf "%02d" $((duration / 3600))) +minutes=$(printf "%02d" $(( (duration % 3600) / 60 ))) +seconds=$(printf "%02d" $((duration % 60))) +duration="${hours}:${minutes}:${seconds}" + +echo "WPS2 finished." +echo "Execution time: $duration seconds" \ No newline at end of file diff --git a/apps/wrf/automation/run_wrf1_openmpi.slurm b/apps/wrf/automation/run_wrf1_openmpi.slurm new file mode 100644 index 000000000..c1a3cfe49 --- /dev/null +++ b/apps/wrf/automation/run_wrf1_openmpi.slurm @@ -0,0 +1,89 @@ +#!/bin/bash +#SBATCH --job-name=wrf1 +#SBATCH --partition=hpc +#SBATCH --ntasks-per-node=120 +#SBATCH --nodes=1 +#SBATCH --exclusive +#SBATCH --output=slurm-wrf1-%j.out + +# Capture start time +start_time=$(date +%s) + +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv3"} + +path_scr=/apps/scripts +WRFDAT="/data/wrfdata" +WPSDIR=${WRFDAT}/wpsdir +WRFDIR=${WRFDAT}/wrfdir +WRKDAY=${2:-$WRKDAY} + +ANO=`echo ${WRKDAY} | cut -c 1-4` +MES=`echo ${WRKDAY} | cut -c 5-6` +DIA=`echo ${WRKDAY} | cut -c 7-8` +HOR=`echo ${WRKDAY} | cut -c 9-10` + +#DIAFIM=`date +%Y%m%d --date="$ANO$MES$DIA +5 day"` +DIAFIM=`echo ${WRKDAY} 132 | awk -f $path_scr/fwddatan.awk` + +ANOf=`echo ${DIAFIM} | cut -c 1-4` +MESf=`echo ${DIAFIM} | cut -c 5-6` +DIAf=`echo ${DIAFIM} | cut -c 7-8` +HORF=`echo ${DIAFIM} | cut -c 9-10` + +echo $WRFDAT $WPSDIR $WRFDIR + +mkdir -p $WRFDIR/$WRKDAY + +# Load environment variables +echo "Load environment variables" +source /data/azurehpc/apps/wrf/env-variables $SKU_TYPE + +cd $WRFDIR/$WRKDAY +echo "cd $WRFDIR/$WRKDAY" + +echo "ln -s ${WPSDIR}/${WRKDAY}/met_em* ." +ln -s ${WPSDIR}/${WRKDAY}/met_em* $WRFDIR/$WRKDAY + +echo "ln -s ${WRFDAT}/tables/wrf/* ." +ln -s ${WRFDAT}/tables/wrf/* $WRFDIR/$WRKDAY + +echo "Copying namelist.input" +cp ${WRFDAT}/tables/namelist/namelist.input $WRFDIR/$WRKDAY + +sed -i s/aai/${ANO}/g namelist.input +sed -i s/mmi/${MES}/g namelist.input +sed -i s/ddi/${DIA}/g namelist.input +sed -i s/hhi/${HOR}/g namelist.input + +sed -i s/aaf/${ANOf}/g namelist.input +sed -i s/mmf/${MESf}/g namelist.input +sed -i s/ddf/${DIAf}/g namelist.input +sed -i s/hhf/${HORF}/g namelist.input + +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi +echo "mpi_options:" $mpi_options + +echo "SLURM_JOB_NODELIST:" $SLURM_JOB_NODELIST +echo "SLURM_NTASKS:" $SLURM_NTASKS + +scontrol show hostname $SLURM_JOB_NODELIST > hostfile.txt + +echo "Running real.exe..." +mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa real.exe + +# Capture end time +end_time=$(date +%s) +# Calculate duration +duration=$((end_time - start_time)) +# Format duration to hh:mm:ss +hours=$(printf "%02d" $((duration / 3600))) +minutes=$(printf "%02d" $(( (duration % 3600) / 60 ))) +seconds=$(printf "%02d" $((duration % 60))) +duration="${hours}:${minutes}:${seconds}" + +echo "WRF1 finished." +echo "Execution time: $duration seconds" \ No newline at end of file diff --git a/apps/wrf/automation/run_wrf2_openmpi.slurm b/apps/wrf/automation/run_wrf2_openmpi.slurm new file mode 100644 index 000000000..cd74e640d --- /dev/null +++ b/apps/wrf/automation/run_wrf2_openmpi.slurm @@ -0,0 +1,61 @@ +#!/bin/bash +#SBATCH --job-name=wrf2 +#SBATCH --partition=hpc +#SBATCH --ntasks-per-node=120 +#SBATCH --nodes=1 +#SBATCH --exclusive +#SBATCH --output=slurm-wrf2-%j.out + +# Capture start time +start_time=$(date +%s) + +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv3"} + +WRFDAT="/data/wrfdata" +WPSDIR=${WRFDAT}/wpsdir +WRFDIR=${WRFDAT}/wrfdir +WRKDAY=${2:-$WRKDAY} + +ANO=`echo ${WRKDAY} | cut -c 1-4` +MES=`echo ${WRKDAY} | cut -c 5-6` +DIA=`echo ${WRKDAY} | cut -c 7-8` + +echo $WRFDAT $WPSDIR $WRFDIR + +mkdir -p $WRFDIR/$WRKDAY + +echo "SKU_TYPE:" $SKU_TYPE + +# Load environment variables +echo "Load environment variables" +source /data/azurehpc/apps/wrf/env-variables $SKU_TYPE + +cd $WRFDIR/$WRKDAY +echo "cd $WRFDIR/$WRKDAY" + +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi +echo "mpi_options:" $mpi_options + +echo "SLURM_JOB_NODELIST:" $SLURM_JOB_NODELIST +echo "SLURM_NTASKS:" $SLURM_NTASKS + +scontrol show hostname $SLURM_JOB_NODELIST > hostfile.txt + +mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa wrf.exe + +# Capture end time +end_time=$(date +%s) +# Calculate duration +duration=$((end_time - start_time)) +# Format duration to hh:mm:ss +hours=$(printf "%02d" $((duration / 3600))) +minutes=$(printf "%02d" $(( (duration % 3600) / 60 ))) +seconds=$(printf "%02d" $((duration % 60))) +duration="${hours}:${minutes}:${seconds}" + +echo "WRF2 finished." +echo "Execution time: $duration seconds" \ No newline at end of file diff --git a/apps/wrf/automation/submit-slurm.sh b/apps/wrf/automation/submit-slurm.sh index b29fc3d5a..b43edd710 100644 --- a/apps/wrf/automation/submit-slurm.sh +++ b/apps/wrf/automation/submit-slurm.sh @@ -14,23 +14,17 @@ path_scr=/apps/scripts data=$1 echo "data: $data" -aa=`echo $data | cut -c 1-4` -mm=`echo $data | cut -c 5-6` -dd=`echo $data | cut -c 7-8` - -lastday=`date +%Y%m%d --date="$aa$mm$dd +1 day"` -aaf=`echo $lastday | cut -c 1-4` -mmf=`echo $lastday | cut -c 5-6` -ddf=`echo $lastday | cut -c 7-8` -sfx="_12:00:00" - - #EST1 => select=(1-4); nodearray=execute1; ncpus=120; mpiprocs=120 #EST2 => select=(1-4); nodearray=execute2; ncpus=96; mpiprocs=96 #EST3 => select=(1-4); nodearray=execute3; ncpus=64; mpiprocs=64 sbatch --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps1_openmpi.slurm +JOB_wps1=$(sbatch --parsable --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps1_openmpi.slurm) +JOB_wps2=$(sbatch --parsable --dependency=afterany:$JOB_wps1 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm) +JOB_wrf1=$(sbatch --parsable --dependency=afterany:$JOB_wps2 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf1_openmpi.slurm) +JOB_wrf2=$(sbatch --parsable --dependency=afterany:$JOB_wrf1 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf2_openmpi.slurm) + #JOB_wps1=$(qsub -N wps1 -l select=1:nodearray=execute2:ncpus=16:mpiprocs=16,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wps1_openmpi.pbs) #JOB_wps2=$(qsub -W depend=afterany:$JOB_wps1 -N wps2 -l select=1:nodearray=execute2:ncpus=16:mpiprocs=16,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wps2_openmpi.pbs) #JOB_wrf1=$(qsub -W depend=afterany:$JOB_wps2 -N wrf1 -l select=1:nodearray=execute2:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wrf1_openmpi.pbs) diff --git a/apps/wrf/env-variables b/apps/wrf/env-variables index 6e7eb7bd6..efa06ae00 100644 --- a/apps/wrf/env-variables +++ b/apps/wrf/env-variables @@ -8,6 +8,7 @@ echo "SHARED_APP:" $SHARED_APP if ! rpm -q python3; then sudo yum install -y python3 + pip install wget fi source /etc/profile.d/modules.sh export MODULEPATH=${SHARED_APP}/modulefiles/${SKU_TYPE}:$MODULEPATH From 09191019deb96049eaaa52ecf544ef4b5cf5118e Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Wed, 24 Jul 2024 18:36:00 -0300 Subject: [PATCH 61/75] log files --- apps/wrf/automation/run_wps1_openmpi.slurm | 2 +- apps/wrf/automation/run_wps2_openmpi.slurm | 2 +- apps/wrf/automation/submit-slurm.sh | 12 +++++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/apps/wrf/automation/run_wps1_openmpi.slurm b/apps/wrf/automation/run_wps1_openmpi.slurm index 48954ec46..13cb4579e 100644 --- a/apps/wrf/automation/run_wps1_openmpi.slurm +++ b/apps/wrf/automation/run_wps1_openmpi.slurm @@ -4,7 +4,7 @@ #SBATCH --ntasks-per-node=120 #SBATCH --nodes=1 #SBATCH --exclusive -#SBATCH --output=slurm-wps1-%j.out +#SBATCH --output=${WPSDIR}/${WRKDAY}/slurm-wps1-%j.out # Capture start time start_time=$(date +%s) diff --git a/apps/wrf/automation/run_wps2_openmpi.slurm b/apps/wrf/automation/run_wps2_openmpi.slurm index de0bd323d..b15fb128b 100644 --- a/apps/wrf/automation/run_wps2_openmpi.slurm +++ b/apps/wrf/automation/run_wps2_openmpi.slurm @@ -4,7 +4,7 @@ #SBATCH --ntasks-per-node=120 #SBATCH --nodes=1 #SBATCH --exclusive -#SBATCH --output=slurm-wps2-%j.out +#SBATCH --output=${WPSDIR}/${WRKDAY}/slurm-wps2-%j.out # Capture start time start_time=$(date +%s) diff --git a/apps/wrf/automation/submit-slurm.sh b/apps/wrf/automation/submit-slurm.sh index b43edd710..68de9472e 100644 --- a/apps/wrf/automation/submit-slurm.sh +++ b/apps/wrf/automation/submit-slurm.sh @@ -13,17 +13,19 @@ path_scr=/apps/scripts data=$1 echo "data: $data" +mkdir -p $path_wps/$data +mkdir -p $path_wrf/$data #EST1 => select=(1-4); nodearray=execute1; ncpus=120; mpiprocs=120 #EST2 => select=(1-4); nodearray=execute2; ncpus=96; mpiprocs=96 #EST3 => select=(1-4); nodearray=execute3; ncpus=64; mpiprocs=64 -sbatch --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps1_openmpi.slurm +sbatch --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm -JOB_wps1=$(sbatch --parsable --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps1_openmpi.slurm) -JOB_wps2=$(sbatch --parsable --dependency=afterany:$JOB_wps1 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm) -JOB_wrf1=$(sbatch --parsable --dependency=afterany:$JOB_wps2 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf1_openmpi.slurm) -JOB_wrf2=$(sbatch --parsable --dependency=afterany:$JOB_wrf1 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf2_openmpi.slurm) +#JOB_wps1=$(sbatch --parsable --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps1_openmpi.slurm) +#JOB_wps2=$(sbatch --parsable --dependency=afterany:$JOB_wps1 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm) +#JOB_wrf1=$(sbatch --parsable --dependency=afterany:$JOB_wps2 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf1_openmpi.slurm) +#JOB_wrf2=$(sbatch --parsable --dependency=afterany:$JOB_wrf1 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf2_openmpi.slurm) #JOB_wps1=$(qsub -N wps1 -l select=1:nodearray=execute2:ncpus=16:mpiprocs=16,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wps1_openmpi.pbs) #JOB_wps2=$(qsub -W depend=afterany:$JOB_wps1 -N wps2 -l select=1:nodearray=execute2:ncpus=16:mpiprocs=16,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wps2_openmpi.pbs) From 07ee0a6ccdbd7504c96d6e974d77f3e979f38a1f Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Wed, 24 Jul 2024 19:22:26 -0300 Subject: [PATCH 62/75] fix geog files --- apps/wrf/automation/build-folder-structure.sh | 6 ++++++ apps/wrf/automation/namelist.wps | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/wrf/automation/build-folder-structure.sh b/apps/wrf/automation/build-folder-structure.sh index 896f0a3bf..df9624922 100644 --- a/apps/wrf/automation/build-folder-structure.sh +++ b/apps/wrf/automation/build-folder-structure.sh @@ -20,6 +20,9 @@ mkdir -p ${WRFDAT}/tables/namelist/ echo "creating ${WRFDAT}/gfs_data/" mkdir -p ${WRFDAT}/gfs_data/ +echo "creating ${WRFDAT}/geog/" +mkdir -p ${WRFDAT}/geog/ + echo "creating /apps/scripts/" mkdir -p /apps/scripts/ @@ -40,3 +43,6 @@ ln -s /apps/hbv3/wps-openmpi/WPS-4.1/* /data/wrfdata/tables/wps/ echo "creating links to WRF files" ln -s /apps/hbv3/wrf-openmpi/WRF-4.1.5/run/* /data/wrfdata/tables/wrf/ +echo "Moving geog files" +#mv albedo_modis albedo_modis.tar.bz2 greenfrac_fpar_modis greenfrac_fpar_modis.tar.bz2 lai_modis_10m lai_modis_10m.tar.bz2 maxsnowalb_modis maxsnowalb_modis.tar.bz2 modis_landuse_20class_30s_with_lakes modis_landuse_20class_30s_with_lakes.tar.bz2 orogwd_10m orogwd_10m.tar.bz2 soiltemp_1deg soiltemp_1deg.tar.bz2 soiltype_bot_30s soiltype_bot_30s.tar.bz2 soiltype_top_30s soiltype_top_30s.tar.bz2 topo_10m topo_10m.tar.bz2 topo_2m topo_2m.tar.bz2 topo_30s topo_30s.tar.bz2 topo_gmted2010_30s topo_gmted2010_30s.tar.bz2 geog + diff --git a/apps/wrf/automation/namelist.wps b/apps/wrf/automation/namelist.wps index 503fd2523..77c566019 100644 --- a/apps/wrf/automation/namelist.wps +++ b/apps/wrf/automation/namelist.wps @@ -26,7 +26,7 @@ truelat2 = -3.0, stand_lon = -48.0, geog_data_path = '/data/wrfdata/geog', - opt_geogrid_tbl_path = '/data/wrfdata/wpsdir/wrkday', + opt_geogrid_tbl_path = '/data/wrfdata/wpsdir/wrkday/geogrid', ref_x = 210.0, ref_y = 150.0, / @@ -40,7 +40,7 @@ fg_name = 'FILE' io_form_metgrid = 2, opt_output_from_metgrid_path = '/data/wrfdata/wpsdir/wrkday', - opt_metgrid_tbl_path = '/data/wrfdata/wpsdir/wrkday', + opt_metgrid_tbl_path = '/data/wrfdata/wpsdir/wrkday/metgrid', / &mod_levs From c656379d759609b3b2aff00d905dc85c425205dc Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 26 Jul 2024 13:36:32 -0300 Subject: [PATCH 63/75] automation testing --- apps/wrf/automation/build-folder-structure.sh | 4 +- .../{namelist.input => namelist-new.input} | 0 .../{namelist.wps => namelist-new.wps} | 0 .../automation/namelist-new_conus2.5km.input | 87 +++++++++++++++++++ .../automation/namelist-new_conus2.5km.wps | 56 ++++++++++++ apps/wrf/automation/run_wps1_openmpi.slurm | 2 +- apps/wrf/automation/run_wps2_openmpi.slurm | 2 +- apps/wrf/automation/submit-slurm.sh | 6 +- 8 files changed, 150 insertions(+), 7 deletions(-) rename apps/wrf/automation/{namelist.input => namelist-new.input} (100%) rename apps/wrf/automation/{namelist.wps => namelist-new.wps} (100%) create mode 100644 apps/wrf/automation/namelist-new_conus2.5km.input create mode 100644 apps/wrf/automation/namelist-new_conus2.5km.wps diff --git a/apps/wrf/automation/build-folder-structure.sh b/apps/wrf/automation/build-folder-structure.sh index df9624922..656597e22 100644 --- a/apps/wrf/automation/build-folder-structure.sh +++ b/apps/wrf/automation/build-folder-structure.sh @@ -27,10 +27,10 @@ echo "creating /apps/scripts/" mkdir -p /apps/scripts/ echo "copying namelist.wps" -cp namelist.wps ${WRFDAT}/tables/namelist/namelist.wps +cp -f namelist*.wps ${WRFDAT}/tables/namelist/ echo "copying namelist.input" -cp namelist.input ${WRFDAT}/tables/namelist/namelist.input +cp -f namelist*.input ${WRFDAT}/tables/namelist/ echo "copying scripts" cp fwddatan.awk /apps/scripts/ diff --git a/apps/wrf/automation/namelist.input b/apps/wrf/automation/namelist-new.input similarity index 100% rename from apps/wrf/automation/namelist.input rename to apps/wrf/automation/namelist-new.input diff --git a/apps/wrf/automation/namelist.wps b/apps/wrf/automation/namelist-new.wps similarity index 100% rename from apps/wrf/automation/namelist.wps rename to apps/wrf/automation/namelist-new.wps diff --git a/apps/wrf/automation/namelist-new_conus2.5km.input b/apps/wrf/automation/namelist-new_conus2.5km.input new file mode 100644 index 000000000..8cb2219df --- /dev/null +++ b/apps/wrf/automation/namelist-new_conus2.5km.input @@ -0,0 +1,87 @@ + &time_control + run_days = 0, + run_hours = 6, + run_minutes = 0, + run_seconds = 0, + start_year = 2018, + start_month = 06, + start_day = 17, + start_hour = 00, + start_minute = 00, + start_second = 00, + end_year = 2018, + end_month = 06, + end_day = 17, + end_hour = 12, + end_minute = 00, + end_second = 00, + interval_seconds = 10800, + input_from_file = .true., + history_interval = 180, + frames_per_outfile = 5, + restart = .false., + restart_interval = 360, + io_form_history = 2, + io_form_restart = 2, + io_form_input = 2, + io_form_boundary = 2, + debug_level = 0 + / + + &domains + time_step = 15, + time_step_fract_num = 0, + time_step_fract_den = 1, + max_dom = 1, + e_we = 1901, + e_sn = 1301, + e_vert = 35, + dx = 2500, + dy = 2500, + p_top_requested = 5000, + num_metgrid_levels = 32, + num_metgrid_soil_levels = 4, + grid_id = 1, + parent_id = 0, + i_parent_start = 1, + j_parent_start = 1, + parent_grid_ratio = 1, + parent_time_step_ratio = 1, + feedback = 1, + smooth_option = 0 + / + + &physics + physics_suite = 'CONUS' + cu_physics = 0, + radt = 10, + bldt = 0, + cudt = 5, + icloud = 1, + isfflx = 1, + isftcflx = 2, + num_soil_layers = 4, + num_land_cat = 21, + / + + &dynamics + w_damping = 1, + diff_opt = 1, + km_opt = 4, + khdif = 0, + kvdif = 0, + non_hydrostatic = .true., + / + + &bdy_control + spec_bdy_width = 5, + spec_zone = 1, + relax_zone = 4, + specified = .true., + nested = .false., + / + + &namelist_quilt + nio_tasks_per_group = 0, + nio_groups = 1, + / diff --git a/apps/wrf/automation/namelist-new_conus2.5km.wps b/apps/wrf/automation/namelist-new_conus2.5km.wps new file mode 100644 index 000000000..fe2c09c44 --- /dev/null +++ b/apps/wrf/automation/namelist-new_conus2.5km.wps @@ -0,0 +1,56 @@ +&share + wrf_core = 'ARW', + max_dom = 1, + start_date = '2018-06-17_00:00:00', + end_date = '2018-06-17_12:00:00', + interval_seconds = 10800 + io_form_geogrid = 2, + opt_output_from_geogrid_path = '/data/wrfdata/wpsdir/wrkday', +/ + +&geogrid + parent_id = 1, + parent_grid_ratio = 1, + i_parent_start = 1, + j_parent_start = 1, + e_we = 1901, + e_sn = 1301, + ! + !!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! The default datasets used to produce the HGT_M, GREENFRAC, + ! and LU_INDEX/LANDUSEF fields have changed in WPS v3.8. The HGT_M field + ! is now interpolated from 30-arc-second USGS GMTED2010, the GREENFRAC + ! field is interpolated from MODIS FPAR, and the LU_INDEX/LANDUSEF fields + ! are interpolated from 21-class MODIS. + ! + ! To match the output given by the default namelist.wps in WPS v3.7.1, + ! the following setting for geog_data_res may be used: + ! + ! geog_data_res = 'gtopo_10m+usgs_10m+nesdis_greenfrac+10m','gtopo_2m+usgs_2m+nesdis_greenfrac+2m', + ! + !!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! + geog_data_res = 'default', + dx = 2500, + dy = 2500, + map_proj = 'lambert', + ref_lat = 40.0, + ref_lon = -98.0, + truelat1 = 30.0, + truelat2 = 60.0, + stand_lon = -98.0, + geog_data_path = '/data/wrfdata/geog', + opt_geogrid_tbl_path = '/data/wrfdata/wpsdir/wrkday/geogrid', +/ + +&ungrib + out_format = 'WPS', + prefix = 'FILE', +/ + +&metgrid + fg_name = 'FILE' + io_form_metgrid = 2, + opt_output_from_metgrid_path = '/data/wrfdata/wpsdir/wrkday', + opt_metgrid_tbl_path = '/data/wrfdata/wpsdir/wrkday/metgrid', +/ diff --git a/apps/wrf/automation/run_wps1_openmpi.slurm b/apps/wrf/automation/run_wps1_openmpi.slurm index 13cb4579e..48954ec46 100644 --- a/apps/wrf/automation/run_wps1_openmpi.slurm +++ b/apps/wrf/automation/run_wps1_openmpi.slurm @@ -4,7 +4,7 @@ #SBATCH --ntasks-per-node=120 #SBATCH --nodes=1 #SBATCH --exclusive -#SBATCH --output=${WPSDIR}/${WRKDAY}/slurm-wps1-%j.out +#SBATCH --output=slurm-wps1-%j.out # Capture start time start_time=$(date +%s) diff --git a/apps/wrf/automation/run_wps2_openmpi.slurm b/apps/wrf/automation/run_wps2_openmpi.slurm index b15fb128b..de0bd323d 100644 --- a/apps/wrf/automation/run_wps2_openmpi.slurm +++ b/apps/wrf/automation/run_wps2_openmpi.slurm @@ -4,7 +4,7 @@ #SBATCH --ntasks-per-node=120 #SBATCH --nodes=1 #SBATCH --exclusive -#SBATCH --output=${WPSDIR}/${WRKDAY}/slurm-wps2-%j.out +#SBATCH --output=slurm-wps2-%j.out # Capture start time start_time=$(date +%s) diff --git a/apps/wrf/automation/submit-slurm.sh b/apps/wrf/automation/submit-slurm.sh index 68de9472e..8af022dd6 100644 --- a/apps/wrf/automation/submit-slurm.sh +++ b/apps/wrf/automation/submit-slurm.sh @@ -20,10 +20,10 @@ mkdir -p $path_wrf/$data #EST2 => select=(1-4); nodearray=execute2; ncpus=96; mpiprocs=96 #EST3 => select=(1-4); nodearray=execute3; ncpus=64; mpiprocs=64 -sbatch --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm +#sbatch --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm -#JOB_wps1=$(sbatch --parsable --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps1_openmpi.slurm) -#JOB_wps2=$(sbatch --parsable --dependency=afterany:$JOB_wps1 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm) +JOB_wps1=$(sbatch --parsable --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps1_openmpi.slurm) +JOB_wps2=$(sbatch --parsable --dependency=afterany:$JOB_wps1 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm) #JOB_wrf1=$(sbatch --parsable --dependency=afterany:$JOB_wps2 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf1_openmpi.slurm) #JOB_wrf2=$(sbatch --parsable --dependency=afterany:$JOB_wrf1 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf2_openmpi.slurm) From 25e0508d2367f97ebf577e8dcd01a33dd1d7fe07 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 26 Jul 2024 18:18:26 -0300 Subject: [PATCH 64/75] automation adjusts --- apps/wrf/automation/build-folder-structure.sh | 13 ++++++------ apps/wrf/automation/run_wps1_openmpi.slurm | 2 +- apps/wrf/automation/run_wps2_openmpi.slurm | 2 +- apps/wrf/automation/run_wrf1_openmpi.slurm | 2 +- apps/wrf/automation/run_wrf2_openmpi.slurm | 2 +- apps/wrf/automation/submit-slurm.sh | 21 +++++++------------ 6 files changed, 19 insertions(+), 23 deletions(-) diff --git a/apps/wrf/automation/build-folder-structure.sh b/apps/wrf/automation/build-folder-structure.sh index 656597e22..7b5d51b65 100644 --- a/apps/wrf/automation/build-folder-structure.sh +++ b/apps/wrf/automation/build-folder-structure.sh @@ -26,15 +26,16 @@ mkdir -p ${WRFDAT}/geog/ echo "creating /apps/scripts/" mkdir -p /apps/scripts/ -echo "copying namelist.wps" -cp -f namelist*.wps ${WRFDAT}/tables/namelist/ +echo "copying namelist*.wps" +cp -f /data/azurehpc/apps/wrf/automation/namelist*.wps ${WRFDAT}/tables/namelist/ -echo "copying namelist.input" -cp -f namelist*.input ${WRFDAT}/tables/namelist/ +echo "copying namelist*.input" +cp -f /data/azurehpc/apps/wrf/automation/namelist*.input ${WRFDAT}/tables/namelist/ echo "copying scripts" -cp fwddatan.awk /apps/scripts/ -cp get_gfs_data.py /apps/scripts/ +cd /data/azurehpc/apps/wrf/automation/ +cp /data/azurehpc/apps/wrf/automation/fwddatan.awk /apps/scripts/ +cp /data/azurehpc/apps/wrf/automation/get_gfs_data.py /apps/scripts/ cp run_*.slurm run_*.pbs submit*.sh /apps/scripts/ echo "creating links to WPF files" diff --git a/apps/wrf/automation/run_wps1_openmpi.slurm b/apps/wrf/automation/run_wps1_openmpi.slurm index 48954ec46..c84b584af 100644 --- a/apps/wrf/automation/run_wps1_openmpi.slurm +++ b/apps/wrf/automation/run_wps1_openmpi.slurm @@ -1,7 +1,7 @@ #!/bin/bash #SBATCH --job-name=wps1 #SBATCH --partition=hpc -#SBATCH --ntasks-per-node=120 +#SBATCH --ntasks-per-node=16 #SBATCH --nodes=1 #SBATCH --exclusive #SBATCH --output=slurm-wps1-%j.out diff --git a/apps/wrf/automation/run_wps2_openmpi.slurm b/apps/wrf/automation/run_wps2_openmpi.slurm index de0bd323d..5152efec0 100644 --- a/apps/wrf/automation/run_wps2_openmpi.slurm +++ b/apps/wrf/automation/run_wps2_openmpi.slurm @@ -1,7 +1,7 @@ #!/bin/bash #SBATCH --job-name=wps2 #SBATCH --partition=hpc -#SBATCH --ntasks-per-node=120 +#SBATCH --ntasks-per-node=16 #SBATCH --nodes=1 #SBATCH --exclusive #SBATCH --output=slurm-wps2-%j.out diff --git a/apps/wrf/automation/run_wrf1_openmpi.slurm b/apps/wrf/automation/run_wrf1_openmpi.slurm index c1a3cfe49..3ce5bf0fb 100644 --- a/apps/wrf/automation/run_wrf1_openmpi.slurm +++ b/apps/wrf/automation/run_wrf1_openmpi.slurm @@ -1,7 +1,7 @@ #!/bin/bash #SBATCH --job-name=wrf1 #SBATCH --partition=hpc -#SBATCH --ntasks-per-node=120 +#SBATCH --ntasks-per-node=64 #SBATCH --nodes=1 #SBATCH --exclusive #SBATCH --output=slurm-wrf1-%j.out diff --git a/apps/wrf/automation/run_wrf2_openmpi.slurm b/apps/wrf/automation/run_wrf2_openmpi.slurm index cd74e640d..6bf8702f1 100644 --- a/apps/wrf/automation/run_wrf2_openmpi.slurm +++ b/apps/wrf/automation/run_wrf2_openmpi.slurm @@ -1,7 +1,7 @@ #!/bin/bash #SBATCH --job-name=wrf2 #SBATCH --partition=hpc -#SBATCH --ntasks-per-node=120 +#SBATCH --ntasks-per-node=96 #SBATCH --nodes=1 #SBATCH --exclusive #SBATCH --output=slurm-wrf2-%j.out diff --git a/apps/wrf/automation/submit-slurm.sh b/apps/wrf/automation/submit-slurm.sh index 8af022dd6..79b08eb5f 100644 --- a/apps/wrf/automation/submit-slurm.sh +++ b/apps/wrf/automation/submit-slurm.sh @@ -16,20 +16,15 @@ echo "data: $data" mkdir -p $path_wps/$data mkdir -p $path_wrf/$data -#EST1 => select=(1-4); nodearray=execute1; ncpus=120; mpiprocs=120 -#EST2 => select=(1-4); nodearray=execute2; ncpus=96; mpiprocs=96 -#EST3 => select=(1-4); nodearray=execute3; ncpus=64; mpiprocs=64 - #sbatch --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm -JOB_wps1=$(sbatch --parsable --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps1_openmpi.slurm) -JOB_wps2=$(sbatch --parsable --dependency=afterany:$JOB_wps1 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm) -#JOB_wrf1=$(sbatch --parsable --dependency=afterany:$JOB_wps2 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf1_openmpi.slurm) -#JOB_wrf2=$(sbatch --parsable --dependency=afterany:$JOB_wrf1 --export="SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf2_openmpi.slurm) - -#JOB_wps1=$(qsub -N wps1 -l select=1:nodearray=execute2:ncpus=16:mpiprocs=16,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wps1_openmpi.pbs) -#JOB_wps2=$(qsub -W depend=afterany:$JOB_wps1 -N wps2 -l select=1:nodearray=execute2:ncpus=16:mpiprocs=16,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wps2_openmpi.pbs) -#JOB_wrf1=$(qsub -W depend=afterany:$JOB_wps2 -N wrf1 -l select=1:nodearray=execute2:ncpus=64:mpiprocs=64,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wrf1_openmpi.pbs) -#JOB_wrf2=$(qsub -W depend=afterany:$JOB_wrf1 -N wrf2 -l select=4:nodearray=execute2:ncpus=96:mpiprocs=96,place=scatter:excl -v "SKU_TYPE=hbv2,WRKDAY=$data" $path_scr/run_wrf2_openmpi.pbs) +# ncpus=16 +JOB_wps1=$(sbatch --parsable --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps1_openmpi.slurm) +# ncpus=16 +JOB_wps2=$(sbatch --parsable --dependency=afterany:$JOB_wps1 --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm) +# ncpus=64 +JOB_wrf1=$(sbatch --parsable --dependency=afterany:$JOB_wps2 --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf1_openmpi.slurm) +# ncpus=96 +JOB_wrf2=$(sbatch --parsable --dependency=afterany:$JOB_wrf1 --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf2_openmpi.slurm) exit From 31508e89b928b9b9868d6353558868bffba780b0 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 26 Jul 2024 18:20:10 -0300 Subject: [PATCH 65/75] 4 nodes --- apps/wrf/automation/run_wrf2_openmpi.slurm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/wrf/automation/run_wrf2_openmpi.slurm b/apps/wrf/automation/run_wrf2_openmpi.slurm index 6bf8702f1..cf6bea15f 100644 --- a/apps/wrf/automation/run_wrf2_openmpi.slurm +++ b/apps/wrf/automation/run_wrf2_openmpi.slurm @@ -2,7 +2,7 @@ #SBATCH --job-name=wrf2 #SBATCH --partition=hpc #SBATCH --ntasks-per-node=96 -#SBATCH --nodes=1 +#SBATCH --nodes=4 #SBATCH --exclusive #SBATCH --output=slurm-wrf2-%j.out From 5a994efb8d036194aaabb7e13df5e1042451a79f Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 26 Jul 2024 18:24:17 -0300 Subject: [PATCH 66/75] 4 nodes --- apps/wrf/automation/submit-slurm.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/wrf/automation/submit-slurm.sh b/apps/wrf/automation/submit-slurm.sh index 79b08eb5f..36689aae3 100644 --- a/apps/wrf/automation/submit-slurm.sh +++ b/apps/wrf/automation/submit-slurm.sh @@ -18,13 +18,13 @@ mkdir -p $path_wrf/$data #sbatch --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm -# ncpus=16 +# ncpus=16 / 1 node JOB_wps1=$(sbatch --parsable --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps1_openmpi.slurm) -# ncpus=16 +# ncpus=16 / 1 node JOB_wps2=$(sbatch --parsable --dependency=afterany:$JOB_wps1 --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm) -# ncpus=64 +# ncpus=64 / 1 node JOB_wrf1=$(sbatch --parsable --dependency=afterany:$JOB_wps2 --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf1_openmpi.slurm) -# ncpus=96 +# ncpus=96 / 4 nodes JOB_wrf2=$(sbatch --parsable --dependency=afterany:$JOB_wrf1 --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf2_openmpi.slurm) exit From 873553a1057a8117a8750e40d0b55f8ea3ecda4c Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 23 Aug 2024 14:23:20 -0300 Subject: [PATCH 67/75] separating download job --- apps/wrf/automation/run_wps1_openmpi.slurm | 6 --- apps/wrf/automation/run_wps2_openmpi.slurm | 43 ++++++++++------ apps/wrf/automation/run_wps3_openmpi.slurm | 58 ++++++++++++++++++++++ apps/wrf/automation/submit-slurm.sh | 12 ++--- 4 files changed, 91 insertions(+), 28 deletions(-) create mode 100644 apps/wrf/automation/run_wps3_openmpi.slurm diff --git a/apps/wrf/automation/run_wps1_openmpi.slurm b/apps/wrf/automation/run_wps1_openmpi.slurm index c84b584af..04ce38144 100644 --- a/apps/wrf/automation/run_wps1_openmpi.slurm +++ b/apps/wrf/automation/run_wps1_openmpi.slurm @@ -75,12 +75,6 @@ sed -i s/mmf/${MESF}/g namelist.wps sed -i s/ddf/${DIAF}/g namelist.wps sed -i s/hhf/${HORF}/g namelist.wps -echo "Running link_grib.csh..." -./link_grib.csh ${WRFDAT}/gfs_data/${WRKDAY}/gfs* - -echo "Running ungrib.exe..." -./ungrib.exe >& ungrib.log - # Capture end time end_time=$(date +%s) # Calculate duration diff --git a/apps/wrf/automation/run_wps2_openmpi.slurm b/apps/wrf/automation/run_wps2_openmpi.slurm index 5152efec0..c9153e982 100644 --- a/apps/wrf/automation/run_wps2_openmpi.slurm +++ b/apps/wrf/automation/run_wps2_openmpi.slurm @@ -12,37 +12,48 @@ start_time=$(date +%s) SKU_TYPE=${1:-$SKU_TYPE} SKU_TYPE=${SKU_TYPE:-"hbv3"} +path_scr=/apps/scripts WRFDAT="/data/wrfdata" WPSDIR=${WRFDAT}/wpsdir WRFDIR=${WRFDAT}/wrfdir WRKDAY=${2:-$WRKDAY} +echo "WRKDAY:" $WRKDAY -echo $WRFDAT $WPSDIR $WRFDIR $WRKDAY +ANO=`echo ${WRKDAY} | cut -c 1-4` +MES=`echo ${WRKDAY} | cut -c 5-6` +DIA=`echo ${WRKDAY} | cut -c 7-8` +HOR=`echo ${WRKDAY} | cut -c 9-10` + +#DIAFIM=`date +%Y%m%d --date="$ANO$MES$DIA +5 day"` +DIAFIM=`echo ${WRKDAY} 132 | awk -f $path_scr/fwddatan.awk` + +ANOF=`echo ${DIAFIM} | cut -c 1-4` +MESF=`echo ${DIAFIM} | cut -c 5-6` +DIAF=`echo ${DIAFIM} | cut -c 7-8` +HORF=`echo ${DIAFIM} | cut -c 9-10` + +echo $WRFDAT $WPSDIR $WRFDIR $WRKDAY $DIAFIM + +mkdir -p $WPSDIR/$WRKDAY echo "SKU_TYPE:" $SKU_TYPE +SHARED_APP=${SHARED_APP:-/apps} + # Load environment variables echo "Load environment variables" source /data/azurehpc/apps/wrf/env-variables $SKU_TYPE -cd $WPSDIR/$WRKDAY -echo "cd $WPSDIR/$WRKDAY" - -mpi_options="-x LD_LIBRARY_PATH " -if [ -n $LD_PRELOAD ]; then - mpi_options+="-x LD_PRELOAD" -fi -echo "mpi_options:" $mpi_options +echo "SLURM_SUBMIT_DIR:" $SLURM_SUBMIT_DIR -echo "SLURM_JOB_NODELIST:" $SLURM_JOB_NODELIST -echo "SLURM_NTASKS:" $SLURM_NTASKS +cd ${WPSDIR}/${WRKDAY} +echo "cd $WPSDIR/$WRKDAY" -scontrol show hostname $SLURM_JOB_NODELIST > hostfile.txt +echo "Running link_grib.csh..." +./link_grib.csh ${WRFDAT}/gfs_data/${WRKDAY}/gfs* -echo "Running geogrid.exe..." -mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa geogrid.exe -echo "Running metgrid.exe..." -mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa metgrid.exe +echo "Running ungrib.exe..." +./ungrib.exe >& ungrib.log # Capture end time end_time=$(date +%s) diff --git a/apps/wrf/automation/run_wps3_openmpi.slurm b/apps/wrf/automation/run_wps3_openmpi.slurm new file mode 100644 index 000000000..f1b177873 --- /dev/null +++ b/apps/wrf/automation/run_wps3_openmpi.slurm @@ -0,0 +1,58 @@ +#!/bin/bash +#SBATCH --job-name=wps3 +#SBATCH --partition=hpc +#SBATCH --ntasks-per-node=16 +#SBATCH --nodes=1 +#SBATCH --exclusive +#SBATCH --output=slurm-wps3-%j.out + +# Capture start time +start_time=$(date +%s) + +SKU_TYPE=${1:-$SKU_TYPE} +SKU_TYPE=${SKU_TYPE:-"hbv3"} + +WRFDAT="/data/wrfdata" +WPSDIR=${WRFDAT}/wpsdir +WRFDIR=${WRFDAT}/wrfdir +WRKDAY=${2:-$WRKDAY} + +echo $WRFDAT $WPSDIR $WRFDIR $WRKDAY + +echo "SKU_TYPE:" $SKU_TYPE + +# Load environment variables +echo "Load environment variables" +source /data/azurehpc/apps/wrf/env-variables $SKU_TYPE + +cd $WPSDIR/$WRKDAY +echo "cd $WPSDIR/$WRKDAY" + +mpi_options="-x LD_LIBRARY_PATH " +if [ -n $LD_PRELOAD ]; then + mpi_options+="-x LD_PRELOAD" +fi +echo "mpi_options:" $mpi_options + +echo "SLURM_JOB_NODELIST:" $SLURM_JOB_NODELIST +echo "SLURM_NTASKS:" $SLURM_NTASKS + +scontrol show hostname $SLURM_JOB_NODELIST > hostfile.txt + +echo "Running geogrid.exe..." +mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa geogrid.exe +echo "Running metgrid.exe..." +mpirun $mpi_options -n $SLURM_NTASKS --hostfile hostfile.txt --bind-to numa metgrid.exe + +# Capture end time +end_time=$(date +%s) +# Calculate duration +duration=$((end_time - start_time)) +# Format duration to hh:mm:ss +hours=$(printf "%02d" $((duration / 3600))) +minutes=$(printf "%02d" $(( (duration % 3600) / 60 ))) +seconds=$(printf "%02d" $((duration % 60))) +duration="${hours}:${minutes}:${seconds}" + +echo "WPS3 finished." +echo "Execution time: $duration seconds" \ No newline at end of file diff --git a/apps/wrf/automation/submit-slurm.sh b/apps/wrf/automation/submit-slurm.sh index 36689aae3..d938b7863 100644 --- a/apps/wrf/automation/submit-slurm.sh +++ b/apps/wrf/automation/submit-slurm.sh @@ -1,11 +1,9 @@ #!/bin/sh -# JOB_wps1 => Executa o download, altera a namelist.wps e executa o ungrib.exe -# JOB_wps2 => Exuta o geogrid.exe e o metgrid.exe +# JOB_wps1 => Executa o download, altera a namelist.wps +# JOB_wps2 => Executa o ungrib.exe +# JOB_wps3 => Exuta o geogrid.exe e o metgrid.exe # JOB_wrf1 => Altera a namelist.input e executa o real.exe # JOB_wrf2 => Executa o wrf.exe -# FILAS => execute1 com 120 ncpus; execute2 com 96 ncpus (otimizada); execute3 com 64 ncpus (otimizada) -# NODES => select 1,2,3 e 4 (maximo de 4 nodes) -# MPIPROCS sempre igual a NCPUS path_wrf=/data/wrfdata/wrfdir path_wps=/data/wrfdata/wpsdir @@ -22,8 +20,10 @@ mkdir -p $path_wrf/$data JOB_wps1=$(sbatch --parsable --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps1_openmpi.slurm) # ncpus=16 / 1 node JOB_wps2=$(sbatch --parsable --dependency=afterany:$JOB_wps1 --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps2_openmpi.slurm) +# ncpus=16 / 1 node +JOB_wps3=$(sbatch --parsable --dependency=afterany:$JOB_wps2 --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wps3_openmpi.slurm) # ncpus=64 / 1 node -JOB_wrf1=$(sbatch --parsable --dependency=afterany:$JOB_wps2 --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf1_openmpi.slurm) +JOB_wrf1=$(sbatch --parsable --dependency=afterany:$JOB_wps3 --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf1_openmpi.slurm) # ncpus=96 / 4 nodes JOB_wrf2=$(sbatch --parsable --dependency=afterany:$JOB_wrf1 --export="ALL,SKU_TYPE=hbv3,WRKDAY=$data" $path_scr/run_wrf2_openmpi.slurm) From 892f729a1450dfec6436d68251ae71752d2a4542 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Thu, 29 Aug 2024 09:30:15 -0300 Subject: [PATCH 68/75] genoma icon --- apps/wrf/images/logo-genoma.jpeg | Bin 0 -> 104527 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/wrf/images/logo-genoma.jpeg diff --git a/apps/wrf/images/logo-genoma.jpeg b/apps/wrf/images/logo-genoma.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..ace7df9b636cd43839a325742ec777b6fd46b34c GIT binary patch literal 104527 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 z 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 literal 0 HcmV?d00001 From d63af45f007253a687ef6325e8e346943a90c1b5 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Thu, 29 Aug 2024 11:10:42 -0300 Subject: [PATCH 69/75] adding genoma template --- apps/wrf/slurm-genoma-template.txt | 903 +++++++++++++++++++++++++++++ 1 file changed, 903 insertions(+) create mode 100644 apps/wrf/slurm-genoma-template.txt diff --git a/apps/wrf/slurm-genoma-template.txt b/apps/wrf/slurm-genoma-template.txt new file mode 100644 index 000000000..3707aea36 --- /dev/null +++ b/apps/wrf/slurm-genoma-template.txt @@ -0,0 +1,903 @@ + +################################ +## Cluster Configuration File ## +################################ + + +[cluster Slurm-Genoma] +FormLayout = selectionpanel +IconUrl = https://github.com/marcusgaspar/azurehpc/blob/892f729a1450dfec6436d68251ae71752d2a4542/apps/wrf/images/logo-genoma.jpeg +Category = Schedulers + +Autoscale = $Autoscale + + [[node defaults]] + UsePublicNetwork = $UsePublicNetwork + Credentials = $Credentials + SubnetId = $SubnetId + Region = $Region + KeyPairLocation = ~/.ssh/cyclecloud.pem + Azure.Identities = $ManagedIdentity + + # Slurm autoscaling supports both Terminate and Deallocate shutdown policies + ShutdownPolicy = $configuration_slurm_shutdown_policy + + # Lustre mounts require termination notifications to unmount + EnableTerminateNotification = ${NFSType == "lustre" || NFSSchedType == "lustre" || AdditionalNFSType1 == "lustre" || AdditionalNFSType2 == "lustre" || EnableTerminateNotification} + TerminateNotificationTimeout = 10m + + [[[configuration]]] + + slurm.install_pkg = azure-slurm-install-pkg-3.0.7.tar.gz + slurm.autoscale_pkg = azure-slurm-pkg-3.0.7.tar.gz + + slurm.version = $configuration_slurm_version + slurm.accounting.enabled = $configuration_slurm_accounting_enabled + slurm.accounting.url = $configuration_slurm_accounting_url + slurm.accounting.user = $configuration_slurm_accounting_user + slurm.accounting.password = $configuration_slurm_accounting_password + slurm.accounting.certificate_url = $configuration_slurm_accounting_certificate_url + slurm.accounting.storageloc = $configuration_slurm_accounting_storageloc + slurm.additional.config = $additional_slurm_config + slurm.ha_enabled = $configuration_slurm_ha_enabled + slurm.launch_parameters = $configuration_slurm_launch_parameters + slurm.disable_pmc = $configuration_slurm_disable_pmc + + # Disable ip-XXXXXXXX hostname generation + cyclecloud.hosts.standalone_dns.enabled = ${NodeNameIsHostname==false} + cyclecloud.hosts.simple_vpc_dns.enabled = ${NodeNameIsHostname==false} + + # For fast spin-up after Deallocate, force an immediate re-converge on boot + cyclecloud.converge_on_boot = true + + # Disable normal NFS exports and mounts + cyclecloud.mounts.sched.disabled = true + cyclecloud.mounts.shared.disabled = true + cyclecloud.exports.sched.disabled = true + cyclecloud.exports.shared.disabled = true + cyclecloud.exports.sched.samba.enabled = false + cyclecloud.exports.shared.samba.enabled = false + cyclecloud.exports.defaults.samba.enabled = false + cshared.server.legacy_links_disabled = true + + # May be used to identify the ID in cluster-init scripts + cluster.identities.default = $ManagedIdentity + + [[[cluster-init cyclecloud/slurm:default:3.0.7]]] + Optional = true + + [[[volume boot]]] + Size = ${ifThenElse(BootDiskSize > 0, BootDiskSize, undefined)} + SSD = True + + [[[configuration cyclecloud.mounts.nfs_shared]]] + type = $NFSType + mountpoint = /shared + export_path = ${ifThenElse(NFSType == "lustre", strcat("tcp:/lustrefs", NFSSharedExportPath), NFSSharedExportPath)} + address = $NFSAddress + options = $NFSSharedMountOptions + + [[[configuration cyclecloud.mounts.nfs_sched]]] + type = $NFSSchedType + mountpoint = /sched + export_path = ${ifThenElse(NFSSchedType == "lustre", strcat("tcp:/lustrefs", NFSSchedExportPath), NFSSchedExportPath)} + address = $NFSSchedAddress + options = $NFSSchedMountOptions + + [[[configuration cyclecloud.mounts.additional_nfs1]]] + disabled = ${AdditionalNFS1 isnt true} + type = $AdditionalNFSType1 + address = $AdditionalNFSAddress1 + mountpoint = $AdditionalNFSMountPoint1 + export_path = ${ifThenElse(AdditionalNFSType1 == "lustre", strcat("tcp:/lustrefs", AdditionalNFSExportPath1), AdditionalNFSExportPath1)} + options = $AdditionalNFSMountOptions1 + + [[[configuration cyclecloud.mounts.additional_nfs2]]] + disabled = ${AdditionalNFS2 isnt true} + type = $AdditionalNFSType2 + address = $AdditionalNFSAddress2 + mountpoint = $AdditionalNFSMountPoint2 + export_path = ${ifThenElse(AdditionalNFSType2 == "lustre", strcat("tcp:/lustrefs", AdditionalNFSExportPath2), AdditionalNFSExportPath2)} + options = $AdditionalNFSMountOptions2 + + [[node scheduler]] + MachineType = $SchedulerMachineType + ImageName = $SchedulerImageName + IsReturnProxy = $ReturnProxy + AdditionalClusterInitSpecs = $SchedulerClusterInitSpecs + ComputerName = ${toLower(regexps("([^a-zA-Z0-9-])", ifThenElse(SchedulerHostName=="Cluster Prefix", StrJoin("-", ClusterName, "scheduler"), ifThenElse(Size(Trim(SchedulerHostName)) == 0 || SchedulerHostName == "Generated", undefined, SchedulerHostName)), "-"))} + # indented version, for clarity. + # ${toLower( + # regexps("([^a-zA-Z0-9-])", + # ifThenElse(SchedulerHostName=="Cluster Prefix", + # StrJoin("-", ClusterName, "scheduler"), + # ifThenElse(Size(Trim(SchedulerHostName)) == 0 || SchedulerHostName == "Generated", + # undefined, + # SchedulerHostName)), + # "-"))} + Zone = ${ifThenElse(configuration_slurm_ha_enabled, SchedulerZone, undefined)} + + [[[configuration]]] + # Disable NFS mount of built-in /sched since it is a local volume mount: cyclecloud.mounts.builtinsched + cyclecloud.mounts.nfs_sched.disabled = ${UseBuiltinSched && !configuration_slurm_ha_enabled} + cyclecloud.mounts.nfs_shared.disabled = ${UseBuiltinShared && !configuration_slurm_ha_enabled} + slurm.secondary_scheduler_name = ${ifThenElse(configuration_slurm_ha_enabled, "scheduler-ha-1", undefined)} + + + [[[cluster-init cyclecloud/slurm:scheduler:3.0.7]]] + + [[[network-interface eth0]]] + AssociatePublicIpAddress = $UsePublicNetwork + + [[[volume sched]]] + Size = $SchedFilesystemSize + SSD = True + Mount = builtinsched + Persistent = False + Disabled = ${!UseBuiltinSched || configuration_slurm_ha_enabled} + + [[[volume shared]]] + Size = $FilesystemSize + SSD = True + Mount = builtinshared + Persistent = True + Disabled = ${!UseBuiltinShared || configuration_slurm_ha_enabled} + + [[[configuration cyclecloud.mounts.builtinsched]]] + disabled = ${!UseBuiltinSched || configuration_slurm_ha_enabled} + mountpoint = /sched + fs_type = xfs + + [[[configuration cyclecloud.mounts.builtinshared]]] + disabled = ${!UseBuiltinShared || configuration_slurm_ha_enabled} + mountpoint = /shared + fs_type = xfs + + [[[configuration cyclecloud.exports.builtinsched]]] + disabled = ${!UseBuiltinSched || configuration_slurm_ha_enabled} + export_path = /sched + options = no_root_squash + samba.enabled = false + type = nfs + + [[[configuration cyclecloud.exports.builtinshared]]] + disabled = ${!UseBuiltinShared || configuration_slurm_ha_enabled} + export_path = /shared + samba.enabled = false + type = nfs + + [[nodearray scheduler-ha]] + Extends = scheduler + IsReturnProxy = false + InitialCount = $configuration_slurm_ha_enabled + Zone = $SchedulerHAZone + [[[configuration]]] + autoscale.enabled = false + slurm.node_prefix = ${ifThenElse(NodeNamePrefix=="Cluster Prefix", StrJoin("-", ClusterName, ""), NodeNamePrefix)} + slurm.use_nodename_as_hostname = $NodeNameIsHostname + slurm.is_primary_scheduler = false + + [[nodearray login]] + InitialCount = $NumberLoginNodes + MachineType = $loginMachineType + ImageName = $SchedulerImageName + + [[[cluster-init cyclecloud/slurm:login:3.0.7]]] + [[[configuration]]] + autoscale.enabled = false + slurm.node_prefix = ${ifThenElse(NodeNamePrefix=="Cluster Prefix", StrJoin("-", ClusterName, ""), NodeNamePrefix)} + slurm.use_nodename_as_hostname = $NodeNameIsHostname + + [[node nodearraybase]] + Abstract = true + [[[configuration]]] + slurm.autoscale = true + + slurm.node_prefix = ${ifThenElse(NodeNamePrefix=="Cluster Prefix", StrJoin("-", ClusterName, ""), NodeNamePrefix)} + slurm.use_nodename_as_hostname = $NodeNameIsHostname + + [[[cluster-init cyclecloud/slurm:execute:3.0.7]]] + + [[[network-interface eth0]]] + AssociatePublicIpAddress = $ExecuteNodesPublic + + [[nodearray hpc]] + Extends = nodearraybase + MachineType = $HPCMachineType + ImageName = $HPCImageName + MaxCoreCount = $MaxHPCExecuteCoreCount + Azure.MaxScalesetSize = $HPCMaxScalesetSize + AdditionalClusterInitSpecs = $HPCClusterInitSpecs + EnableNodeHealthChecks = $EnableNodeHealthChecks + + + [[[configuration]]] + slurm.default_partition = true + slurm.hpc = true + slurm.partition = hpc + + + [[nodearray htc]] + Extends = nodearraybase + MachineType = $HTCMachineType + ImageName = $HTCImageName + MaxCoreCount = $MaxHTCExecuteCoreCount + + Interruptible = $HTCUseLowPrio + MaxPrice = $HTCSpotMaxPrice + AdditionalClusterInitSpecs = $HTCClusterInitSpecs + + [[[configuration]]] + slurm.hpc = false + slurm.partition = htc + # set pcpu = false for all hyperthreaded VMs + slurm.use_pcpu = false + + [[nodearray dynamic]] + Extends = nodearraybase + MachineType = $DynamicMachineType + ImageName = $DynamicImageName + MaxCoreCount = $MaxDynamicExecuteCoreCount + + Interruptible = $DynamicUseLowPrio + MaxPrice = $DynamicSpotMaxPrice + AdditionalClusterInitSpecs = $DynamicClusterInitSpecs + [[[configuration]]] + slurm.hpc = false + slurm.dynamic_config := "-Z --conf \"Feature=dyn\"" + # set pcpu = false for all hyperthreaded VMs + slurm.use_pcpu = false + +[parameters About] +Order = 1 + + [[parameters About Slurm]] + + [[[parameter slurm]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''
    Slurm icon

    Follow the instructions in theREADMEfor details on instructions on extending and configuring the Project for your environment.


    Slurm is the most widely used workload manager in HPC, as the scheduler of choice for six of the top ten systems in the TOP500 and with market penetration of more than 70%. Slurm is an advanced, open-source scheduler designed to satisfy the demanding needs of high-performance computing (HPC), high-throughput computing (HTC), and artificial intelligence (AI).

    Commercial Support provided by SchedMD

    Get more from your HPC investment! SchedMD, the company behind Slurm development, can answer your Slurm questions and explain our options for consultation, training, support, and migration.

    Contact SchedMD

    View more details about Slurm?

    Slurm at a glance

    Slurm provides massive scalability and can easily manage performance requirements for small cluster, large cluster, and supercomputer needs. Slurm outperforms competitive schedulers with compute rates at:

    • 100K+ nodes/GPU
    • 17M+ jobs per day
    • 120M+ jobs per week

    Slurm’s plug-in based architecture enables optimization and control in scheduling operations to meet organizational priorities. With first class resource management for GPUs, Slurm allows users to request GPU resources alongside CPUs. This flexibility ensures that jobs are executed quickly and efficiently, while maximizing resource utilization.


    Other Slurm features include:

    • NVIDIA and AMD GPU support for AI, LLM, and ML environments
    • Advanced scheduling policies
    • Unique HPC, HTC, AI/ML workload expertise
    • Cloud bursting capabilities
    • Power saving capabilities, accounting, and reporting
    • Provided REST API daemon
    • Native support of containers
    • Tailored Slurm consulting and training available through SchedMD
    ''' + +[parameters Required Settings] +Order = 10 + + + [[parameters Virtual Machines ]] + Description = "The cluster, in this case, has two roles: the scheduler node with shared filer and the execute hosts. Configure which VM types to use based on the requirements of your application." + Order = 20 + + [[[parameter Region]]] + Label = Region + Description = Deployment Location + ParameterType = Cloud.Region + + [[[parameter SchedulerMachineType]]] + Label = Scheduler VM Type + Description = The VM type for scheduler node + ParameterType = Cloud.MachineType + DefaultValue = Standard_D4ads_v5 + + [[[parameter loginMachineType]]] + Label = Login node VM Type + Description = The VM type for login nodes. + ParameterType = Cloud.MachineType + DefaultValue = Standard_D8as_v4 + + [[[parameter HPCMachineType]]] + Label = HPC VM Type + Description = The VM type for HPC execute nodes + ParameterType = Cloud.MachineType + DefaultValue = Standard_F2s_v2 + + [[[parameter HTCMachineType]]] + Label = HTC VM Type + Description = The VM type for HTC execute nodes + ParameterType = Cloud.MachineType + DefaultValue = Standard_F2s_v2 + + [[[parameter DynamicMachineType]]] + Label = Dyn VM Type + Description = The VM type for Dynamic execute nodes + ParameterType = Cloud.MachineType + DefaultValue = Standard_F2s_v2 + Config.MultiSelect = true + + + [[parameters Auto-Scaling]] + Description = "The cluster can autoscale to the workload, adding execute hosts as jobs are queued. To enable this check the box below and choose the initial and maximum core counts for the cluster." + Order = 30 + + [[[parameter Autoscale]]] + Label = Autoscale + DefaultValue = true + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Start and stop execute instances automatically + + [[[parameter MaxHPCExecuteCoreCount]]] + Label = Max HPC Cores + Description = The total number of HPC execute cores to start + DefaultValue = 100 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 1 + Config.IntegerOnly = true + + [[[parameter MaxHTCExecuteCoreCount]]] + Label = Max HTC Cores + Description = The total number of HTC execute cores to start + DefaultValue = 100 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 1 + Config.IntegerOnly = true + + [[[parameter MaxDynamicExecuteCoreCount]]] + Label = Max Dyn Cores + Description = The total number of Dynamic execute cores to start + DefaultValue = 100 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 1 + Config.IntegerOnly = true + + [[[parameter HPCMaxScalesetSize]]] + Label = Max VMs per VMSS + Description = The maximum number of VMs created per VM Scaleset e.g. switch in Slurm. + DefaultValue = 100 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 1 + Config.IntegerOnly = true + + + [[[parameter HTCUseLowPrio]]] + Label = HTC Spot + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Use Spot VMs for HTC execute hosts + + [[[parameter HTCSpotMaxPrice]]] + Label = Max Price HTC + DefaultValue = -1 + Description = Max price for Spot VMs in USD (value of -1 will not evict based on price) + Config.Plugin = pico.form.NumberTextBox + Conditions.Excluded := HTCUseLowPrio isnt true + Config.MinValue = -1 + + [[[parameter DynamicUseLowPrio]]] + Label = DynSpot + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Use Spot VMs for Dynamic execute hosts + + [[[parameter DynamicSpotMaxPrice]]] + Label = Max Price Dyn + DefaultValue = -1 + Description = Max price for Spot VMs in USD (value of -1 will not evict based on price) + Config.Plugin = pico.form.NumberTextBox + Conditions.Excluded := DynamicUseLowPrio isnt true + Config.MinValue = -1 + + [[[parameter NumberLoginNodes]]] + Label = Num Login Nodes + DefaultValue = 0 + Description = Number of optional login nodes to create. + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 0 + Config.MaxValue = 10000 + Config.IntegerOnly = true + + [[parameters Networking]] + Order = 40 + + [[[parameter SubnetId]]] + Label = Subnet ID + Description = Subnet Resource Path (ResourceGroup/VirtualNetwork/Subnet) + ParameterType = Azure.Subnet + Required = True + + [[parameters High Availability]] + Order = 50 + Description = "Slurm can be setup in HA mode - where slurmctld is running on two nodes with failover. Note that checking this box will require an external NFS, so any reference to the 'builtin' NFS will be hidden." + [[[parameter configuration_slurm_ha_enabled]]] + Label = Slurm HA Node + Description = Deploy with an additional HA node + DefaultValue = false + ParameterType = Boolean + + +[parameters Network Attached Storage] +Order = 15 + + [[parameters Shared Storage]] + Order = 10 + + [[[parameter About Shared Storage]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''

    The directories /sched and /shared are network attached mounts and exist on all nodes of the cluster.
    +
    + Options for providing these mounts:
    + [Builtin]: The scheduler node is an NFS server that provides the mountpoint to the other nodes of the cluster (not supported for HA configurations).
    + [External NFS]: A network attached storage such as Azure Netapp Files, HPC Cache, or another VM running an NFS server provides the mountpoint.
    + [Azure Managed Lustre]: An Azure Managed Lustre deployment provides the mountpoint.
    +

    +

    + Note: the cluster must be terminated for changes to filesystem mounts to take effect. +

    ''' + Conditions.Hidden := false + + [[parameters Scheduler Mount]] + Order = 20 + Label = File-system Mount for /sched + + [[[parameter About sched]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''

    Slurm's configuration is linked in from the /sched directory. It is managed by the scheduler node

    ''' + Order = 6 + + [[[parameter About sched part 2]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''

    To disable the built-in NFS export of the /sched directory, and to use an external filesystem, select the checkbox below.

    ''' + Order = 7 + Conditions.Hidden := configuration_slurm_ha_enabled + + [[[parameter UseBuiltinSched]]] + Label = Use Builtin NFS + Description = Use the builtin NFS for /sched + DefaultValue = true + ParameterType = Boolean + Conditions.Hidden := configuration_slurm_ha_enabled + Disabled = configuration_slurm_ha_enabled + + [[[parameter NFSSchedDiskWarning]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "

    Warning: switching an active cluster over to NFS or Lustre from Builtin will delete the shared disk.

    " + Conditions.Hidden := UseBuiltinSched || configuration_slurm_ha_enabled + + [[[parameter NFSSchedType]]] + Label = FS Type + ParameterType = StringList + Config.Label = Type of shared filesystem to use for this cluster + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="External NFS"; Value="nfs"], [Label="Azure Managed Lustre"; Value="lustre"]} + DefaultValue = nfs + Conditions.Hidden := UseBuiltinSched && !configuration_slurm_ha_enabled + + [[[parameter NFSSchedAddress]]] + Label = IP Address + Description = The IP address or hostname of the NFS server or Lustre FS. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + Conditions.Hidden := UseBuiltinSched && !configuration_slurm_ha_enabled + + [[[parameter NFSSchedExportPath]]] + Label = Export Path + Description = The path exported by the file system + DefaultValue = /sched + Conditions.Hidden := UseBuiltinSched && !configuration_slurm_ha_enabled + + [[[parameter NFSSchedMountOptions]]] + Label = Mount Options + Description = NFS Client Mount Options + Conditions.Hidden := UseBuiltinSched && !configuration_slurm_ha_enabled + + + [[[parameter SchedFilesystemSize]]] + Label = Size (GB) + Description = The filesystem size (cannot be changed after initial start) + DefaultValue = 30 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 10 + Config.MaxValue = 10240 + Config.IntegerOnly = true + Conditions.Excluded := !UseBuiltinSched || configuration_slurm_ha_enabled + + + + [[parameters Default NFS Share]] + Order = 30 + Label = File-system Mount for /shared + + [[[parameter About shared]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''

    Users' home directories reside within the /shared mountpoint with the base homedir /shared/home.

    ''' + Order = 6 + + [[[parameter About shared part 2]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template = '''

    To disable the built-in NFS export of the /shared directory, and to use an external filesystem, select the checkbox below.

    ''' + Order = 7 + Conditions.Hidden := configuration_slurm_ha_enabled + + [[[parameter UseBuiltinShared]]] + Label = Use Builtin NFS + Description = Use the builtin NFS for /share + DefaultValue = true + ParameterType = Boolean + Conditions.Hidden := configuration_slurm_ha_enabled + Disabled = configuration_slurm_ha_enabled + + [[[parameter NFSDiskWarning]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "

    Warning: switching an active cluster over to NFS or Lustre from Builtin will delete the shared disk.

    " + Conditions.Hidden := UseBuiltinShared || configuration_slurm_ha_enabled + + [[[parameter NFSType]]] + Label = FS Type + ParameterType = StringList + Config.Label = Type of shared filesystem to use for this cluster + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="External NFS"; Value="nfs"], [Label="Azure Managed Lustre"; Value="lustre"]} + DefaultValue = nfs + Conditions.Hidden := UseBuiltinShared && !configuration_slurm_ha_enabled + + [[[parameter NFSAddress]]] + Label = IP Address + Description = The IP address or hostname of the NFS server or Lustre FS. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + Conditions.Hidden := UseBuiltinShared && !configuration_slurm_ha_enabled + + [[[parameter NFSSharedExportPath]]] + Label = Export Path + Description = The path exported by the file system + DefaultValue = /shared + Conditions.Hidden := UseBuiltinShared && !configuration_slurm_ha_enabled + + [[[parameter NFSSharedMountOptions]]] + Label = Mount Options + Description = NFS Client Mount Options + Conditions.Hidden := UseBuiltinShared && !configuration_slurm_ha_enabled + + + [[[parameter FilesystemSize]]] + Label = Size (GB) + Description = The filesystem size (cannot be changed after initial start) + DefaultValue = 100 + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 10 + Config.MaxValue = 10240 + Config.IntegerOnly = true + Conditions.Excluded := !UseBuiltinShared || configuration_slurm_ha_enabled + + [[parameters Additional NFS Mount]] + Order = 40 + Label = Additional Filesystem Mount + [[[parameter Additional Shared FS Mount Readme]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "

    Mount another shared filesystem endpoint on the cluster nodes.

    " + Order = 20 + + [[[parameter AdditionalNFS1]]] + HideLabel = true + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Add Shared Filesystem mount + + [[[parameter AdditionalNFSType1]]] + Label = FS Type + ParameterType = StringList + Config.Label = Shared filesystem type of the additional mount + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="External NFS"; Value="nfs"], [Label="Azure Managed Lustre"; Value="lustre"]} + DefaultValue = nfs + Conditions.Excluded := AdditionalNFS1 isnt true + + [[[parameter AdditionalNFSAddress1]]] + Label = IP Address + Description = The IP address or hostname of the additional mount. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + Conditions.Excluded := AdditionalNFS1 isnt true + + [[[parameter AdditionalNFSMountPoint1]]] + Label = Mount Point + Description = The path at which to mount the Filesystem + DefaultValue = /data1 + Conditions.Excluded := AdditionalNFS1 isnt true + + [[[parameter AdditionalNFSExportPath1]]] + Label = Export Path + Description = The path exported by the file system + DefaultValue = /anf-vol1/genomica/data1 + Conditions.Excluded := AdditionalNFS1 isnt true + + [[[parameter AdditionalNFSMountOptions1]]] + Label = Mount Options + Description = Filesystem Client Mount Options + DefaultValue = defaults,rw,hard,rsize=262144,wsize=262144,vers=3,tcp + Conditions.Excluded := AdditionalNFS1 isnt true + + [[[parameter AdditionalNFS2]]] + HideLabel = true + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Add Shared Filesystem mount + + [[[parameter AdditionalNFSType2]]] + Label = FS Type + ParameterType = StringList + Config.Label = Shared filesystem type of the additional mount + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Label="External NFS"; Value="nfs"], [Label="Azure Managed Lustre"; Value="lustre"]} + DefaultValue = nfs + Conditions.Excluded := AdditionalNFS2 isnt true + + [[[parameter AdditionalNFSAddress2]]] + Label = IP Address + Description = The IP address or hostname of the additional mount. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. + Config.ParameterType = String + Conditions.Excluded := AdditionalNFS2 isnt true + + [[[parameter AdditionalNFSMountPoint2]]] + Label = Mount Point + Description = The path at which to mount the Filesystem + DefaultValue = /data2 + Conditions.Excluded := AdditionalNFS2 isnt true + + [[[parameter AdditionalNFSExportPath2]]] + Label = Export Path + Description = The path exported by the file system + DefaultValue = /sa-vol1/genomica/data2 + Conditions.Excluded := AdditionalNFS2 isnt true + + [[[parameter AdditionalNFSMountOptions2]]] + Label = Mount Options + Description = Filesystem Client Mount Options + DefaultValue = aznfs defaults,sec=sys,vers=3,nolock,proto=tcp,nofail,_netdev + Conditions.Excluded := AdditionalNFS2 isnt true + + +[parameters Advanced Settings] +Order = 20 + + [[parameters Azure Settings]] + Order = 10 + + [[[parameter Credentials]]] + Description = The credentials for the cloud provider + ParameterType = Cloud.Credentials + + [[[parameter ManagedIdentity]]] + Label = Managed Id + Description = Optionally assign an Azure user assigned managed identity to all nodes to access Azure resources using assigned roles. + ParameterType = Azure.ManagedIdentity + DefaultValue = =undefined + + [[[parameter BootDiskSize]]] + Description = Optional: Size of the OS/boot disk in GB for all nodes in the cluster (leave at 0 to use Image size) + ParameterType = Integer + Config.Plugin = pico.form.NumberTextBox + Config.MinValue = 0 + Config.MaxValue = 32,000 + Config.IntegerOnly = true + Config.Increment = 64 + DefaultValue = 0 + + [[parameters Slurm Settings ]] + + Order = 5 + + [[[parameter slurm_version_warning]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Config.Template := "
    Note: For SLES HPC, we can only install the version supported by SLES HPC's zypper repos. At the time of this release, that is 23.02.7
    " + + + [[[parameter configuration_slurm_version]]] + Required = True + Label = Slurm Version + Description = Version of Slurm to install on the cluster + ParameterType = StringList + Config.Plugin = pico.form.Dropdown + Config.FreeForm = true + Config.Entries := {[Value="23.02.7-4"], [Value="23.11.7-1"]} + DefaultValue = 23.11.7-1 + + [[[parameter configuration_slurm_accounting_enabled]]] + Label = Job Accounting + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Configure Slurm job accounting + + [[[parameter slurm_database_warning]]] + HideLabel = true + Config.Plugin = pico.widget.HtmlTemplateWidget + Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + Config.Template := "
    Note: Checking this box will create persistent databases and tables in SQL DB provided. Deleting this cluster will not automatically delete those databases. User is responsible for periodically purging/archiving their slurm databases to maintain costs.
    " + + [[[parameter configuration_slurm_accounting_url]]] + Label = Slurm DBD URL + Description = URL of the database to use for Slurm job accounting + Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + + [[[parameter configuration_slurm_accounting_storageloc]]] + Label = Database name + Description = Database name to store slurm accounting records + Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + + [[[parameter configuration_slurm_accounting_user]]] + Label = Slurm DBD User + Description = User for Slurm DBD admin + Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + + [[[parameter configuration_slurm_accounting_password]]] + Label = Slurm DBD Password + Description = Password for Slurm DBD admin + ParameterType = Password + Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + + [[[parameter configuration_slurm_accounting_certificate_url]]] + Label = SSL Certificate URL + Description = URL to fetch SSL certificate for authentication to DB. Use AzureCA.pem (embedded) for use with deprecated MariaDB instances. + Conditions.Excluded := configuration_slurm_accounting_enabled isnt true + ParameterType = StringList + Config.Plugin = pico.form.Dropdown + Config.FreeForm = true + Config.Entries := {[Value=""], [Value="AzureCA.pem"]} + DefaultValue = "" + + [[[parameter configuration_slurm_shutdown_policy]]] + Label = Shutdown Policy + description = By default, autostop will Delete stopped VMS for lowest cost. Optionally, Stop/Deallocate the VMs for faster restart instead. + DefaultValue = Terminate + config.plugin = pico.control.AutoCompleteDropdown + [[[[list Config.Entries]]]] + Name = Terminate + Label = Terminate + [[[[list Config.Entries]]]] + Name = Deallocate + Label = Deallocate + + [[[parameter EnableTerminateNotification]]] + Label = Enable Termination notifications + DefaultValue = False + + [[[parameter additional_slurm_config]]] + Label = Slurm Configuration + Description = Any additional lines to add to slurm.conf + ParameterType = Text + + [[[parameter configuration_slurm_launch_parameters]]] + Label = Launch Parameters + Description = Deploy Slurm with Launch Parameters (comma delimited) + DefaultValue = '' + ParameterType = String + + + + [[parameters Software]] + Description = "Specify the scheduling software, and base OS installed on all nodes, and optionally the cluster-init and chef versions from your locker." + Order = 10 + + [[[parameter NodeNameIsHostname]]] + Label = Name As Hostname + Description = Should the hostname match the nodename for execute nodes? + ParameterType = Boolean + DefaultValue = true + + [[[parameter NodeNamePrefix]]] + Label = Node Prefix + Description = Prefix for generated node names, i.e. "prefix-" generates prefix-nodearray-1. Use 'Cluster Prefix' to get $ClusterName-nodearray-1 + ParameterType = StringList + Config.Plugin = pico.form.Dropdown + Config.FreeForm = true + DefaultValue = "Cluster Prefix" + Config.Entries := {[Value=""], [Value="Cluster Prefix"]} + Conditions.Hidden := NodeNameIsHostname != true + + [[[parameter SchedulerHostName]]] + Label = Scheduler Hostname + Description = Hostname of scheduler. 'Generated' uses the default generated hostname. 'Cluster Prefix' will generate $ClusterName-scheduler. + ParameterType = StringList + Config.Plugin = pico.form.Dropdown + Config.FreeForm = true + DefaultValue = "Cluster Prefix" + Config.Entries := {[Value="Generated"], [Value="Cluster Prefix"]} + Conditions.Hidden := NodeNameIsHostname != true + + [[[parameter SchedulerImageName]]] + Label = Scheduler OS + ParameterType = Cloud.Image + Config.OS = linux + DefaultValue = almalinux8 + Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu20", "cycle.image.ubuntu22", "cycle.image.sles15-hpc", "almalinux8"} + + [[[parameter HPCImageName]]] + Label = HPC OS + ParameterType = Cloud.Image + Config.OS = linux + DefaultValue = almalinux8 + Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu20", "cycle.image.ubuntu22", "cycle.image.sles15-hpc", "almalinux8"} + + [[[parameter HTCImageName]]] + Label = HTC OS + ParameterType = Cloud.Image + Config.OS = linux + DefaultValue = almalinux8 + Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu20", "cycle.image.ubuntu22", "cycle.image.sles15-hpc", "almalinux8"} + + [[[parameter DynamicImageName]]] + Label = Dynamic OS + ParameterType = Cloud.Image + Config.OS = linux + DefaultValue = almalinux8 + Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu20", "cycle.image.ubuntu22", "cycle.image.sles15-hpc", "almalinux8"} + + [[[parameter SchedulerClusterInitSpecs]]] + Label = Scheduler Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to the scheduler node + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter HTCClusterInitSpecs]]] + Label = HTC Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to HTC execute nodes + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter HPCClusterInitSpecs]]] + Label = HPC Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to HPC execute nodes + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter DynamicClusterInitSpecs]]] + Label = Dyn Cluster-Init + DefaultValue = =undefined + Description = Cluster init specs to apply to Dynamic execute nodes + ParameterType = Cloud.ClusterInitSpecs + + [[[parameter configuration_slurm_disable_pmc]]] + Label = Disable PMC + Description = Disable packages from packages.microsoft.com + ParameterType = Boolean + DefaultValue = false + + + [[parameters Advanced Networking]] + + [[[parameter ReturnProxy]]] + Label = Return Proxy + DefaultValue = true + ParameterType = Boolean + Config.Label = Use SSH tunnel to connect to CycleCloud (required if direct access is blocked) + + [[[parameter UsePublicNetwork]]] + Label = Public Head Node + DefaultValue = true + ParameterType = Boolean + Config.Label = Access scheduler node from the Internet + + [[[parameter ExecuteNodesPublic]]] + Label = Public Execute + DefaultValue = false + ParameterType = Boolean + Config.Label = Access execute nodes from the Internet + Conditions.Excluded := UsePublicNetwork isnt true + + [[[parameter SchedulerZone]]] + Label = Scheduler Zone + Description = The availability zone in which to deploy the scheduler node. + DefaultValue = =undefined + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Value=1], [Value=2], [Value=3], [Value=undefined; Label="Any"]} + + [[[parameter SchedulerHAZone]]] + Label = Scheduler HA Zone + Description = The availability zone in which to deploy the scheduler-ha node. + DefaultValue = =undefined + Config.Plugin = pico.form.Dropdown + Config.Entries := {[Value=1], [Value=2], [Value=3], [Value=undefined; Label="Any"]} + Conditions.Hidden := configuration_slurm_ha_enabled isnt true + + [[parameters Node Health Checks]] + Description = "Section for configuring Node Health Checks" + Order = 12 + + [[[parameter EnableNodeHealthChecks]]] + Label = Enable NHC tests + DefaultValue = false + Widget.Plugin = pico.form.BooleanCheckBox + Widget.Label = Run Node Health Checks on startup From 8f8759d723990e30987f0035e21bcb8ced371177 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Thu, 29 Aug 2024 13:08:56 -0300 Subject: [PATCH 70/75] fix drop down --- apps/wrf/slurm-genoma-template.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/wrf/slurm-genoma-template.txt b/apps/wrf/slurm-genoma-template.txt index 3707aea36..c6038b647 100644 --- a/apps/wrf/slurm-genoma-template.txt +++ b/apps/wrf/slurm-genoma-template.txt @@ -606,7 +606,7 @@ Order = 15 [[[parameter AdditionalNFSMountOptions1]]] Label = Mount Options Description = Filesystem Client Mount Options - DefaultValue = defaults,rw,hard,rsize=262144,wsize=262144,vers=3,tcp + DefaultValue = "defaults,rw,hard,rsize=262144,wsize=262144,vers=3,tcp" Conditions.Excluded := AdditionalNFS1 isnt true [[[parameter AdditionalNFS2]]] @@ -620,8 +620,8 @@ Order = 15 ParameterType = StringList Config.Label = Shared filesystem type of the additional mount Config.Plugin = pico.form.Dropdown - Config.Entries := {[Label="External NFS"; Value="nfs"], [Label="Azure Managed Lustre"; Value="lustre"]} - DefaultValue = nfs + Config.Entries := {[Label="External NFS"; Value="nfs"], [Label="External AZ Blob NFS"; Value="aznfs"], [Label="Azure Managed Lustre"; Value="lustre"]} + DefaultValue = aznfs Conditions.Excluded := AdditionalNFS2 isnt true [[[parameter AdditionalNFSAddress2]]] @@ -645,7 +645,7 @@ Order = 15 [[[parameter AdditionalNFSMountOptions2]]] Label = Mount Options Description = Filesystem Client Mount Options - DefaultValue = aznfs defaults,sec=sys,vers=3,nolock,proto=tcp,nofail,_netdev + DefaultValue = "defaults,sec=sys,vers=3,nolock,proto=tcp,nconnect=16,nofail,_netdev" Conditions.Excluded := AdditionalNFS2 isnt true From 172e4b7f72a278eebbcc0e52c4d0c400c4556cdf Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Thu, 29 Aug 2024 16:32:39 -0300 Subject: [PATCH 71/75] fix icon URL --- apps/wrf/slurm-genoma-template.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/wrf/slurm-genoma-template.txt b/apps/wrf/slurm-genoma-template.txt index c6038b647..f5414046f 100644 --- a/apps/wrf/slurm-genoma-template.txt +++ b/apps/wrf/slurm-genoma-template.txt @@ -6,7 +6,7 @@ [cluster Slurm-Genoma] FormLayout = selectionpanel -IconUrl = https://github.com/marcusgaspar/azurehpc/blob/892f729a1450dfec6436d68251ae71752d2a4542/apps/wrf/images/logo-genoma.jpeg +IconUrl = https://raw.githubusercontent.com/marcusgaspar/azurehpc/892f729a1450dfec6436d68251ae71752d2a4542/apps/wrf/images/logo-genoma.jpeg Category = Schedulers Autoscale = $Autoscale From eec10c79d4394d1092a85e5bf52326332c33ef05 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 27 Sep 2024 17:05:26 -0300 Subject: [PATCH 72/75] including cluster-init for wrf --- apps/wrf/automation/build-folder-structure.sh | 11 ++- .../cluster-init-projects/import-template.sh | 11 +++ .../upload-cluster-init-project.sh | 15 +++ .../wrf-proj/project.ini | 5 + .../default/cluster-init/files/README.txt | 5 + .../cluster-init/scripts/001.script1.sh | 22 +++++ .../default/cluster-init/scripts/README.txt | 10 ++ .../default/cluster-init/tests/README.txt | 5 + .../templates}/opbswrf-template-v2.txt | 0 .../wrf-proj/templates}/opbswrf-template.txt | 0 .../slurm-wrf-template-login-node.txt} | 95 +++++++++++++++---- .../templates}/slurm-wrf-template.txt | 1 + 12 files changed, 154 insertions(+), 26 deletions(-) create mode 100644 apps/wrf/cluster-init-projects/import-template.sh create mode 100644 apps/wrf/cluster-init-projects/upload-cluster-init-project.sh create mode 100644 apps/wrf/cluster-init-projects/wrf-proj/project.ini create mode 100644 apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/files/README.txt create mode 100644 apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/scripts/001.script1.sh create mode 100644 apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/scripts/README.txt create mode 100644 apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/tests/README.txt rename apps/wrf/{ => cluster-init-projects/wrf-proj/templates}/opbswrf-template-v2.txt (100%) rename apps/wrf/{ => cluster-init-projects/wrf-proj/templates}/opbswrf-template.txt (100%) rename apps/wrf/{slurm-genoma-template.txt => cluster-init-projects/wrf-proj/templates/slurm-wrf-template-login-node.txt} (93%) rename apps/wrf/{ => cluster-init-projects/wrf-proj/templates}/slurm-wrf-template.txt (99%) diff --git a/apps/wrf/automation/build-folder-structure.sh b/apps/wrf/automation/build-folder-structure.sh index 7b5d51b65..8354d1f6a 100644 --- a/apps/wrf/automation/build-folder-structure.sh +++ b/apps/wrf/automation/build-folder-structure.sh @@ -32,11 +32,12 @@ cp -f /data/azurehpc/apps/wrf/automation/namelist*.wps ${WRFDAT}/tables/namelist echo "copying namelist*.input" cp -f /data/azurehpc/apps/wrf/automation/namelist*.input ${WRFDAT}/tables/namelist/ -echo "copying scripts" -cd /data/azurehpc/apps/wrf/automation/ -cp /data/azurehpc/apps/wrf/automation/fwddatan.awk /apps/scripts/ -cp /data/azurehpc/apps/wrf/automation/get_gfs_data.py /apps/scripts/ -cp run_*.slurm run_*.pbs submit*.sh /apps/scripts/ +echo "creating link to scripts" +#cd /data/azurehpc/apps/wrf/automation/ +#cp /data/azurehpc/apps/wrf/automation/fwddatan.awk /apps/scripts/ +#cp /data/azurehpc/apps/wrf/automation/get_gfs_data.py /apps/scripts/ +#cp run_*.slurm run_*.pbs submit*.sh /apps/scripts/ +ln -s /data/azurehpc/apps/wrf/automation/* /apps/scripts/ echo "creating links to WPF files" ln -s /apps/hbv3/wps-openmpi/WPS-4.1/* /data/wrfdata/tables/wps/ diff --git a/apps/wrf/cluster-init-projects/import-template.sh b/apps/wrf/cluster-init-projects/import-template.sh new file mode 100644 index 000000000..a62c8c395 --- /dev/null +++ b/apps/wrf/cluster-init-projects/import-template.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +template_name="Slurm-WRF" +template_file="/anf-vol1/wrf/data/azurehpc/apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template.txt" + +echo "Importing template $template_name from $template_file" + +# Import template +cyclecloud import_template $template_name -f $template_file --force + +echo "Template $template_name imported" diff --git a/apps/wrf/cluster-init-projects/upload-cluster-init-project.sh b/apps/wrf/cluster-init-projects/upload-cluster-init-project.sh new file mode 100644 index 000000000..7a77e454a --- /dev/null +++ b/apps/wrf/cluster-init-projects/upload-cluster-init-project.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +project_folder_name="wrf-proj" +# check locker name: +#cyclecloud locker list +locker_name="GBB HPC-storage" + +echo "Uploading project $project_folder_name to locker $locker_name" + +cd $project_folder_name + +# Upload project +cyclecloud project upload "$locker_name" + +echo "Project $project_folder_name uploaded to locker $locker_name" \ No newline at end of file diff --git a/apps/wrf/cluster-init-projects/wrf-proj/project.ini b/apps/wrf/cluster-init-projects/wrf-proj/project.ini new file mode 100644 index 000000000..bbbe97ac7 --- /dev/null +++ b/apps/wrf/cluster-init-projects/wrf-proj/project.ini @@ -0,0 +1,5 @@ +[project] +name = wrf-proj +type = application +version = 1.0.0 + diff --git a/apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/files/README.txt b/apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/files/README.txt new file mode 100644 index 000000000..e110007a4 --- /dev/null +++ b/apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/files/README.txt @@ -0,0 +1,5 @@ + +Files in this directory are automatically synced to any node using this spec. Content here +can be anything from software packages to config files. Scripts can be used to install +software packages or move files into the appropriate location on the node. + \ No newline at end of file diff --git a/apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/scripts/001.script1.sh b/apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/scripts/001.script1.sh new file mode 100644 index 000000000..4c91a85ae --- /dev/null +++ b/apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/scripts/001.script1.sh @@ -0,0 +1,22 @@ +#! /bin/bash +#set -ex + +# Capture start time +start_time=$(date +%s) + +exec 1>/var/log/001-script-cluster-init.log 2>&1 +echo "### Hello world!" + +# Capture end time +end_time=$(date +%s) +# Calculate duration +duration=$((end_time - start_time)) +# Format duration to hh:mm:ss +hours=$(printf "%02d" $((duration / 3600))) +minutes=$(printf "%02d" $(( (duration % 3600) / 60 ))) +seconds=$(printf "%02d" $((duration % 60))) +duration="${hours}:${minutes}:${seconds}" + +echo "script finished." +echo "Execution time (hh:mm:ss): $duration" + diff --git a/apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/scripts/README.txt b/apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/scripts/README.txt new file mode 100644 index 000000000..66c952f98 --- /dev/null +++ b/apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/scripts/README.txt @@ -0,0 +1,10 @@ + +Files in this directory are executed on the host in alphabetical order. +It is recommended that files are named start with digits to ensure they +are executed in the correct order, example: + - 000_run_me_first.sh + - 001_run_me_second.sh + +Allowable file extensions on Linux: .sh +Allowable file extensions on Windows: .bat, .cmd, .exe + \ No newline at end of file diff --git a/apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/tests/README.txt b/apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/tests/README.txt new file mode 100644 index 000000000..a7149f8b1 --- /dev/null +++ b/apps/wrf/cluster-init-projects/wrf-proj/specs/default/cluster-init/tests/README.txt @@ -0,0 +1,5 @@ + +Files in this directory contains tests that will be run at cluster start +when in testing mode. Please see the official documentation for more information +on cluster testing. + \ No newline at end of file diff --git a/apps/wrf/opbswrf-template-v2.txt b/apps/wrf/cluster-init-projects/wrf-proj/templates/opbswrf-template-v2.txt similarity index 100% rename from apps/wrf/opbswrf-template-v2.txt rename to apps/wrf/cluster-init-projects/wrf-proj/templates/opbswrf-template-v2.txt diff --git a/apps/wrf/opbswrf-template.txt b/apps/wrf/cluster-init-projects/wrf-proj/templates/opbswrf-template.txt similarity index 100% rename from apps/wrf/opbswrf-template.txt rename to apps/wrf/cluster-init-projects/wrf-proj/templates/opbswrf-template.txt diff --git a/apps/wrf/slurm-genoma-template.txt b/apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template-login-node.txt similarity index 93% rename from apps/wrf/slurm-genoma-template.txt rename to apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template-login-node.txt index f5414046f..664888ce0 100644 --- a/apps/wrf/slurm-genoma-template.txt +++ b/apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template-login-node.txt @@ -4,9 +4,9 @@ ################################ -[cluster Slurm-Genoma] +[cluster Slurm-WRF] FormLayout = selectionpanel -IconUrl = https://raw.githubusercontent.com/marcusgaspar/azurehpc/892f729a1450dfec6436d68251ae71752d2a4542/apps/wrf/images/logo-genoma.jpeg +IconUrl = https://avatars.githubusercontent.com/u/12666893?s=200&v=4 Category = Schedulers Autoscale = $Autoscale @@ -64,6 +64,8 @@ Autoscale = $Autoscale cluster.identities.default = $ManagedIdentity [[[cluster-init cyclecloud/slurm:default:3.0.7]]] + [[[cluster-init wrf-proj:default:1.0.0]]] + Optional = true [[[volume boot]]] @@ -177,10 +179,19 @@ Autoscale = $Autoscale slurm.use_nodename_as_hostname = $NodeNameIsHostname slurm.is_primary_scheduler = false - [[nodearray login]] + [[node login]] InitialCount = $NumberLoginNodes MachineType = $loginMachineType ImageName = $SchedulerImageName + SubnetId = "/subscriptions/2d33a7c2-811d-403b-b70d-49d48f690c7c/resourceGroups/mg-rg-hpc/providers/Microsoft.Network/virtualNetworks/mg-vnet-hpc-eastus/subnets/user-subnet" + #itv + #SubnetId = "/subscriptions/09addf29-d567-4494-9d05-db2491ceff53/resourceGroups/azusdsnetrg/providers/Microsoft.Network/virtualNetworks/azusdshpcvnet/subnets/azusdshpcsnet" + + [[[network-interface vm-login-node-cluster2-nic2]]] + #NetworkInterfaceId = "" + PrivateIp = "10.4.2.251" + #itv + #PrivateIp = "10.20.3.61" [[[cluster-init cyclecloud/slurm:login:3.0.7]]] [[[configuration]]] @@ -275,31 +286,41 @@ Order = 10 Label = Scheduler VM Type Description = The VM type for scheduler node ParameterType = Cloud.MachineType - DefaultValue = Standard_D4ads_v5 + DefaultValue = Standard_FX4mds + #itv + #DefaultValue = Standard_D4ads_v5 [[[parameter loginMachineType]]] Label = Login node VM Type Description = The VM type for login nodes. ParameterType = Cloud.MachineType - DefaultValue = Standard_D8as_v4 + DefaultValue = Standard_FX4mds + #itv + #DefaultValue = Standard_D4ads_v5 [[[parameter HPCMachineType]]] Label = HPC VM Type Description = The VM type for HPC execute nodes ParameterType = Cloud.MachineType - DefaultValue = Standard_F2s_v2 + DefaultValue = Standard_HB120rs_v3 + #itv + #DefaultValue = Standard_HB120rs_v3 [[[parameter HTCMachineType]]] Label = HTC VM Type Description = The VM type for HTC execute nodes ParameterType = Cloud.MachineType - DefaultValue = Standard_F2s_v2 + DefaultValue = Standard_HB176rs_v4 + #itv + #DefaultValue = Standard_HB176rs_v4 [[[parameter DynamicMachineType]]] Label = Dyn VM Type Description = The VM type for Dynamic execute nodes ParameterType = Cloud.MachineType - DefaultValue = Standard_F2s_v2 + DefaultValue = Standard_HB120rs_v2 + #itv + #DefaultValue = Standard_HB120rs_v2 Config.MultiSelect = true @@ -391,6 +412,9 @@ Order = 10 Description = Subnet Resource Path (ResourceGroup/VirtualNetwork/Subnet) ParameterType = Azure.Subnet Required = True + DefaultValue = "mg-rg-hpc/mg-vnet-hpc-eastus/compute-subnet" + #itv + #DefaultValue = "azusdsnetrg/azusdshpcvnet/azusdshpcsnet003" [[parameters High Availability]] Order = 50 @@ -554,7 +578,7 @@ Order = 15 [[[parameter FilesystemSize]]] Label = Size (GB) Description = The filesystem size (cannot be changed after initial start) - DefaultValue = 100 + DefaultValue = 200 Config.Plugin = pico.form.NumberTextBox Config.MinValue = 10 Config.MaxValue = 10240 @@ -572,7 +596,8 @@ Order = 15 [[[parameter AdditionalNFS1]]] HideLabel = true - DefaultValue = false + #itv + DefaultValue = true Widget.Plugin = pico.form.BooleanCheckBox Widget.Label = Add Shared Filesystem mount @@ -589,29 +614,37 @@ Order = 15 Label = IP Address Description = The IP address or hostname of the additional mount. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. Config.ParameterType = String + DefaultValue = "10.4.0.20" + #itv + #DefaultValue = "10.20.3.132" Conditions.Excluded := AdditionalNFS1 isnt true [[[parameter AdditionalNFSMountPoint1]]] Label = Mount Point Description = The path at which to mount the Filesystem - DefaultValue = /data1 + #itv + DefaultValue = /data Conditions.Excluded := AdditionalNFS1 isnt true [[[parameter AdditionalNFSExportPath1]]] Label = Export Path Description = The path exported by the file system - DefaultValue = /anf-vol1/genomica/data1 + DefaultValue = /anf-vol1/wrf/data + #itv + #DefaultValue = "/azusdshpcvol/wrf/data" Conditions.Excluded := AdditionalNFS1 isnt true [[[parameter AdditionalNFSMountOptions1]]] Label = Mount Options Description = Filesystem Client Mount Options + #itv DefaultValue = "defaults,rw,hard,rsize=262144,wsize=262144,vers=3,tcp" Conditions.Excluded := AdditionalNFS1 isnt true [[[parameter AdditionalNFS2]]] HideLabel = true - DefaultValue = false + #itv + DefaultValue = true Widget.Plugin = pico.form.BooleanCheckBox Widget.Label = Add Shared Filesystem mount @@ -620,8 +653,8 @@ Order = 15 ParameterType = StringList Config.Label = Shared filesystem type of the additional mount Config.Plugin = pico.form.Dropdown - Config.Entries := {[Label="External NFS"; Value="nfs"], [Label="External AZ Blob NFS"; Value="aznfs"], [Label="Azure Managed Lustre"; Value="lustre"]} - DefaultValue = aznfs + Config.Entries := {[Label="External NFS"; Value="nfs"], [Label="Azure Managed Lustre"; Value="lustre"]} + DefaultValue = nfs Conditions.Excluded := AdditionalNFS2 isnt true [[[parameter AdditionalNFSAddress2]]] @@ -633,19 +666,23 @@ Order = 15 [[[parameter AdditionalNFSMountPoint2]]] Label = Mount Point Description = The path at which to mount the Filesystem - DefaultValue = /data2 + #itv + DefaultValue = /apps Conditions.Excluded := AdditionalNFS2 isnt true [[[parameter AdditionalNFSExportPath2]]] Label = Export Path Description = The path exported by the file system - DefaultValue = /sa-vol1/genomica/data2 + DefaultValue = /anf-vol1/wrf/apps + #itv + #DefaultValue = "/azusdshpcvol/wrf/apps" Conditions.Excluded := AdditionalNFS2 isnt true [[[parameter AdditionalNFSMountOptions2]]] Label = Mount Options Description = Filesystem Client Mount Options - DefaultValue = "defaults,sec=sys,vers=3,nolock,proto=tcp,nconnect=16,nofail,_netdev" + #itv + DefaultValue = "defaults,rw,hard,rsize=262144,wsize=262144,vers=3,tcp" Conditions.Excluded := AdditionalNFS2 isnt true @@ -658,6 +695,9 @@ Order = 20 [[[parameter Credentials]]] Description = The credentials for the cloud provider ParameterType = Cloud.Credentials + DefaultValue = "GBB HPC - Default credentials" + #itv + #DefaultValue = "WRF - Default credentials" [[[parameter ManagedIdentity]]] Label = Managed Id @@ -698,6 +738,8 @@ Order = 20 [[[parameter configuration_slurm_accounting_enabled]]] Label = Job Accounting DefaultValue = false + #itv + #DefaultValue = true Widget.Plugin = pico.form.BooleanCheckBox Widget.Label = Configure Slurm job accounting @@ -710,22 +752,30 @@ Order = 20 [[[parameter configuration_slurm_accounting_url]]] Label = Slurm DBD URL Description = URL of the database to use for Slurm job accounting + #itv + #DefaultValue = "azusdshpcmysql.mysql.database.azure.com" Conditions.Excluded := configuration_slurm_accounting_enabled isnt true [[[parameter configuration_slurm_accounting_storageloc]]] Label = Database name Description = Database name to store slurm accounting records + #itv + #DefaultValue = "wrf" Conditions.Excluded := configuration_slurm_accounting_enabled isnt true [[[parameter configuration_slurm_accounting_user]]] Label = Slurm DBD User Description = User for Slurm DBD admin + #itv + #DefaultValue = "dbmysql_ds_usr" Conditions.Excluded := configuration_slurm_accounting_enabled isnt true [[[parameter configuration_slurm_accounting_password]]] Label = Slurm DBD Password Description = Password for Slurm DBD admin ParameterType = Password + #itv + #DefaultValue = "inclua a senha aqui" Conditions.Excluded := configuration_slurm_accounting_enabled isnt true [[[parameter configuration_slurm_accounting_certificate_url]]] @@ -736,7 +786,8 @@ Order = 20 Config.Plugin = pico.form.Dropdown Config.FreeForm = true Config.Entries := {[Value=""], [Value="AzureCA.pem"]} - DefaultValue = "" + #itv + #DefaultValue = "https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem" [[[parameter configuration_slurm_shutdown_policy]]] Label = Shutdown Policy @@ -860,13 +911,15 @@ Order = 20 [[[parameter ReturnProxy]]] Label = Return Proxy - DefaultValue = true + #itv + DefaultValue = false ParameterType = Boolean Config.Label = Use SSH tunnel to connect to CycleCloud (required if direct access is blocked) [[[parameter UsePublicNetwork]]] Label = Public Head Node - DefaultValue = true + #itv + DefaultValue = false ParameterType = Boolean Config.Label = Access scheduler node from the Internet diff --git a/apps/wrf/slurm-wrf-template.txt b/apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template.txt similarity index 99% rename from apps/wrf/slurm-wrf-template.txt rename to apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template.txt index c91f55675..6e89e562c 100644 --- a/apps/wrf/slurm-wrf-template.txt +++ b/apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template.txt @@ -64,6 +64,7 @@ Autoscale = $Autoscale cluster.identities.default = $ManagedIdentity [[[cluster-init cyclecloud/slurm:default:3.0.7]]] + Optional = true [[[volume boot]]] From 03b3520fccd720cf075ca1e55ef29d6a945a947c Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Mon, 30 Sep 2024 17:24:43 -0300 Subject: [PATCH 73/75] changes --- .../templates/slurm-wrf-template-login-node.txt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template-login-node.txt b/apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template-login-node.txt index 664888ce0..d7444a7ae 100644 --- a/apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template-login-node.txt +++ b/apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template-login-node.txt @@ -337,7 +337,8 @@ Order = 10 [[[parameter MaxHPCExecuteCoreCount]]] Label = Max HPC Cores Description = The total number of HPC execute cores to start - DefaultValue = 100 + #itv + DefaultValue = 480 Config.Plugin = pico.form.NumberTextBox Config.MinValue = 1 Config.IntegerOnly = true @@ -345,7 +346,8 @@ Order = 10 [[[parameter MaxHTCExecuteCoreCount]]] Label = Max HTC Cores Description = The total number of HTC execute cores to start - DefaultValue = 100 + #itv + DefaultValue = 704 Config.Plugin = pico.form.NumberTextBox Config.MinValue = 1 Config.IntegerOnly = true @@ -353,7 +355,8 @@ Order = 10 [[[parameter MaxDynamicExecuteCoreCount]]] Label = Max Dyn Cores Description = The total number of Dynamic execute cores to start - DefaultValue = 100 + #itv + DefaultValue = 480 Config.Plugin = pico.form.NumberTextBox Config.MinValue = 1 Config.IntegerOnly = true @@ -661,6 +664,9 @@ Order = 15 Label = IP Address Description = The IP address or hostname of the additional mount. Also accepts a list comma-separated addresses, for example, to mount a frontend load-balanced Azure HPC Cache. Config.ParameterType = String + DefaultValue = "10.4.0.20" + #itv + #DefaultValue = "10.20.3.132" Conditions.Excluded := AdditionalNFS2 isnt true [[[parameter AdditionalNFSMountPoint2]]] From c7574c1d6ad4196c407caaff297b63e717dbfcc2 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Mon, 30 Sep 2024 17:31:08 -0300 Subject: [PATCH 74/75] changes --- apps/wrf/cluster-init-projects/import-template.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/wrf/cluster-init-projects/import-template.sh b/apps/wrf/cluster-init-projects/import-template.sh index a62c8c395..8f534194b 100644 --- a/apps/wrf/cluster-init-projects/import-template.sh +++ b/apps/wrf/cluster-init-projects/import-template.sh @@ -1,7 +1,7 @@ #!/bin/bash template_name="Slurm-WRF" -template_file="/anf-vol1/wrf/data/azurehpc/apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template.txt" +template_file="/anf-vol1/wrf/data/azurehpc/apps/wrf/cluster-init-projects/wrf-proj/templates/slurm-wrf-template-login-node.txt" echo "Importing template $template_name from $template_file" From 7a6ffae6482af598de12bfa1906c0d83d113b471 Mon Sep 17 00:00:00 2001 From: Marcus Gaspar Date: Fri, 4 Oct 2024 16:34:46 -0300 Subject: [PATCH 75/75] include automation in the new_conus orig namelist files --- .../namelist-new_conus2.5km-orig.input | 87 +++++++++++++++++++ .../namelist-new_conus2.5km-orig.wps | 56 ++++++++++++ .../automation/namelist-new_conus2.5km.input | 16 ++-- .../automation/namelist-new_conus2.5km.wps | 4 +- 4 files changed, 153 insertions(+), 10 deletions(-) create mode 100644 apps/wrf/automation/namelist-new_conus2.5km-orig.input create mode 100644 apps/wrf/automation/namelist-new_conus2.5km-orig.wps diff --git a/apps/wrf/automation/namelist-new_conus2.5km-orig.input b/apps/wrf/automation/namelist-new_conus2.5km-orig.input new file mode 100644 index 000000000..8cb2219df --- /dev/null +++ b/apps/wrf/automation/namelist-new_conus2.5km-orig.input @@ -0,0 +1,87 @@ + &time_control + run_days = 0, + run_hours = 6, + run_minutes = 0, + run_seconds = 0, + start_year = 2018, + start_month = 06, + start_day = 17, + start_hour = 00, + start_minute = 00, + start_second = 00, + end_year = 2018, + end_month = 06, + end_day = 17, + end_hour = 12, + end_minute = 00, + end_second = 00, + interval_seconds = 10800, + input_from_file = .true., + history_interval = 180, + frames_per_outfile = 5, + restart = .false., + restart_interval = 360, + io_form_history = 2, + io_form_restart = 2, + io_form_input = 2, + io_form_boundary = 2, + debug_level = 0 + / + + &domains + time_step = 15, + time_step_fract_num = 0, + time_step_fract_den = 1, + max_dom = 1, + e_we = 1901, + e_sn = 1301, + e_vert = 35, + dx = 2500, + dy = 2500, + p_top_requested = 5000, + num_metgrid_levels = 32, + num_metgrid_soil_levels = 4, + grid_id = 1, + parent_id = 0, + i_parent_start = 1, + j_parent_start = 1, + parent_grid_ratio = 1, + parent_time_step_ratio = 1, + feedback = 1, + smooth_option = 0 + / + + &physics + physics_suite = 'CONUS' + cu_physics = 0, + radt = 10, + bldt = 0, + cudt = 5, + icloud = 1, + isfflx = 1, + isftcflx = 2, + num_soil_layers = 4, + num_land_cat = 21, + / + + &dynamics + w_damping = 1, + diff_opt = 1, + km_opt = 4, + khdif = 0, + kvdif = 0, + non_hydrostatic = .true., + / + + &bdy_control + spec_bdy_width = 5, + spec_zone = 1, + relax_zone = 4, + specified = .true., + nested = .false., + / + + &namelist_quilt + nio_tasks_per_group = 0, + nio_groups = 1, + / diff --git a/apps/wrf/automation/namelist-new_conus2.5km-orig.wps b/apps/wrf/automation/namelist-new_conus2.5km-orig.wps new file mode 100644 index 000000000..fe2c09c44 --- /dev/null +++ b/apps/wrf/automation/namelist-new_conus2.5km-orig.wps @@ -0,0 +1,56 @@ +&share + wrf_core = 'ARW', + max_dom = 1, + start_date = '2018-06-17_00:00:00', + end_date = '2018-06-17_12:00:00', + interval_seconds = 10800 + io_form_geogrid = 2, + opt_output_from_geogrid_path = '/data/wrfdata/wpsdir/wrkday', +/ + +&geogrid + parent_id = 1, + parent_grid_ratio = 1, + i_parent_start = 1, + j_parent_start = 1, + e_we = 1901, + e_sn = 1301, + ! + !!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! The default datasets used to produce the HGT_M, GREENFRAC, + ! and LU_INDEX/LANDUSEF fields have changed in WPS v3.8. The HGT_M field + ! is now interpolated from 30-arc-second USGS GMTED2010, the GREENFRAC + ! field is interpolated from MODIS FPAR, and the LU_INDEX/LANDUSEF fields + ! are interpolated from 21-class MODIS. + ! + ! To match the output given by the default namelist.wps in WPS v3.7.1, + ! the following setting for geog_data_res may be used: + ! + ! geog_data_res = 'gtopo_10m+usgs_10m+nesdis_greenfrac+10m','gtopo_2m+usgs_2m+nesdis_greenfrac+2m', + ! + !!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! + geog_data_res = 'default', + dx = 2500, + dy = 2500, + map_proj = 'lambert', + ref_lat = 40.0, + ref_lon = -98.0, + truelat1 = 30.0, + truelat2 = 60.0, + stand_lon = -98.0, + geog_data_path = '/data/wrfdata/geog', + opt_geogrid_tbl_path = '/data/wrfdata/wpsdir/wrkday/geogrid', +/ + +&ungrib + out_format = 'WPS', + prefix = 'FILE', +/ + +&metgrid + fg_name = 'FILE' + io_form_metgrid = 2, + opt_output_from_metgrid_path = '/data/wrfdata/wpsdir/wrkday', + opt_metgrid_tbl_path = '/data/wrfdata/wpsdir/wrkday/metgrid', +/ diff --git a/apps/wrf/automation/namelist-new_conus2.5km.input b/apps/wrf/automation/namelist-new_conus2.5km.input index 8cb2219df..32ad7d690 100644 --- a/apps/wrf/automation/namelist-new_conus2.5km.input +++ b/apps/wrf/automation/namelist-new_conus2.5km.input @@ -3,16 +3,16 @@ run_hours = 6, run_minutes = 0, run_seconds = 0, - start_year = 2018, - start_month = 06, - start_day = 17, - start_hour = 00, + start_year = aai, + start_month = mmi, + start_day = ddi, + start_hour = hhi, start_minute = 00, start_second = 00, - end_year = 2018, - end_month = 06, - end_day = 17, - end_hour = 12, + end_year = aaf, + end_month = mmf, + end_day = ddf, + end_hour = hhf, end_minute = 00, end_second = 00, interval_seconds = 10800, diff --git a/apps/wrf/automation/namelist-new_conus2.5km.wps b/apps/wrf/automation/namelist-new_conus2.5km.wps index fe2c09c44..fd892da78 100644 --- a/apps/wrf/automation/namelist-new_conus2.5km.wps +++ b/apps/wrf/automation/namelist-new_conus2.5km.wps @@ -1,8 +1,8 @@ &share wrf_core = 'ARW', max_dom = 1, - start_date = '2018-06-17_00:00:00', - end_date = '2018-06-17_12:00:00', + start_date = 'aai-mmi-ddi_hhi:00:00', + end_date = 'aaf-mmf-ddf_hhf:00:00', interval_seconds = 10800 io_form_geogrid = 2, opt_output_from_geogrid_path = '/data/wrfdata/wpsdir/wrkday',