Skip to content

Commit

Permalink
Merge branch 'jayeshkrishna/scorpio-v1.6.2' (PR E3SM-Project#6329)
Browse files Browse the repository at this point in the history
Upgrading to SCORPIO v1.6.3 and adding support for the
new rearranger, PIO_REARR_ANY.

 SCORPIO v1.6.3 includes the following enhancements/fixes,
    
 * Support for standalone EAMXX/SCREAM builds
 * A new rearranger, PIO_REARR_ANY
 * Fixes for ADIOS to NetCDF conversion tool hangs/crashes in certain
   scenarios
 * Fixes for ultra high res simulations using the SUBSET rearranger
 * Support for reading ADIOS BP files and updates to the BP to
    NetCDF conversion tool to integrate with CIME/E3SM
 * Adding a SCORPIO CMake package during install
 * Support for new CDF5 types in the C interface
 * Support for pio_set_fill()
 * Fix for performance issues while writing large output files
   (hang during enddef() call)
 * Fix for issues writing/reading ADIOS string attributes
 * Misc bug fixes

[BFB]
  • Loading branch information
jayeshkrishna authored May 15, 2024
2 parents ed030dc + 7f5de8b commit dd32f0f
Show file tree
Hide file tree
Showing 9 changed files with 23 additions and 10 deletions.
6 changes: 6 additions & 0 deletions cime_config/customize/case_post_run_io.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,12 @@ def _convert_adios_to_nc(case):
# Load the environment
case.load_env(reset=True)

# Reset MPICH/MPI GPU support, if enabled
is_mpich_gpu_enabled = os.environ.get('MPICH_GPU_SUPPORT_ENABLED')
if int(0 if is_mpich_gpu_enabled is None else is_mpich_gpu_enabled) == 1:
logger.info("Resetting support for GPU in MPICH/MPI library (since its not used by the tool)")
os.environ['MPICH_GPU_SUPPORT_ENABLED'] = str(0);

run_func = lambda: run_cmd(cmd, from_dir=rundir)[0]

# Run the modified case
Expand Down
3 changes: 3 additions & 0 deletions components/cmake/modules/FindPIO.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ endif()
if (PIO_VERSION STREQUAL 2)
# This is a pio2 library
set(PIOLIBS "${PIO_LIBDIR}/libpiof.a;${PIO_LIBDIR}/libpioc.a")
if (DEFINED ENV{ADIOS2_ROOT})
list(APPEND PIOLIBS "${PIO_LIBDIR}/libadios2pio-nm-lib.a")
endif()
else()
# This is a pio1 library
set(PIOLIBS "${PIO_LIBDIR}/libpio.a")
Expand Down
4 changes: 2 additions & 2 deletions driver-mct/cime_config/config_component.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2692,10 +2692,10 @@

<entry id="PIO_REARRANGER">
<type>integer</type>
<valid_values>1,2</valid_values>
<valid_values>1,2,3</valid_values>
<group>run_pio</group>
<file>env_run.xml</file>
<desc>pio rearranger choice box=1, subset=2 </desc>
<desc>pio rearranger choice box=1, subset=2, any=3 </desc>
<values>
<value compclass="ATM">$PIO_VERSION</value>
<value compclass="CPL">$PIO_VERSION</value>
Expand Down
4 changes: 2 additions & 2 deletions driver-mct/cime_config/namelist_definition_modelio.xml
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,9 @@
<type>integer</type>
<category>pio</category>
<group>pio_inparm</group>
<valid_values>-99,1,2</valid_values>
<valid_values>-99,1,2,3</valid_values>
<desc>
Rearranger method for pio 1=box, 2=subset.
Rearranger method for pio 1=box, 2=subset, 3=any.
</desc>
<values>
<value component="cpl">$CPL_PIO_REARRANGER</value>
Expand Down
4 changes: 2 additions & 2 deletions driver-moab/cime_config/config_component.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2684,10 +2684,10 @@

<entry id="PIO_REARRANGER">
<type>integer</type>
<valid_values>1,2</valid_values>
<valid_values>1,2,3</valid_values>
<group>run_pio</group>
<file>env_run.xml</file>
<desc>pio rearranger choice box=1, subset=2 </desc>
<desc>pio rearranger choice box=1, subset=2, any=3 </desc>
<values>
<value compclass="ATM">$PIO_VERSION</value>
<value compclass="CPL">$PIO_VERSION</value>
Expand Down
4 changes: 2 additions & 2 deletions driver-moab/cime_config/namelist_definition_modelio.xml
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,9 @@
<type>integer</type>
<category>pio</category>
<group>pio_inparm</group>
<valid_values>-99,1,2</valid_values>
<valid_values>-99,1,2,3</valid_values>
<desc>
Rearranger method for pio 1=box, 2=subset.
Rearranger method for pio 1=box, 2=subset, 3=any.
</desc>
<values>
<value component="cpl">$CPL_PIO_REARRANGER</value>
Expand Down
2 changes: 1 addition & 1 deletion externals/scorpio
Submodule scorpio updated 827 files
3 changes: 3 additions & 0 deletions share/build/buildlib.spio
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,9 @@ def buildlib(bldroot, installpath, case):

if "ADIOS2_ROOT" in os.environ:
cmake_opts += "-DWITH_ADIOS2:BOOL=ON "
if "FROM_CREATE_TEST" in os.environ and os.environ["FROM_CREATE_TEST"] == "True":
cmake_opts += "-DADIOS_BP2NC_TEST:BOOL=ON "

if debug:
cmake_opts += "-DPIO_ENABLE_LOGGING=ON "
# Case changes for NetCDF/NETCDF forces us to do this. For other packages
Expand Down
3 changes: 2 additions & 1 deletion share/util/shr_pio_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -730,7 +730,8 @@ subroutine shr_pio_namelist_set(npes,mycomm, pio_stride, pio_root, pio_numiotask
if(pio_stride == 1 .and. .not. pio_async_interface) then
pio_root = 0
endif
if(pio_rearranger .ne. PIO_REARR_SUBSET .and. pio_rearranger .ne. PIO_REARR_BOX) then
if(pio_rearranger .ne. PIO_REARR_SUBSET .and. pio_rearranger .ne. PIO_REARR_BOX .and.&
pio_rearranger .ne. PIO_REARR_ANY) then
write(shr_log_unit,*) 'pio_rearranger value, ',pio_rearranger,&
', not supported - using PIO_REARR_BOX'
pio_rearranger = PIO_REARR_BOX
Expand Down

0 comments on commit dd32f0f

Please sign in to comment.