Closed GeorgeVandenberghe-NOAA closed 2 years ago
@HuiyaChuang-NOAA @WenMeng-NOAA @GeorgeVandenberghe-NOAA @JesseMeng-NOAA - I also meant to comment. DTC's @kayeekayee is working on some development to translate all info in the itag to a formal fortran namelist (Issue #115) and has the work largely done and tested with current develop branch. Woudl this be of interest to review and push this feature enhancement to help aid the 2d decomp work?
@KateFriedman-NOAA @kayeekayee @GeorgeGayno-NOAA @JesseMeng-NOAA @WenMeng-NOAA have kayee started a PR to merge her changes in?
Good for other reasons but I don't need it. Downward compatibility with current itag use would be helpful and I built that into my numx= itag read code. If we change itag to a namelist we will have to change runscripts to build it. Downward compatibility can be implemented if itag is retained as the input file but just with namelist stuff, by looking for non namelist stuff and branching to the old code in WRFPOST.f that handles it, otherwise going through the new (and improved of course) code that handles inputs as namelists.
On Fri, Oct 1, 2021 at 4:09 PM HuiyaChuang-NOAA @.***> wrote:
@HuiyaChuang-NOAA https://github.com/HuiyaChuang-NOAA @WenMeng-NOAA https://github.com/WenMeng-NOAA @GeorgeVandenberghe-NOAA https://github.com/GeorgeVandenberghe-NOAA @JesseMeng-NOAA https://github.com/JesseMeng-NOAA - I also meant to comment. DTC's @kayeekayee https://github.com/kayeekayee is working on some development to translate all info in the itag to a formal fortran namelist (Issue #115 https://github.com/NOAA-EMC/UPP/issues/115) and has the work largely done and tested with current develop branch. Woudl this be of interest to review and push this feature enhancement to help aid the 2d decomp work?
@KateFriedman-NOAA https://github.com/KateFriedman-NOAA @kayeekayee https://github.com/kayeekayee @GeorgeGayno-NOAA https://github.com/GeorgeGayno-NOAA @JesseMeng-NOAA https://github.com/JesseMeng-NOAA @WenMeng-NOAA https://github.com/WenMeng-NOAA have kayee started a PR to merge her changes in?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NOAA-EMC/UPP/issues/274#issuecomment-932518425, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANDS4FSIG2ZEPIPFVFFUXZTUEYIN7ANCNFSM4YVYMD5Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
--
George W Vandenberghe
IMSG at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2141
College Park, MD 20740
@.***
301-683-3769(work) 3017751547(cell)
@fossell and @kayeekeyee Could you start a PR to the branch develop so we may have further discussion for flexible namelists. Thanks!
@HuiyaChuang-NOAA Nothing into global-workflow yet but I'm happy to bring in a new UPP tag/version when the refactoring goes into UPP develop. Most of the workflow scripts for UPP are in the UPP so I won't have much to adjust on the global-workflow side for this other than just trying it in a cycled run when ready. Please open a new global-workflow issue with general info on the changes when ready to pass me this new UPP version and then I'll take it from there for the workflow side. Thanks!
@KateFriedman-NOAA The UPP 2D decomposition from UPP refactor efforts has been developing yet. When this feature is merged in UPP develop branch, I will open issue and submit PR for the changes in global-workflow. Thanks!
@WenMeng-NOAA - Yes, @kayeekayee is planning to submit PR soon so we can all review proposed mods.
Good for other reasons but I don't need it. Downward compatibility with current itag use would be helpful and I built that into my numx= itag read code. If we change itag to a namelist we will have to change runscripts to build it. Downward compatibility can be implemented if itag is retained as the input file but just with namelist stuff, by looking for non namelist stuff and branching to the old code in WRFPOST.f that handles it, otherwise going through the new (and improved of course) code that handles inputs as namelists. … On Fri, Oct 1, 2021 at 4:09 PM HuiyaChuang-NOAA @.> wrote: @HuiyaChuang-NOAA https://github.com/HuiyaChuang-NOAA @WenMeng-NOAA https://github.com/WenMeng-NOAA @GeorgeVandenberghe-NOAA https://github.com/GeorgeVandenberghe-NOAA @JesseMeng-NOAA https://github.com/JesseMeng-NOAA - I also meant to comment. DTC's @kayeekayee https://github.com/kayeekayee is working on some development to translate all info in the itag to a formal fortran namelist (Issue #115 <#115>) and has the work largely done and tested with current develop branch. Woudl this be of interest to review and push this feature enhancement to help aid the 2d decomp work? @KateFriedman-NOAA https://github.com/KateFriedman-NOAA @kayeekayee https://github.com/kayeekayee @GeorgeGayno-NOAA https://github.com/GeorgeGayno-NOAA @JesseMeng-NOAA https://github.com/JesseMeng-NOAA @WenMeng-NOAA https://github.com/WenMeng-NOAA have kayee started a PR to merge her changes in? — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#274 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANDS4FSIG2ZEPIPFVFFUXZTUEYIN7ANCNFSM4YVYMD5Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. -- George W Vandenberghe IMSG at NOAA/NWS/NCEP/EMC 5830 University Research Ct., Rm. 2141 College Park, MD 20740 @. 301-683-3769(work) 3017751547(cell)
If NUMX is read in as a variable in namelist, then it can be an optional variable too.
I looked at what you did and it looked fine. We can talk at next week's 2D decomposition tagup to see if we want to change numx to be in namelist
@HuiyaChuang-NOAA Nothing into global-workflow yet but I'm happy to bring in a new UPP tag/version when the refactoring goes into UPP develop. Most of the workflow scripts for UPP are in the UPP so I won't have much to adjust on the global-workflow side for this other than just trying it in a cycled run when ready. Please open a new global-workflow issue with general info on the changes when ready to pass me this new UPP version and then I'll take it from there for the workflow side. Thanks!
As Wen mentioned, it's still work in progress. The projected completion date is June next year.
@JesseMeng-NOAA @BoCui-NOAA @GeorgeVandenberghe-NOAA @WenMeng-NOAA Spoke to Wen and DTC submitted a PR #402 for making entire itag a namelist. Wen is running regression tests for this PR. She estimated this PR will be merged in 3 weeks if all goes well. Wen will then work with Jesse to sync this merge from develp to 2D decomposition branch, at which time, we can make numx part of namelist as well. I will discuss this at next week's tagup.
Will it still work with the old itag or will that have to be changed?
On Thu, Oct 7, 2021 at 1:43 PM HuiyaChuang-NOAA @.***> wrote:
@JesseMeng-NOAA https://github.com/JesseMeng-NOAA @BoCui-NOAA https://github.com/BoCui-NOAA @GeorgeVandenberghe-NOAA https://github.com/GeorgeVandenberghe-NOAA @WenMeng-NOAA https://github.com/WenMeng-NOAA Spoke to Wen and DTC submitted a PR #402 https://github.com/NOAA-EMC/UPP/pull/402 for making entire itag a namelist. Wen is running regression tests for this PR. She estimated this PR will be merged in 3 weeks if all goes well. Wen will then work with Jesse to sync this merge from develp to 2D decomposition branch, at which time, we can make numx part of namelist as well. I will discuss this at next week's tagup.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NOAA-EMC/UPP/issues/274#issuecomment-938015119, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANDS4FW45C7SBKHWDH32AITUFXL4JANCNFSM4YVYMD5Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
--
George W Vandenberghe
IMSG at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2141
College Park, MD 20740
@.***
301-683-3769(work) 3017751547(cell)
@GeorgeVandenberghe-NOAA There will be format changes in old tag with all in namelist. Right now, you may modify itag for 2d decomposition testing. I will work with you for updating itag later.
@GeorgeVandenberghe-NOAA Hi George, I am modifying the subroutine MDL2THANDPV.f to 2D decomposition. This is the first subroutine that I test so far that actually does i-direction differential. EXCH.f, has the following lines of ibl=max(ista-1,1) ibu=min(im,iend+1) that set the i boundaries to 1 and im. If I understand it correctly, at i=1 the left halo carries the same value as i=1. So does at i=im, the right halo carries the same value as i=im. This works fine with 1D decomposition since the arrays have access to the entire length of 1:im and can find the left neighbor of i=1 to be im and the right neighbor of i=im to be 1. But in 2D decomposition, at i=1 it does not have access to the left neighbor of im; and similar issue with i=im. Could you help to revisit this? Thanks! -Jesse
Exch exchanges neighbor columns so thus should just already work
On Thursday, October 21, 2021, Jesse Meng @.***> wrote:
@GeorgeVandenberghe-NOAA Hi George, I am modifying the subroutine MDL2THANDPV.f to 2D decomposition. This is the first subroutine that I test so far that actually does i-direction differential. EXCH.f, has the following lines of ibl=max(ista-1,1) ibu=min(im,iend+1) that set the i boundaries to 1 and im. If I understand it correctly, at i=1 the left halo carries the same value as i=1. So does at i=im, the right halo carries the same value as i=im. This works fine with 1D decomposition since the arrays have access to the entire length of 1:im and can find the left neighbor of i=1 to be im and the right neighbor of i=im to be 1. But in 2D decomposition, at i=1 it does not have access to the left neighbor of im; and similar issue with i=im. Could you help to revisit this? Thanks! -Jesse
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. < https://ci3.googleusercontent.com/proxy/JA0fuDEtYB0-gjECuBgymPzcZqMbqSQw0I2kY1FY52ooH9m97sUAW1YyVJpypfbGitL67eK5C1rQSUOxQW-4pXv6f3wlWCt5w8hDv-Sr72UGLNnDQDQX0LvcSTPglYiiMoKAzUmtCdl_Zuqdid8YSjoIveXfxVVKYhHxhSdtUr2pqfoCAXlAkNpDBxARhDcr7fYhi4gZCR1d68knN_6cAK-mL7K6qv1xFKzjKzmAYw=s0-d-e1-ft#https://github.com/notifications/beacon/ANDS4FU2D4GUJPGV3B262ADUICG6BA5CNFSM4YVYMD52YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOHCIUYDY.gif
--
George W Vandenberghe
IMSG at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2141
College Park, MD 20740
@.***
301-683-3769(work) 3017751547(cell)
We need to think about this. Using the im value to replace the 0 value only works for global domain and that was also the case for the 1ď decomposition. On Thursday, October 21, 2021, Jesse Meng @.***> wrote:
@GeorgeVandenberghe-NOAA Hi George, I am modifying the subroutine MDL2THANDPV.f to 2D decomposition. This is the first subroutine that I test so far that actually does i-direction differential. EXCH.f, has the following lines of ibl=max(ista-1,1) ibu=min(im,iend+1) that set the i boundaries to 1 and im. If I understand it correctly, at i=1 the left halo carries the same value as i=1. So does at i=im, the right halo carries the same value as i=im. This works fine with 1D decomposition since the arrays have access to the entire length of 1:im and can find the left neighbor of i=1 to be im and the right neighbor of i=im to be 1. But in 2D decomposition, at i=1 it does not have access to the left neighbor of im; and similar issue with i=im. Could you help to revisit this? Thanks! -Jesse
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. < https://ci3.googleusercontent.com/proxy/JA0fuDEtYB0-gjECuBgymPzcZqMbqSQw0I2kY1FY52ooH9m97sUAW1YyVJpypfbGitL67eK5C1rQSUOxQW-4pXv6f3wlWCt5w8hDv-Sr72UGLNnDQDQX0LvcSTPglYiiMoKAzUmtCdl_Zuqdid8YSjoIveXfxVVKYhHxhSdtUr2pqfoCAXlAkNpDBxARhDcr7fYhi4gZCR1d68knN_6cAK-mL7K6qv1xFKzjKzmAYw=s0-d-e1-ft#https://github.com/notifications/beacon/ANDS4FU2D4GUJPGV3B262ADUICG6BA5CNFSM4YVYMD52YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOHCIUYDY.gif
--
George W Vandenberghe
IMSG at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2141
College Park, MD 20740
@.***
301-683-3769(work) 3017751547(cell)
@HuiyaChuang-NOAA @WenMeng-NOAA Several things with MDL2THANDPV.f that we need to discuss.
All of this is tractable. Lets think about approaches.
On Thursday, October 21, 2021, Jesse Meng @.***> wrote:
@HuiyaChuang-NOAA @WenMeng-NOAA Several things with MDL2THANDPV.f that we need to discuss.
It looks like the current EXCH.f probably does not cross i=1 and i=im. I am seeking George's help. Line 68: imb2 = im /2 and later on in the 206-216 block it does calculations with 2 points from the opposite location around the i circle. This cannot be done in x decomposition. Line 757: call poleavg( ) This calculates averages around the i circle at j=1 and j=jm. This cannot be done in x decomposition.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. < https://ci4.googleusercontent.com/proxy/1O-M3XlkdNawr7mVU0WPXtnT3xb3KM290oLuKUuz0lALycZzzCI_XtPD3jI0hc0uv2ZL3uMiKG6YR-Gt6FH7cYfwtfh739ztqnEMR1inzXtVVHXY1VhKA_lm1REUDrotq_DW3cc_NxShTVxTVkYglF5vfSTm40k5SZaTlkDxWgg3olWloED5bZCzmO28Vq-kSyH3job1goXRwlm0yJCvsEqJtWPNbHQMLBFLQWKYmA=s0-d-e1-ft#https://github.com/notifications/beacon/ANDS4FTQDGCLZMGVJTA5LALUICMKTA5CNFSM4YVYMD52YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOHCIZRRY.gif
--
George W Vandenberghe
IMSG at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2141
College Park, MD 20740
@.***
301-683-3769(work) 3017751547(cell)
Confirmed that my 2D decomposition tests, for both numx=1 and numx=12, MDL2THANDPV.f generated potential vorticity field are mostly identical to that from dev branch, except for the 4 lines of i=1,i=im, j=1, j=jm.
There should be no difference with numx=1 since that morphs to the 1D decomposition.
We need to think about what to do for boundaries esp. if the domain isn't global.
On Fri, Oct 22, 2021 at 9:38 AM Jesse Meng @.***> wrote:
Confirmed that my 2D decomposition tests, for both numx=1 and numx=12, MDL2THANDPV.f generated potential vorticity field are mostly identical to that from dev branch, except for the 4 lines of i=1,i=im, j=1, j=jm.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NOAA-EMC/UPP/issues/274#issuecomment-949640294, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANDS4FWQP2MPQ2WXTZ2PZADUIFSLZANCNFSM4YVYMD5Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
--
George W Vandenberghe
IMSG at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2141
College Park, MD 20740
@.***
301-683-3769(work) 3017751547(cell)
Yes numx=1 has no difference. Sorry. numx=12 was different only in the four lines of x=1, x=im, y=1, y=jm.
@JesseMeng-NOAA @GeorgeGayno-NOAA Thank you. Let me think about a way to deal with vorticity computation at the boundaries. Let's discuss this at next Tuesday's 2D decomposition tag up
@JesseMeng-NOAA @GeorgeVandenberghe-NOAA Thank you. Let me think about a way to deal with vorticity computation at the boundaries. Let's discuss this at next Tuesday's 2D decomposition tag up
Do you mean @GeorgeVandenberghe-NOAA? I don't work with the UPP. But somehow I am getting updates for this issue.
@JesseMeng-NOAA @GeorgeVandenberghe-NOAA Thank you. Let me think about a way to deal with vorticity computation at the boundaries. Let's discuss this at next Tuesday's 2D decomposition tag up
Do you mean @GeorgeVandenberghe-NOAA? I don't work with the UPP. But somehow I am getting updates for this issue.
@GeorgeGayno-NOAA yes. thanks for letting me know I used wrong George.
How do we do it now for regional grids where the I domain does not span all longitudes? Treating a(im) and a(1) as adjacent produces a smooth derivative for a global domain because they are adjacent. But this is not the case for a regional grid. We deal with regional grids now, so what do we do?
On Fri, Oct 22, 2021 at 1:55 PM HuiyaChuang-NOAA @.***> wrote:
@JesseMeng-NOAA https://github.com/JesseMeng-NOAA @GeorgeGayno-NOAA https://github.com/GeorgeGayno-NOAA Thank you. Let me think about a way to deal with vorticity computation at the boundaries. Let's discuss this at next Tuesday's 2D decomposition tag up
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NOAA-EMC/UPP/issues/274#issuecomment-949847255, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANDS4FSRAZEA7SQ254OOKZ3UIGQRLANCNFSM4YVYMD5Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
--
George W Vandenberghe
IMSG at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2141
College Park, MD 20740
@.***
301-683-3769(work) 3017751547(cell)
@JesseMeng-NOAA @GeorgeVandenberghe-NOAA in lines 204-216 in MDL2THANDPV.f, what UPP was doing was computing vorticity at J=1 by using centered differencing across the South Pole or J=JM across North Pole. This used to work when I is not decomposed. My thought is we will have to switch to backward differencing. Also, @JesseMeng-NOAA we have more than 1 places where vorticity is computed. I think it would be good to add a subroutine to function to compute vorticity in UPP_PHYSICS.f
One more thing I have mentioned in my comment above but not in the conversation today. There is also the subroutine POLEAVG.f that computes averages around the entire i circle at j=1 and j=jm. @GeorgeVandenberghe-NOAA could you please also look into this? Thanks!
@GeorgeVandenberghe-NOAA The itag for gfs is created in post workflow script. You might see new gfs itag format like: &model_inputs fileName='nemsfile' IOFORM='netcdfpara' grib='grib2' DateStr='2021-02-16_06:00:00' MODELNAME='GFS' fileNameFlux='flxfile' / &NAMPGB KPO=57,PO=1000.,975.,950.,925.,900.,875.,850.,825.,800.,775.,750.,725.,700.,675.,650.,625.,600.,575.,550.,525.,500.,475.,450.,425.,400.,375.,350.,325.,300.,275.,250.,225.,200.,175.,150.,125.,100.,70.,50.,40.,30.,20.,15.,10.,7.,5.,3.,2.,1.,0.7,0.4,0.2,0.1,0.07,0.04,0.02,0.01, /
Done all my shares of 2D DECOMPOSITION subroutines including those I took over from Bo. Wen's regression test in venus:/u/Wen.Meng/noscrubd/ncep_post/post_regression_test_new still works and I added numx=1 in itag namelist. numx=1 passes regression test for most of the models except for nmmb RH on just a few sigma levels, not all levels. I will look into this. 1125:462230579:RH:0.47-1 sigma layer:rpn_corr=0.992464:rpn_rms=2.55337 1126:462562119:RH:0.47-0.96 sigma layer:rpn_corr=0.993236:rpn_rms=2.52673 1127:462897214:RH:0.18-0.47 sigma layer:rpn_corr=0.996433:rpn_rms=1.58959 1128:463197281:RH:0.84-0.98 sigma layer:rpn_corr=0.980175:rpn_rms=3.61572 1129:463563671:MCONV:0.85-1 sigma layer:rpn_corr=0.999514:rpn_rms=6.62663e-09 1482:487727642:RH:0.47-1 sigma layer:rpn_corr=0.992464:rpn_rms=2.55337
Thanks Jesse' support and took over many subroutines' 2d decomposition. Now I am also done with all my tasks. I ran Wen's regression test with numx=1, the regression test worked for most of the models except for nmmb RH on some sigma levels, the similar results as Jesse's.
Bo
On Wed, Nov 3, 2021 at 9:45 AM Jesse Meng @.***> wrote:
Done all my shares of 2D DECOMPOSITION subroutines including those I took over from Bo. Wen's regression test in venus:/u/Wen.Meng/noscrubd/ncep_post/post_regression_test_new still works and I added numx=1 in itag namelist. numx=1 passes regression test for most of the models except for nmmb RH on just a few sigma levels, not all levels. I will look into this. 1125:462230579:RH:0.47-1 sigma layer:rpn_corr=0.992464:rpn_rms=2.55337 1126:462562119:RH:0.47-0.96 sigma layer:rpn_corr=0.993236:rpn_rms=2.52673 1127:462897214:RH:0.18-0.47 sigma layer:rpn_corr=0.996433:rpn_rms=1.58959 1128:463197281:RH:0.84-0.98 sigma layer:rpn_corr=0.980175:rpn_rms=3.61572 1129:463563671:MCONV:0.85-1 sigma layer:rpn_corr=0.999514:rpn_rms=6.62663e-09 1482:487727642:RH:0.47-1 sigma layer:rpn_corr=0.992464:rpn_rms=2.55337
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NOAA-EMC/UPP/issues/274#issuecomment-959115734, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMYNKUDPT7EBHYFK6AS4VR3UKFDJHANCNFSM4YVYMD5Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
--
Bo Cui
IMSG at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2063
College Park, MD 20740
@.***
301-683-3710
So.ooo How do we want to handle that IMx2 structure that is needed for full polar I domains. Should we change the exch binding or just document something extra that is available in anything that uses CTLBLK_MOD.f after exch is called, or generate an exch_pole routine that fills this structure when called with the subdomain field, similar to what exch does with the boundaries except what's returned is a new filled data structure. None of this is hard.
Note exch.f itself remains full of debug code that should be removed as soon as the 2D decomposition is debugged for all domains and all reasonable decompositions.
I have run into a snag with the boundary halos. The subdomains are dimensioned with the lowest I to be the greater of ista-2, or 1. The 1 is causing issues for I=1, no place to put the cyclic IM value to the left. An analagous situation occurs for I=im.
Pondering how to cleanly fix this.
Summary from 11/23/2021 2D decomposition meeting today:
@JesseMeng-NOAA Please check the following two routines and lines and see if (i,j,jj) would be replaced by (i,ii,j,jj).
MISCLN.f:4177:! $omp parallel do private(i,j,jj)
SURFCE.f:463:!$omp parallel do private(i,j,jj) SURFCE.f:913:!$omp parallel do private(i,j,jj) SURFCE.f:1738:!$omp parallel do private(i,j,jj) SURFCE.f:1966:!$omp parallel do private(i,j,jj) SURFCE.f:2334:!$omp parallel do private(i,j,jj) SURFCE.f:2607:!$omp parallel do private(i,j,jj) SURFCE.f:2724:!$omp parallel do private(i,j,jj) SURFCE.f:6083:!$omp parallel do private(i,j,jj) SURFCE.f:463:!$omp parallel do private(i,j,jj) SURFCE.f:913:!$omp parallel do private(i,j,jj) SURFCE.f:1738:!$omp parallel do private(i,j,jj) SURFCE.f:1966:!$omp parallel do private(i,j,jj) SURFCE.f:2334:!$omp parallel do private(i,j,jj) SURFCE.f:2607:!$omp parallel do private(i,j,jj) SURFCE.f:2724:!$omp parallel do private(i,j,jj) SURFCE.f:6083:!$omp parallel do private(i,j,jj)
Yes all should be (i,ii,j,jj). Thanks for double checking. I will update those.
@JesseMeng-NOAA Please check the following two routines and lines and see if (i,j,jj) would be replaced by (i,ii,j,jj).
MISCLN.f:4177:! $omp parallel do private(i,j,jj)
SURFCE.f:463:!$omp parallel do private(i,j,jj) SURFCE.f:913:!$omp parallel do private(i,j,jj) SURFCE.f:1738:!$omp parallel do private(i,j,jj) SURFCE.f:1966:!$omp parallel do private(i,j,jj) SURFCE.f:2334:!$omp parallel do private(i,j,jj) SURFCE.f:2607:!$omp parallel do private(i,j,jj) SURFCE.f:2724:!$omp parallel do private(i,j,jj) SURFCE.f:6083:!$omp parallel do private(i,j,jj) SURFCE.f:463:!$omp parallel do private(i,j,jj) SURFCE.f:913:!$omp parallel do private(i,j,jj) SURFCE.f:1738:!$omp parallel do private(i,j,jj) SURFCE.f:1966:!$omp parallel do private(i,j,jj) SURFCE.f:2334:!$omp parallel do private(i,j,jj) SURFCE.f:2607:!$omp parallel do private(i,j,jj) SURFCE.f:2724:!$omp parallel do private(i,j,jj) SURFCE.f:6083:!$omp parallel do private(i,j,jj)
@JesseMeng-NOAA @BoCui-NOAA @GeorgeVandenberghe-NOAA @WenMeng-NOAA @fossell Summary from 12/21/2021 2D decomposition tag-up:
Action items:
Tested George's fix for EXCH.f and identical results were reproduced. Code pushed to github. A developer's guide for testing UPP GFS 2D Decomposition has been drafted, https://docs.google.com/document/d/1jvky8T3S7uo7z_Y_hHDj9Ak0DgmkPI75Q8RcqAazeno
Summary from 1/4/2022 decomposition meeting: . DTC will run their version of EMC's version's UPP regression tests on 2D decomposition branch and report their findings at next tag-up . George will do a quick clean-up and hand off his code to Jesse to commit (done) . Jesse will work on a quick user guide on running UPP with 2D decomposition (done) . Wen will work on syncing 2D decomposition branch to develop . George will continue to clean up and document. . Wen would like 2D decomposition branch to be tested on Jet and Orion as GSL runs on Jet and HAFS runs on Orion. The plan is: a) Wen will provide Jesse and Bo a script to run UPP on Orion. b) Jesse and Bo will test 2D decomposition branch on Orion. c) After DTC verified their testing is positive, Huiya will reach out to GSL to test 2D decomposition branch on Jet. . The group discussed areas where EPIC infrastructure team can help enhance UPP: a) Short-term: updating inline post to use and test 2D decomposed UPP and unification of RRFS and GFS UPP interfaces b) Long term: adding bufr sounding to inline post
Summary from 1/18 2D decomposition tag-up
Summary from 2/15 2D decomposition meeting:
The interface between UPP/post_2d_decomp and ufs-weather-model/FV3 inline post has been developed for both gfs and regional models.
To test this functionality, First build the regression test bases with the ufs-weather-model/develop branch by running ufs-weather-model/tests/rt.sh with only the two controls defined in rt.conf control regional_control
Then run the UPP/post_2d_decomp regression test. Under the ufs-weather-model test directory, checkout Jesse's fv3atm/upp_2d_decomp branch https://github.com/JesseMeng-NOAA/fv3atm/tree/upp_2d_decomp and Wen's UPP/upp_2d_decomp branch https://github.com/WenMeng-NOAA/UPP/tree/post_2d_decomp
Turn on the WRITE_DOPOST flag in ufs-weather-model/tests/tests/control_2dwrtdecomp ufs-weather-model/tests/tests/regional_control_2dwrtdecomp export WRITE_DOPOST=.true. and run ufs-weather-model/tests/rt.sh with only the two 2dwrtdecomp experiments defined in rt.conf control_2dwrtdecomp regional_control_2dwrtdecomp
More details can be found in this menu, https://docs.google.com/document/d/15whXaBCQzUmJUJa1TBCTrFUsZYpebSmqVwexbFcAfaw/edit
I started the documentation after breaking from continuing WCOSS
crises. Below is a very high level schematic. Information on the actual variables changed will follow later.
! The 1D decomposition can read state from a model forecast file, either by reading on rank 0 ! and scattering, or by doing MPI_IO on the model history file using either nemsio, sigio, ! or netcdf serial or parallel I/O. Very old ! post tags also implement the more primitive full state broadcast or (a ! performance bug rectified 10/17) read the entire state on all tasks. This ! is mentioned in case a very old tag is encountered. The 2D decomposition ! only supports MPI_IO for the general 2D case but all I/O methods remain ! supported for the 1D special case of the 2D code. This 1D special case ! works for all cases currently supported by older 1D tags and branches. ! ! to repeat, ONLY 2D NETCDF PARALLEL I/O WILL BE SUPPORTED FOR THE ! GENERAL CASE OF 2D DECOMPOSITION. ! ! **** 2D design enhancements
! ! ! ! The 2D decomposition operates on subdomains with some latitudes and ! some longitudes. The subdomains are lonlat rectangles rather than ! strips. This means state must be chopped into pieces in any ! scatter operation and the pieces reassembled in any gather ! operation that requires a continuous in memory state. I/O and halo ! exchanges both require significantly more bookkeeping. ! ! ! The structural changes needed for the 2D decomposition are ! implemented in MPI_FIRST.f and CTLBLK.f! CTLBLK.f contains ! numerous additional variables describing left and right domain ! boundaries. Many additional changes are also implemented in EXCH.f ! to support 2D halos. Many additional routines required addition of ! the longitude subdomain limits but changes to the layouts are ! handled in CTLBLK.f and the "many additional routines" do not ! require additional changes when subdomain shapes are changed and ! have not been a trouble point. ! ! ! Both MPI_FIRST and EXCH.f contain significant additional test code ! to exchange arrays containing grid coordinates and ensure EXACT ! matches for all exchanges before the domain exchanges are ! performed. This is intended to trap errors in the larger variety of ! 2D decomposition layouts that are possible and most of it can ! eventually be removed or made conditional at build and run time. ! !
On Tue, Mar 1, 2022 at 8:57 AM WenMeng-NOAA @.***> wrote:
Assigned #274 https://github.com/NOAA-EMC/UPP/issues/274 to @GeorgeVandenberghe-NOAA https://github.com/GeorgeVandenberghe-NOAA.
— Reply to this email directly, view it on GitHub https://github.com/NOAA-EMC/UPP/issues/274#event-6162231324, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANDS4FTM3EGKKBARI6RLLCDU5YO5NANCNFSM4YVYMD5Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were assigned.Message ID: @.***>
--
George W Vandenberghe
IMSG at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2141
College Park, MD 20740
@.***
301-683-3769(work) 3017751547(cell)
I started the documentation after breaking from continuing WCOSS crises. Below is a very high level schematic. Information on the actual variables changed will follow later. ! The 1D decomposition can read state from a model forecast file, either by reading on rank 0 ! and scattering, or by doing MPI_IO on the model history file using either nemsio, sigio, ! or netcdf serial or parallel I/O. Very old ! post tags also implement the more primitive full state broadcast or (a ! performance bug rectified 10/17) read the entire state on all tasks. This ! is mentioned in case a very old tag is encountered. The 2D decomposition ! only supports MPI_IO for the general 2D case but all I/O methods remain ! supported for the 1D special case of the 2D code. This 1D special case ! works for all cases currently supported by older 1D tags and branches. ! ! to repeat, ONLY 2D NETCDF PARALLEL I/O WILL BE SUPPORTED FOR THE ! GENERAL CASE OF 2D DECOMPOSITION. ! ! **** 2D design enhancements **** ! ! ! ! The 2D decomposition operates on subdomains with some latitudes and ! some longitudes. The subdomains are lonlat rectangles rather than ! strips. This means state must be chopped into pieces in any ! scatter operation and the pieces reassembled in any gather ! operation that requires a continuous in memory state. I/O and halo ! exchanges both require significantly more bookkeeping. ! ! ! The structural changes needed for the 2D decomposition are ! implemented in MPI_FIRST.f and CTLBLK.f! CTLBLK.f contains ! numerous additional variables describing left and right domain ! boundaries. Many additional changes are also implemented in EXCH.f ! to support 2D halos. Many additional routines required addition of ! the longitude subdomain limits but changes to the layouts are ! handled in CTLBLK.f and the "many additional routines" do not ! require additional changes when subdomain shapes are changed and ! have not been a trouble point. ! ! ! Both MPI_FIRST and EXCH.f contain significant additional test code ! to exchange arrays containing grid coordinates and ensure EXACT ! matches for all exchanges before the domain exchanges are ! performed. This is intended to trap errors in the larger variety of ! 2D decomposition layouts that are possible and most of it can ! eventually be removed or made conditional at build and run time. ! ! … On Tue, Mar 1, 2022 at 8:57 AM WenMeng-NOAA @.> wrote: Assigned #274 <#274> to @GeorgeVandenberghe-NOAA https://github.com/GeorgeVandenberghe-NOAA. — Reply to this email directly, view it on GitHub <#274 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANDS4FTM3EGKKBARI6RLLCDU5YO5NANCNFSM4YVYMD5Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you were assigned.Message ID: @.> -- George W Vandenberghe IMSG at NOAA/NWS/NCEP/EMC 5830 University Research Ct., Rm. 2141 College Park, MD 20740 @.*** 301-683-3769(work) 3017751547(cell)
Thank you, George. This high level documentation looks good. Looking forward to your documentation on variables you added/updated and their descriptions
Additional post documentation. This is NOT in any routines but is a separate little document (so far)
! the following is found in CTLBLK.f and shared in the rest of UPP through use of CTLBLK.mod
! im. integer full longitude domain ! jm integer full latitude domain ! ! jsta integer start latitude on a task subdomain ! jend integer end latitude on a task subdomain ! ista integer start longitude on a task subdomain ! iend integer end longitude on a task subdomain ! ista_2l integer start longitude -2 of the subdomain ! iend_2u integer end longitude +2 of the subdomain ! jsta_2l integer start latitude -2 of the subdomain ! jend_2u integer end latitude +2 of the subdomain ! The shape of the subdomain is ista_2l:iend_2u,jsta_2l:jend_2u so it includes the halos although the halos ! are not populated until exhange is done in EXCH.f ! ! because of halos we need more bounds defined ! ! jsta_m single latitude below begin latitude of subdomain. ! jend_m single latitude above end latitude of subdomain ! jsta_m2 second latitude below begin latitude of subdomain . Apparently not used currently in compuations but subdomain shape uses this ! jend_m2 second latitude above end latitude of subdomain. apparently not used currently but subdomain shape uses this ! ! ista_m single longitude before begin longitude ! iend_m single longitude after end longitude ! ista_m2 second longitude before begin longitude ! iend_m2 second longitude after end longitude
! ileft. MPI rank containing the last longitude before ista_m ! iright. MPI rank containing the first longitude after iend_m ! iup MPI rank containing the first latitude after jend ! idn MPI rank containing the last latitude before jsta
! ileftb. MPI rank containing the last longitude before ista_m but for cyclic boundary conditions where "last" at the beginning ! is the other end of the domain (apparently unused and replaced with local calculation) ! irightb. MPI rank containing the first longitude after iend_m but for cyclic boundary conditions where "first" at the beginning ! is the other end of the domain (apparently unused and replaced with local calculation)
On Tue, Mar 1, 2022 at 8:57 AM WenMeng-NOAA @.***> wrote:
Assigned #274 https://github.com/NOAA-EMC/UPP/issues/274 to @GeorgeVandenberghe-NOAA https://github.com/GeorgeVandenberghe-NOAA.
— Reply to this email directly, view it on GitHub https://github.com/NOAA-EMC/UPP/issues/274#event-6162231324, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANDS4FTM3EGKKBARI6RLLCDU5YO5NANCNFSM4YVYMD5Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were assigned.Message ID: @.***>
--
George W Vandenberghe
IMSG at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2141
College Park, MD 20740
@.***
301-683-3769(work) 3017751547(cell)
@GeorgeVandenberghe-NOAA - Is this second piece of documentation you posted going to go into the same overview document as the previous schematic text you provided? I'm mocking up some pages to be included in the formal documentation, so just wanted to check.
Yes. Its in the overview document. Not an individual routine docblock.
On Monday, March 14, 2022, Kate Fossell @.***> wrote:
@GeorgeVandenberghe-NOAA - Is this second piece of documentation you posted going to go into the same overview document as the previous schematic text you provided? I'm mocking up some pages to be included in the formal documentation, so just wanted to check.
— Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you were mentioned.< https://ci6.googleusercontent.com/proxy/MLW8Tp1MYLv0BSeztVweDxOnQG5R2Z928xx9grkXUJUVTM4iySo1rg9XdMrsJGkDpX6-V-_yN9ZssMy44GRkOOS9Ik_ek5FUoTfGedHXxbh8yK_boRaUphA7zWTPUg1ROxPvtvQAWyKbw-wYscCHbSQxbzaFuDLRRwzQqKoMi53MOlmmQw_-iaDmkM3XrRnoE-eyt66Mlw_RaGhAGJ2s9cYHPQKwY-g3RIMfwAmn3Q=s0-d-e1-ft#https://github.com/notifications/beacon/ANDS4FVAXXCN2CVQHLEPT23U77VKBA5CNFSM4YVYMD52YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOH6QHWDQ.gif>Message ID: @.***>
--
George W Vandenberghe
IMSG at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2141
College Park, MD 20740
@.***
301-683-3769(work) 3017751547(cell)
Summary from 3/15/2022 2D decomposition meeting:
@HuiyaChuang-NOAA Since Jesse's UFS PR is available on UFS repository, you might invite model developers from GFS, RRFS, and HAFS to test this upp 2d decomposition capability. @junwang-noaa may chime in.
The UPP standalone regression tests failed at RRFS and HAFS due to syncing PR #441. The regional FV3 read interface INITPOST_NETCDF.f wasn't updated with 2D decomposition. The workaround is turning off RRFS and HAFS in your UPP RT tests. I would fix the issue after PR #453 committed (Unify regional and global FV3 read interfaces).
Summary from 3/29/2022 meeting:
@JesseMeng-NOAA @BoCui-NOAA @WenMeng-NOAA @GeorgeVandenberghe-NOAA @fossell Summary from 4/11/2022 tag-up:
Action items
EMC_post is currently decmposed on latitude (J) only. This is adequate for several more years but since post is generally being refactored, now is a good time to make the jump to 2D. A second goal is to make the 2D decomposition either flexible, or just have it mimic the ufs-weather-model decomposition so developers working on both codes can exploit commonality. This will be a modestly difficult project with most effort, figuring out the plumbing of the code (in progress). This issue is being created for management and project leader tracking and per EMC management directives and also best practices, results should be tracked through this Github issue or slack, NOT email.
There are many OTHER scaling issues in the post that are not affected by the decomposition. Most of the issues are orthogonal to the decomposition though and can be worked independently. The most salient is input I/O of model state fields in the standalone post.
By 03/01/2021:
The offline post testing procedure provided by Jesse can be found at here
The inline post testing procedure provided by Bo can be found at here
Jesse's FV3 branch can be found at here