You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From my reading of ESMF, it seems like ESMF_PIN_DE_TO_VAS is only valid for DELayout use of pinflag. For example, there are references in src/Infrastructure/DELayout/examples/ESMF_DELayoutEx.F90 and src/Infrastructure/DELayout/tests/ESMF_DELayoutWorkQueueUTest.F90.
But if I look at src/system_tests/ESMF_ArraySharedDeSSI/user_model1.F90, it has references to PET, SSI, and SSI_CONTIG but not VAS
So, I'm thinking maybe the docs should update things like:
[pinflag] Specify which type of resource DEs are pinned to. See section 51.2.1 for a list of valid pinning options. The default is to pin DEs to PETs, i.e. only the PET on which a DE was created considers the DE as local.
to specify the flags that are allowed?
Or, should VAS work in this case (even if nonsensically)? Not sure
The text was updated successfully, but these errors were encountered:
After some thought, my conclusion is that ESMF_PIN_DE_TO_VAS is sensible and should be supported. However, it is somewhat of an edge case from a practical point of view because there aren't any actual components out there, that I know of, that utilize threaded VMs, i.e. VMs where groups of PETs run as threads under the same process, sharing their virtual address space (VAS). For the case where PETs are synonymous with MPI processes, ESMF_PIN_DE_TO_VAS and ``ESMF_PIN_DE_TO_PET` are identical.
My thinking is that we should implement support of ESMF_PIN_DE_TO_VAS on a high level, essentially making your test pass. There would be error checking further down, that would bail out if indeed a VM with threaded PETs is used in combination with ESMF_PIN_DE_TO_VAS in the DE sharing context (of Fields and Arrays). My plan is to get this into 8.9.0.
Uh oh!
There was an error while loading. Please reload this page.
Recently, MAPL had to implement a way to change the pinflag passed to
ESMF_FieldEmptyComplete
which was needed for some users to use MAPL (see ufs-community/ufs-weather-model#2619, GEOS-ESM/MAPL@v2.53.2...v2.53.3, GEOS-ESM/MAPL#3677)In doing so, I decided to test MAPL with all of the flags:
ESMF_PINFLAG: PET
-->ESMF_PIN_DE_TO_PET
ESMF_PINFLAG: VAS
-->ESMF_PIN_DE_TO_VAS
ESMF_PINFLAG: SSI
-->ESMF_PIN_DE_TO_SSI
ESMF_PINFLAG: SSI_CONTIG
-->ESMF_PIN_DE_TO_SSI_CONTIG
In my testing with GEOSgcm,
PET
,SSI
andSSI_CONTIG
all "work" (in that things don't crash). However, if I tryVAS
:where line 379 is in our call to
ESMF_FieldEmptyComplete
:From my reading of ESMF, it seems like
ESMF_PIN_DE_TO_VAS
is only valid for DELayout use ofpinflag
. For example, there are references insrc/Infrastructure/DELayout/examples/ESMF_DELayoutEx.F90
andsrc/Infrastructure/DELayout/tests/ESMF_DELayoutWorkQueueUTest.F90
.But if I look at
src/system_tests/ESMF_ArraySharedDeSSI/user_model1.F90
, it has references toPET
,SSI
, andSSI_CONTIG
but notVAS
So, I'm thinking maybe the docs should update things like:
to specify the flags that are allowed?
Or, should
VAS
work in this case (even if nonsensically)? Not sureThe text was updated successfully, but these errors were encountered: