Hi,
I ported CESM2.1.1 and trying out the simple experiment
./create_newcase --case.......--compset QPC4 --res f45_f45_mg37 --run-unsupported.
./case.submit runs into the error "UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 152: invalid start byte".
config_batch.xml has the entries:
<batch_system MACH="....." type="slurm" >
<batch_submit>sbatch</batch_submit>
<submit_args>
<arg flag="--time" name="$JOB_WALLCLOCK_TIME"/>
<arg flag="-p" name="$JOB_QUEUE"/>
<arg flag="--account" name="$PROJECT"/>
</submit_args>
<queues>
<queue default="true">default</queue>
</queues>
</batch_system>
config_machines.xml:
<?xml version="1.0"?>
<config_machines version="2.0">
<machine MACH="pansah">
<DESC>node at ...., os is Linux, 22 pes/node, batch system is SLURM</DESC>
<NODENAME_REGEX>headnode.......</NODENAME_REGEX>
<OS>LINUX</OS>
<COMPILERS>intel</COMPILERS>
<MPILIBS>openmpi</MPILIBS>
<PROJECT>pa974865_esm</PROJECT>
<CIME_OUTPUT_ROOT>/........./output</CIME_OUTPUT_ROOT>
<DIN_LOC_ROOT>/......./inputdata</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/........../inputdata/atm/forcing</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>/........../output/cesm_archive</DOUT_S_ROOT>
<BASELINE_ROOT>/.........../inputdata/ccsm_baselines</BASELINE_ROOT>
<CCSM_CPRNC>/............/cesm/cime/tools/cprnc</CCSM_CPRNC>
<GMAKE>make</GMAKE>
<GMAKE_J>8</GMAKE_J>
<BATCH_SYSTEM>slurm</BATCH_SYSTEM>
<SUPPORTED_BY>peter</SUPPORTED_BY>
<MAX_TASKS_PER_NODE>22</MAX_TASKS_PER_NODE>
<MAX_MPITASKS_PER_NODE>22</MAX_MPITASKS_PER_NODE>
<PROJECT_REQUIRED>TRUE</PROJECT_REQUIRED>
<mpirun mpilib="openmpi">
<executable>mpiexec</executable>
<arguments>
<arg name="num_tasks">-np {{ total_tasks }}</arg>
<arg name="tasks_per_node"> -npernode $MAX_MPITASKS_PER_NODE </arg>
</arguments>
</mpirun>
<module_system type="module">
<init_path lang="sh">/usr/share/Modules/init/sh</init_path>
<init_path lang="csh">/usr/share/Modules/init/csh</init_path>
<init_path lang="perl">/usr/share/Modules/init/perl.pm</init_path>
<init_path lang="python">/usr/share/Modules/init/python.py</init_path>
<cmd_path lang="sh">module</cmd_path>
<cmd_path lang="csh">module</cmd_path>
<cmd_path lang="perl">/usr/bin/modulecmd perl</cmd_path>
<cmd_path lang="python">/usr/bin/modulecmd python</cmd_path>
<modules>
<command name="purge"/>
<command name="load">ncarenv/1.0</command>
</modules>
<modules compiler="intel">
<command name="load">intel/2024.0.1</command>
<command name="load">mkl</command>
</modules>
</module_system>
<environment_variables>
<env name="OMP_STACKSIZE">256M</env>
<env name="MPI_TYPE_DEPTH">16</env>
</environment_variables>
<resource_limits>
<resource name="RLIMIT_STACK">-1</resource>
</resource_limits>
</machine>
</config_machines>
For the compiler, using the already defined default (I don't fully get how things work in this section of the code yet) :
<compiler COMPILER="intel">
<CFLAGS>
<base> -qno-opt-dynamic-align -fp-model precise -std=gnu99 </base>
<append compile_threaded="true"> -qopenmp </append>
<append DEBUG="FALSE"> -O2 -debug minimal </append>
<append DEBUG="TRUE"> -O0 -g </append>
</CFLAGS>
<CPPDEFS>
<!-- Technical Library -->
<append> -DFORTRANUNDERSCORE -DCPRINTEL</append>
</CPPDEFS>
<CXX_LDFLAGS>
<base> -cxxlib </base>
</CXX_LDFLAGS>
<CXX_LINKER>FORTRAN</CXX_LINKER>
<FC_AUTO_R8>
<base> -r8 </base>
</FC_AUTO_R8>
<FFLAGS>
<base> -qno-opt-dynamic-align -convert big_endian -assume byterecl -ftz -traceback -assume realloc_lhs -fp-model source </base>
<append compile_threaded="true"> -qopenmp </append>
<append DEBUG="TRUE"> -O0 -g -check uninit -check bounds -check pointers -fpe0 -check noarg_temp_created </append>
<append DEBUG="FALSE"> -O2 -debug minimal </append>
</FFLAGS>
<FFLAGS_NOOPT>
<base> -O0 </base>
<append compile_threaded="true"> -qopenmp </append>
</FFLAGS_NOOPT>
<FIXEDFLAGS>
<base> -fixed -132 </base>
</FIXEDFLAGS>
<FREEFLAGS>
<base> -free </base>
</FREEFLAGS>
<LDFLAGS>
<append compile_threaded="true"> -qopenmp </append>
</LDFLAGS>
<MPICC> mpicc </MPICC>
<MPICXX> mpicxx </MPICXX>
<MPIFC> mpif90 </MPIFC>
<SCC> icc </SCC>
<SCXX> icpc </SCXX>
<SFC> ifort </SFC>
<SLIBS>
<append MPILIB="mpich"> -mkl=cluster </append>
<append MPILIB="mpich2"> -mkl=cluster </append>
<append MPILIB="mvapich"> -mkl=cluster </append>
<append MPILIB="mvapich2"> -mkl=cluster </append>
<append MPILIB="mpt"> -mkl=cluster </append>
<append MPILIB="openmpi"> -mkl=cluster </append>
<append MPILIB="impi"> -mkl=cluster </append>
<append MPILIB="mpi-serial"> -mkl </append>
</SLIBS>
<SUPPORTS_CXX>TRUE</SUPPORTS_CXX>
</compiler>
I ported CESM2.1.1 and trying out the simple experiment
./create_newcase --case.......--compset QPC4 --res f45_f45_mg37 --run-unsupported.
./case.submit runs into the error "UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 152: invalid start byte".
config_batch.xml has the entries:
<batch_system MACH="....." type="slurm" >
<batch_submit>sbatch</batch_submit>
<submit_args>
<arg flag="--time" name="$JOB_WALLCLOCK_TIME"/>
<arg flag="-p" name="$JOB_QUEUE"/>
<arg flag="--account" name="$PROJECT"/>
</submit_args>
<queues>
<queue default="true">default</queue>
</queues>
</batch_system>
config_machines.xml:
<?xml version="1.0"?>
<config_machines version="2.0">
<machine MACH="pansah">
<DESC>node at ...., os is Linux, 22 pes/node, batch system is SLURM</DESC>
<NODENAME_REGEX>headnode.......</NODENAME_REGEX>
<OS>LINUX</OS>
<COMPILERS>intel</COMPILERS>
<MPILIBS>openmpi</MPILIBS>
<PROJECT>pa974865_esm</PROJECT>
<CIME_OUTPUT_ROOT>/........./output</CIME_OUTPUT_ROOT>
<DIN_LOC_ROOT>/......./inputdata</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/........../inputdata/atm/forcing</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>/........../output/cesm_archive</DOUT_S_ROOT>
<BASELINE_ROOT>/.........../inputdata/ccsm_baselines</BASELINE_ROOT>
<CCSM_CPRNC>/............/cesm/cime/tools/cprnc</CCSM_CPRNC>
<GMAKE>make</GMAKE>
<GMAKE_J>8</GMAKE_J>
<BATCH_SYSTEM>slurm</BATCH_SYSTEM>
<SUPPORTED_BY>peter</SUPPORTED_BY>
<MAX_TASKS_PER_NODE>22</MAX_TASKS_PER_NODE>
<MAX_MPITASKS_PER_NODE>22</MAX_MPITASKS_PER_NODE>
<PROJECT_REQUIRED>TRUE</PROJECT_REQUIRED>
<mpirun mpilib="openmpi">
<executable>mpiexec</executable>
<arguments>
<arg name="num_tasks">-np {{ total_tasks }}</arg>
<arg name="tasks_per_node"> -npernode $MAX_MPITASKS_PER_NODE </arg>
</arguments>
</mpirun>
<module_system type="module">
<init_path lang="sh">/usr/share/Modules/init/sh</init_path>
<init_path lang="csh">/usr/share/Modules/init/csh</init_path>
<init_path lang="perl">/usr/share/Modules/init/perl.pm</init_path>
<init_path lang="python">/usr/share/Modules/init/python.py</init_path>
<cmd_path lang="sh">module</cmd_path>
<cmd_path lang="csh">module</cmd_path>
<cmd_path lang="perl">/usr/bin/modulecmd perl</cmd_path>
<cmd_path lang="python">/usr/bin/modulecmd python</cmd_path>
<modules>
<command name="purge"/>
<command name="load">ncarenv/1.0</command>
</modules>
<modules compiler="intel">
<command name="load">intel/2024.0.1</command>
<command name="load">mkl</command>
</modules>
</module_system>
<environment_variables>
<env name="OMP_STACKSIZE">256M</env>
<env name="MPI_TYPE_DEPTH">16</env>
</environment_variables>
<resource_limits>
<resource name="RLIMIT_STACK">-1</resource>
</resource_limits>
</machine>
</config_machines>
For the compiler, using the already defined default (I don't fully get how things work in this section of the code yet) :
<compiler COMPILER="intel">
<CFLAGS>
<base> -qno-opt-dynamic-align -fp-model precise -std=gnu99 </base>
<append compile_threaded="true"> -qopenmp </append>
<append DEBUG="FALSE"> -O2 -debug minimal </append>
<append DEBUG="TRUE"> -O0 -g </append>
</CFLAGS>
<CPPDEFS>
<!-- Technical Library -->
<append> -DFORTRANUNDERSCORE -DCPRINTEL</append>
</CPPDEFS>
<CXX_LDFLAGS>
<base> -cxxlib </base>
</CXX_LDFLAGS>
<CXX_LINKER>FORTRAN</CXX_LINKER>
<FC_AUTO_R8>
<base> -r8 </base>
</FC_AUTO_R8>
<FFLAGS>
<base> -qno-opt-dynamic-align -convert big_endian -assume byterecl -ftz -traceback -assume realloc_lhs -fp-model source </base>
<append compile_threaded="true"> -qopenmp </append>
<append DEBUG="TRUE"> -O0 -g -check uninit -check bounds -check pointers -fpe0 -check noarg_temp_created </append>
<append DEBUG="FALSE"> -O2 -debug minimal </append>
</FFLAGS>
<FFLAGS_NOOPT>
<base> -O0 </base>
<append compile_threaded="true"> -qopenmp </append>
</FFLAGS_NOOPT>
<FIXEDFLAGS>
<base> -fixed -132 </base>
</FIXEDFLAGS>
<FREEFLAGS>
<base> -free </base>
</FREEFLAGS>
<LDFLAGS>
<append compile_threaded="true"> -qopenmp </append>
</LDFLAGS>
<MPICC> mpicc </MPICC>
<MPICXX> mpicxx </MPICXX>
<MPIFC> mpif90 </MPIFC>
<SCC> icc </SCC>
<SCXX> icpc </SCXX>
<SFC> ifort </SFC>
<SLIBS>
<append MPILIB="mpich"> -mkl=cluster </append>
<append MPILIB="mpich2"> -mkl=cluster </append>
<append MPILIB="mvapich"> -mkl=cluster </append>
<append MPILIB="mvapich2"> -mkl=cluster </append>
<append MPILIB="mpt"> -mkl=cluster </append>
<append MPILIB="openmpi"> -mkl=cluster </append>
<append MPILIB="impi"> -mkl=cluster </append>
<append MPILIB="mpi-serial"> -mkl </append>
</SLIBS>
<SUPPORTS_CXX>TRUE</SUPPORTS_CXX>
</compiler>