Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • MNH-51X
  • MNH-52X
  • MNH-53-branch
  • MNH-54-branch
  • MNH-54X-dev-IO
  • MNH-54X-dev-OPENACC
  • MNH-54X-dev-SFX81
  • MNH-55-branch
  • MNH-55-branch-ecrad140
  • MNH-55X-dev-IO
  • MNH-55X-dev-OPENACC
  • MNH-55X-dev-OPENACC-CINES
  • MNH-55X-dev-OPENACC-FFT
  • MNH-55X-dev-OPENACC_SHUMAN
  • MNH-55X-dev-SFX9
  • MNH-55X-dev-modern
  • MNH-56-branch
  • MNH-56-dev-PHYEX
  • MNH-561-dev
  • MNH-56X-SFX9
  • MNH-56X-dev-IO
  • MNH-56X-dev-OPENACC-FFT
  • MNH-56X-dev-OPENACC-FFT-PHYEXturb-ice4
  • MNH-56X-dev-OPENACC-FFT-unlessPHYEX
  • MNH-56X-dev-OPENACC-FFT-unlessPHYEX-STDPAR
  • MNH-57-branch
  • MNH-571-devChristelle-Cristaux
  • MNH-57X-dev-IO
  • MNH-57X-dev-OPENACC-FFT-ECCODES
  • MNH-57X-dev-modern
  • MNH-57X-devChristelle-Cristaux
  • MNH-dev-OPENACC
  • MNH-dev-OPENACC-juan-opti_uvw
  • ecrad-external
  • ecrad-external-devQuentin
  • ecrad-external-devQuentin-nomerge571
  • master
  • BEGINNING
  • LIBTOOL-before-MNH-merge
  • LIBTOOLS-CNRM-5-1-a
  • MESONH-v55-OpenACC
  • PACK-MNH-V5-1--0-01_NOFF
  • PACK-MNH-V5-1--0-02-FF
  • PACK-MNH-V5-1--0-03-HALOK
  • PACK-MNH-V5-1-2
  • PACK-MNH-V5-1-3
  • PACK-MNH-V5-1-3-to-5-2
  • PACK-MNH-V5-1-4
  • PACK-MNH-V5-2--0-01_CDF4_513
  • PACK-MNH-V5-2--0-02_CDF4_514
  • PACK-MNH-V5-2--0-03_DIAG
  • PACK-MNH-V5-2--0-04_GRIBAPI
  • PACK-MNH-V5-2--0-05_WENO5_JPHEXT_N1
  • PACK-MNH-V5-2--0-06_PREPLL
  • PACK-MNH-V5-2--0-07_ELEC_ARO_EDKF
  • PACK-MNH-V5-2--0-08_CHIMIE
  • PACK-MNH-V5-2--0-09_KTEST
  • PACK-MNH-V5-2-0
  • PACK-MNH-V5-2-1
  • PACK-MNH-V5-2-2
  • PACK-MNH-V5-3--0-01_SFX8
  • PACK-MNH-V5-3--0-02_OASIS
  • PACK-MNH-V5-3--0-03_RTTOV
  • PACK-MNH-V5-3--0-04_LIMA
  • PACK-MNH-V5-3--0-05_CHIMIE
  • PACK-MNH-V5-3--0-05_CHIMIE2
  • PACK-MNH-V5-3--0-06_NCL630
  • PACK-MNH-V5-3--0-07_CHRISTINE
  • PACK-MNH-V5-3--0-08_DIVERS
  • PACK-MNH-V5-3--0-09_NCL630_2
  • PACK-MNH-V5-3--0-10_LEN_HREC
  • PACK-MNH-V5-3--0-11_PHASE_MNH_522
  • PACK-MNH-V5-3--0-12_LFI2CDF
  • PACK-MNH-V5-3-0
  • PACK-MNH-V5-3-1
  • PACK-MNH-V5-3-to-5-4
  • PACK-MNH-V5-4--0-00_PHASE_MNH_531
  • PACK-MNH-V5-4--0-01_CLUSTERING
  • PACK-MNH-V5-4--0-02_ALTITUDE_INTERPOLATION
  • PACK-MNH-V5-4--0-03_COARSE_GRAINING
  • PACK-MNH-V5-4--0-04_SFX81
  • PACK-MNH-V5-4--0-05_NCL640
  • PACK-MNH-V5-4--0-06_GRIBAPI-1-26
  • PACK-MNH-V5-4--0-07_BUG_R4
  • PACK-MNH-V5-4--0-08_ECRAD
  • PACK-MNH-V5-4--0-09_IO
  • PACK-MNH-V5-4--0-09bis_IO
  • PACK-MNH-V5-4--0-10_SNOW
  • PACK-MNH-V5-4--0-11_MEGAN
  • PACK-MNH-V5-4--0-12_CHIMIE
  • PACK-MNH-V5-4--0-13_MERGE531PLUS
  • PACK-MNH-V5-4--0-14_LIMA
  • PACK-MNH-V5-4--0-15_GFS
  • PACK-MNH-V5-4--0-16_DIAG
  • PACK-MNH-V5-4--0-17_CHRISTINE
  • PACK-MNH-V5-4--0-18_IO_TER
  • PACK-MNH-V5-4--0-19_OASIS
  • PACK-MNH-V5-4--0-19_OASIS2
  • PACK-MNH-V5-4--0-20_LFI2CDF
  • PACK-MNH-V5-4-0
  • PACK-MNH-V5-4-1
  • PACK-MNH-V5-4-2
  • PACK-MNH-V5-4-3
  • PACK-MNH-V5-4-4
  • PACK-MNH-V5-4-to-5-5
  • PACK-MNH-V5-5--0-01_CINES_BENCH
  • PACK-MNH-V5-5--0-02_CINES_HPE_ZSOLVER_OK_NO_MANAGED
  • PACK-MNH-V5-5--0-03_CINES_HPE_ZSOLVER_OK_NO_MANAGED_KERNEL_PRESENT
  • PACK-MNH-V5-5--0-04_CINES_HPE_ZSOLVER_OK_PARARELL_BITREP_NO_TURB
  • PACK-MNH-V5-5--0-05_CINES_HPE_MASTER_OK_PARALLEL_BITREP_TURB_CLOUD_28IT
  • PACK-MNH-V5-5--0-06_CINES_HPE_MNHEXP_BITREP_4H_ZSOLVER_MNHEXP_DOC
  • PACK-MNH-V5-5--0-07_CINES_HPE_CCE14XX_OPT_NV70_NOBITREP
  • PACK-MNH-V5-5--01-08_CINES_HPE_CCE1500_ADASTRA
  • PACK-MNH-V5-5--01-09_CINES_HPE_END_CONTRAT_PROGRES
  • PACK-MNH-V5-5--01-10_CINES_HPE_BEFORE_GFORTRAN_SOURCERYG_MODIF
  • PACK-MNH-V5-5--01-11_CINES_HPE_AFTER_GFORTRAN_SOURCERYG_MODIF
  • PACK-MNH-V5-5--01-12_OPENACC_BEFORE_MG_2N
  • PACK-MNH-V5-5--01-13_OPENACC_AFTER_MG_2N
  • PACK-MNH-V5-5--1-00_FROM_55X_DEV_IO_TO_55_BRANCH
  • PACK-MNH-V5-5--1-01_KTEST_PYTHON_PB_COPT81_MASK
  • PACK-MNH-V5-5--1-02_PYTHON_DONE_BLANKn_ADAP
  • PACK-MNH-V5-5--1-03_ECCODES
  • PACK-MNH-V5-5--1-04_WINDTURBINES
  • PACK-MNH-V5-5--1-05_SBGCONDENSATION
  • PACK-MNH-V5-5--1-06_IBM_RECYCLING_STATIONn
  • PACK-MNH-V5-5--1-07_MOENG
  • PACK-MNH-V5-5--1-08_LES_OCEAN
  • PACK-MNH-V5-5--1-08_LES_OCEAN-start-ECRAD140
  • PACK-MNH-V5-5-0
  • PACK-MNH-V5-5-1
  • PACK-MNH-V5-5-OPENACC-FFT-1-00
  • PACK-MNH-V5-5-OPENACC-FFT-1-00_OLD
  • PACK-MNH-V5-5-OPENACC-FFT-1-01_COMPRESS_ALL
  • PACK-MNH-V5-6--0-01_LIMA_2MOMENTS
  • PACK-MNH-V5-6-0
  • PACK-MNH-V5-6-0-02_BLAZE_FIRE
  • PACK-MNH-V5-6-0-03_PHYEX-v0.3.0
137 results

Target

Select target project
  • mesonh/mesonh-code
  • quentin.rodier/mesonh-code-fork
  • benoit.vie/mesonh-code
  • joris.pianezze/mesonh-code
  • 8qq4g5s7/mesonh-code
  • jean.baptiste.filippi/meso-nh-fire-code
  • fdl68d9p/mesonh-code-sophia
  • jean.wurtz/mesonh-code
8 results
Select Git revision
  • MNH-51X
  • MNH-52X
  • MNH-53-branch
  • MNH-54-branch
  • MNH-54X-dev-IO
  • MNH-54X-dev-OPENACC
  • MNH-54X-dev-SFX81
  • MNH-55-branch
  • MNH-55-branch-ecrad140
  • MNH-55X-dev-IO
  • MNH-55X-dev-OPENACC
  • MNH-55X-dev-OPENACC-CINES
  • MNH-55X-dev-OPENACC-FFT
  • MNH-55X-dev-OPENACC-FFT-1-00
  • MNH-55X-dev-OPENACC-FFT-1-02_IA_CORSE
  • MNH-55X-dev-OPENACC_SHUMAN
  • MNH-55X-dev-SFX9
  • MNH-55X-dev-modern
  • MNH-56-branch
  • MNH-56-dev-PHYEX
  • MNH-561-dev
  • MNH-56X-SFX9
  • MNH-56X-dev-IO
  • MNH-56X-dev-OPENACC-FFT
  • MNH-56X-dev-OPENACC-FFT-PHYEXturb-ice4
  • MNH-56X-dev-OPENACC-FFT-unlessPHYEX
  • MNH-56X-dev-OPENACC-FFT-unlessPHYEX-STDPAR
  • MNH-57-branch
  • MNH-57X-dev-CPLOA-bugfixes
  • MNH-57X-dev-IO
  • MNH-57X-dev-OPENACC-FFT
  • MNH-57X-dev-OPENACC-FFT-CCE1800
  • MNH-60-branch
  • MNH-60X-dev-IO
  • MNH-60X-dev-IOpara
  • MNH-dev-OPENACC
  • MNH-dev-OPENACC-juan-opti_uvw
  • master
  • BEGINNING
  • LIBTOOL-before-MNH-merge
  • LIBTOOLS-CNRM-5-1-a
  • MESONH-v55-OpenACC
  • MESONH-v55-OpenACC_V0
  • PACK-MNH-V5-1--0-01_NOFF
  • PACK-MNH-V5-1--0-02-FF
  • PACK-MNH-V5-1--0-03-HALOK
  • PACK-MNH-V5-1-2
  • PACK-MNH-V5-1-3
  • PACK-MNH-V5-1-3-to-5-2
  • PACK-MNH-V5-1-4
  • PACK-MNH-V5-2--0-01_CDF4_513
  • PACK-MNH-V5-2--0-02_CDF4_514
  • PACK-MNH-V5-2--0-03_DIAG
  • PACK-MNH-V5-2--0-04_GRIBAPI
  • PACK-MNH-V5-2--0-05_WENO5_JPHEXT_N1
  • PACK-MNH-V5-2--0-06_PREPLL
  • PACK-MNH-V5-2--0-07_ELEC_ARO_EDKF
  • PACK-MNH-V5-2--0-08_CHIMIE
  • PACK-MNH-V5-2--0-09_KTEST
  • PACK-MNH-V5-2-0
  • PACK-MNH-V5-2-1
  • PACK-MNH-V5-2-2
  • PACK-MNH-V5-3--0-01_SFX8
  • PACK-MNH-V5-3--0-02_OASIS
  • PACK-MNH-V5-3--0-03_RTTOV
  • PACK-MNH-V5-3--0-04_LIMA
  • PACK-MNH-V5-3--0-05_CHIMIE
  • PACK-MNH-V5-3--0-05_CHIMIE2
  • PACK-MNH-V5-3--0-06_NCL630
  • PACK-MNH-V5-3--0-07_CHRISTINE
  • PACK-MNH-V5-3--0-08_DIVERS
  • PACK-MNH-V5-3--0-09_NCL630_2
  • PACK-MNH-V5-3--0-10_LEN_HREC
  • PACK-MNH-V5-3--0-11_PHASE_MNH_522
  • PACK-MNH-V5-3--0-12_LFI2CDF
  • PACK-MNH-V5-3-0
  • PACK-MNH-V5-3-1
  • PACK-MNH-V5-3-to-5-4
  • PACK-MNH-V5-4--0-00_PHASE_MNH_531
  • PACK-MNH-V5-4--0-01_CLUSTERING
  • PACK-MNH-V5-4--0-02_ALTITUDE_INTERPOLATION
  • PACK-MNH-V5-4--0-03_COARSE_GRAINING
  • PACK-MNH-V5-4--0-04_SFX81
  • PACK-MNH-V5-4--0-05_NCL640
  • PACK-MNH-V5-4--0-06_GRIBAPI-1-26
  • PACK-MNH-V5-4--0-07_BUG_R4
  • PACK-MNH-V5-4--0-08_ECRAD
  • PACK-MNH-V5-4--0-09_IO
  • PACK-MNH-V5-4--0-09bis_IO
  • PACK-MNH-V5-4--0-10_SNOW
  • PACK-MNH-V5-4--0-11_MEGAN
  • PACK-MNH-V5-4--0-12_CHIMIE
  • PACK-MNH-V5-4--0-13_MERGE531PLUS
  • PACK-MNH-V5-4--0-14_LIMA
  • PACK-MNH-V5-4--0-15_GFS
  • PACK-MNH-V5-4--0-16_DIAG
  • PACK-MNH-V5-4--0-17_CHRISTINE
  • PACK-MNH-V5-4--0-18_IO_TER
  • PACK-MNH-V5-4--0-19_OASIS
  • PACK-MNH-V5-4--0-19_OASIS2
  • PACK-MNH-V5-4--0-20_LFI2CDF
  • PACK-MNH-V5-4-0
  • PACK-MNH-V5-4-1
  • PACK-MNH-V5-4-2
  • PACK-MNH-V5-4-3
  • PACK-MNH-V5-4-4
  • PACK-MNH-V5-4-to-5-5
  • PACK-MNH-V5-5--0-01_CINES_BENCH
  • PACK-MNH-V5-5--0-02_CINES_HPE_ZSOLVER_OK_NO_MANAGED
  • PACK-MNH-V5-5--0-03_CINES_HPE_ZSOLVER_OK_NO_MANAGED_KERNEL_PRESENT
  • PACK-MNH-V5-5--0-04_CINES_HPE_ZSOLVER_OK_PARARELL_BITREP_NO_TURB
  • PACK-MNH-V5-5--0-05_CINES_HPE_MASTER_OK_PARALLEL_BITREP_TURB_CLOUD_28IT
  • PACK-MNH-V5-5--0-06_CINES_HPE_MNHEXP_BITREP_4H_ZSOLVER_MNHEXP_DOC
  • PACK-MNH-V5-5--0-07_CINES_HPE_CCE14XX_OPT_NV70_NOBITREP
  • PACK-MNH-V5-5--01-08_CINES_HPE_CCE1500_ADASTRA
  • PACK-MNH-V5-5--01-09_CINES_HPE_END_CONTRAT_PROGRES
  • PACK-MNH-V5-5--01-10_CINES_HPE_BEFORE_GFORTRAN_SOURCERYG_MODIF
  • PACK-MNH-V5-5--01-11_CINES_HPE_AFTER_GFORTRAN_SOURCERYG_MODIF
  • PACK-MNH-V5-5--01-12_OPENACC_BEFORE_MG_2N
  • PACK-MNH-V5-5--01-13_OPENACC_AFTER_MG_2N
  • PACK-MNH-V5-5--1-00_FROM_55X_DEV_IO_TO_55_BRANCH
  • PACK-MNH-V5-5--1-01_KTEST_PYTHON_PB_COPT81_MASK
  • PACK-MNH-V5-5--1-02_PYTHON_DONE_BLANKn_ADAP
  • PACK-MNH-V5-5--1-03_ECCODES
  • PACK-MNH-V5-5--1-04_WINDTURBINES
  • PACK-MNH-V5-5--1-05_SBGCONDENSATION
  • PACK-MNH-V5-5--1-06_IBM_RECYCLING_STATIONn
  • PACK-MNH-V5-5--1-07_MOENG
  • PACK-MNH-V5-5--1-08_LES_OCEAN
  • PACK-MNH-V5-5--1-08_LES_OCEAN-start-ECRAD140
  • PACK-MNH-V5-5-0
  • PACK-MNH-V5-5-1
  • PACK-MNH-V5-5-OPENACC-FFT-1-00
  • PACK-MNH-V5-5-OPENACC-FFT-1-00_OLD
  • PACK-MNH-V5-5-OPENACC-FFT-1-01
  • PACK-MNH-V5-5-OPENACC-FFT-1-01_CCE1800_NVHPC247
  • PACK-MNH-V5-5-OPENACC-FFT-1-01_COMPRESS_ALL
  • PACK-MNH-V5-5-OPENACC-FFT-1-02_IA_CORSE
138 results
Show changes
Showing
with 1859 additions and 4 deletions
../004_mesonh_step2/parameters_mg.nam
\ No newline at end of file
#!/bin/bash
#
#
set -x
#export PGI_ACC_POOL_ALLOC=0
export PGI_ACC_SYNCHRONOUS=1
#export NVCOMPILER_ACC_POOL_ALLOC=0
NP=${NP:-16}
NPS=${NPS:-4}
export MPIRUN=${MPIRUN:-"Mpirun -tag-output -report-bindings -bind-to none -map-by ppr:${NPS}:socket -x NVCOMPILER_ACC_POOL_ALLOC_MAXSIZE -x NVCOMPILER_ACC_POOL_ALLOC -x PGI_ACC_POOL_ALLOC -x PGI_ACC_SYNCHRONOUS -np ${NP} set_core_device_impair "}
time ${MPIRUN} MG_MAIN_MNH_ALL${XYZ}
#!/bin/bash
find . -name '*.des' -o -name '*.nc' -o -name '*.lfi' -o -name '*OUT*' -o -iname 'sorti*' \
-o -name '*.dir' -o -name '*.hdr' -o -name 'core' -o -name file_for_xtransfer \
-o -name PRESSURE -o -name 'REMAP*' -o -name 'fort.*' -o -name 'timing.txt*' | xargs -n1 rm -f
find . -type d -name 'dir_*' | xargs -n1 rm -fr
#!/bin/bash
if [[ -n ${OMPI_COMM_WORLD_RANK+z} ]]; then
# mpich
export MPI_RANK=${OMPI_COMM_WORLD_RANK}
elif [[ -n ${MV2_COMM_WORLD_RANK+z} ]]; then
# ompi
export MPI_RANK=${MV2_COMM_WORLD_RANK}
elif [[ -n ${SLURM_PROCID+z} ]]; then
#srun
export MPI_RANK=${SLURM_PROCID}
fi
args="$*"
pid="$$"
outdir="dir_Rocprof-${SLURM_JOBID}"
outfile="results_Rocprof-MNH${XYZ}_${NP}NP_${NG}NG_${NC}NC_${CG}CG.${MPI_RANK}IP.${SLURM_JOBID}"
eval "rocprof -o ${outfile}.csv $*"
rm -f ${outfile}.{db,sysinfo.txt}
#!/bin/bash
#set -e
#Numactl='numactl --physcpubind '
Numactl='taskset -c '
if [[ "x${SLURM_HINT}" != *nomultithread* ]]
then
HYP_FAC=2
else
HYP_FAC=1
fi
#NB_DEVICE=$( echo ${SLURM_STEP_GPUS//,/ } | wc -w )
NB_DEVICE=$( nvidia-smi -L | grep GPU | wc -l )
[ ${NB_DEVICE} -eq 0 ] && NB_DEVICE=1
export IP=${OMPI_COMM_WORLD_RANK:-${SLURM_PROCID}}
export LIP=${OMPI_COMM_WORLD_LOCAL_RANK:-${SLURM_LOCALID}}
export NP=${OMPI_COMM_WORLD_SIZE:-${SLURM_NTASKS}}
export NN=${OMPI_MCA_orte_num_nodes:-${SLURM_NNODES}}
export NPN=$(( NP / NN ))
#export NB_HYP=${SLURM_CPUS_ON_NODE}
export NB_HYP=${SLURM_JOB_CPUS_PER_NODE/(*)/}
export NB_CORE=$(( ${NB_HYP} / HYP_FAC ))
export NPC=$(( NB_CORE / NPN ))
CORE=$(( LIP * NPC ))
export HALF=$(( 1+ ( NPN -1 ) / 2 ))
export SOC=$(( 1 *( LIP / HALF ) ))
export RANK_SOC=$(( LIP % HALF ))
export CORE_IMP=$(( SOC + 2*NPC*RANK_SOC ))
export SURBOOK=$(( NPN / NB_DEVICE ))
if [ ${SURBOOK} == 0 ]
then
export ACC_DEVICE_NUM=$(( LIP * 2 ))
else
export ACC_DEVICE_NUM=$(( LIP / SURBOOK ))
fi
echo IP=${IP} LIP=${LIP} NP=${NP} NN=${NN} NPN=${NPN} NPC=${NPC} HOST=`hostname` NB_CORE=${NB_CORE} CORE=${CORE} CORE_IMP=${CORE_IMP} HALF=$HALF SOC=$SOC RS=${RANK_SOC} ND=${NB_DEVICE} CD=${ACC_DEVICE_NUM}
#EXEC=exec
${EXEC} ${Numactl} ${CORE} $*
#exec $*
#$*
#!/bin/bash
#set -e
#Numactl='numactl --physcpubind '
Numactl='taskset -c '
if [[ "x${SLURM_HINT}" != *nomultithread* ]]
then
HYP_FAC=1
else
HYP_FAC=1
fi
#NB_DEVICE=$( echo ${SLURM_STEP_GPUS//,/ } | wc -w )
NB_DEVICE=$( nvidia-smi -L | grep GPU | wc -l )
[ ${NB_DEVICE} -eq 0 ] && NB_DEVICE=1
export IP=${OMPI_COMM_WORLD_RANK:-${SLURM_PROCID}}
export LIP=${OMPI_COMM_WORLD_LOCAL_RANK:-${SLURM_LOCALID}}
export NP=${OMPI_COMM_WORLD_SIZE:-${SLURM_NTASKS}}
export NN=${OMPI_MCA_orte_num_nodes:-${SLURM_NNODES}}
export NPN=$(( NP / NN ))
#export NB_HYP=${SLURM_CPUS_ON_NODE}
export NB_HYP=${SLURM_JOB_CPUS_PER_NODE/(*)/}
export NB_CORE=$(( ${NB_HYP} / HYP_FAC ))
export NPC=$(( NB_CORE / NPN ))
CORE=$(( LIP * NPC ))
export HALF=$(( 1+ ( NPN -1 ) / 2 ))
export SOC=$(( 1 *( LIP / HALF ) ))
export RANK_SOC=$(( LIP % HALF ))
export CORE_IMP=$(( SOC + 2*NPC*RANK_SOC ))
export SURBOOK=$(( NPN / NB_DEVICE ))
if [ ${SURBOOK} == 0 ]
then
export ACC_DEVICE_NUM=$(( LIP * 2 ))
else
export ACC_DEVICE_NUM=$(( LIP / SURBOOK ))
fi
echo IP=${IP} LIP=${LIP} NP=${NP} NN=${NN} NPN=${NPN} NPC=${NPC} HOST=`hostname` NB_CORE=${NB_CORE} CORE=${CORE} CORE_IMP=${CORE_IMP} HALF=$HALF SOC=$SOC RS=${RANK_SOC} ND=${NB_DEVICE} CD=${ACC_DEVICE_NUM}
#EXEC=exec
${EXEC} ${Numactl} ${CORE_IMP} $*
#exec $*
#$*
#!/bin/bash
#set -x
GPUSID=(4 5 2 3 6 7 0 1)
Gpuinfo='rocm-smi -i'
NB_DEVICE=${NB_DEVICE:-$( ${Gpuinfo} | grep GPU | wc -l )}
[ ${NB_DEVICE} -eq 0 ] && NB_DEVICE=1
export LIP=${OMPI_COMM_WORLD_LOCAL_RANK:-${SLURM_LOCALID}}
export IP=${OMPI_COMM_WORLD_RANK:-${SLURM_PROCID}}
export NP=${OMPI_COMM_WORLD_SIZE:-${SLURM_NTASKS}}
export NN=${OMPI_MCA_orte_num_nodes:-${SLURM_NNODES}}
export NPN=$(( 1 + (NP-1)/ NN ))
export HN=$( hostname )
export IG=$(( LIP / ( 1 + (NPN-1) / NB_DEVICE ) ))
export ROCR_VISIBLE_DEVICES=${GPUSID[${IG}]}
echo LIP=${LIP} IP=${IP} NP=${NP} NN=${NN} NPN=${NPN} NG=${NB_DEVICE} IG=${IG} GPU=${ROCR_VISIBLE_DEVICES} ${HN} `taskset -pc $$`
exec $*
#!/bin/bash
#set -x
Gpuinfo='rocm-smi -i'
NB_DEVICE=${NB_DEVICE:-$( ${Gpuinfo} | grep GPU | wc -l )}
[ ${NB_DEVICE} -eq 0 ] && NB_DEVICE=1
export GPU_OFFSET=${GPU_OFFSET:-0}
#[[ ${IP} -ge 1 ]] && IP=$(( IP +1 ))
#[[ ${IP} -ge 2 ]] && IP=$(( IP +1 ))
export LIP=${OMPI_COMM_WORLD_LOCAL_RANK:-${SLURM_LOCALID}}
export IP=${OMPI_COMM_WORLD_RANK:-${SLURM_PROCID}}
export NP=${OMPI_COMM_WORLD_SIZE:-${SLURM_NTASKS}}
export NN=${OMPI_MCA_orte_num_nodes:-${SLURM_NNODES}}
export NPN=$(( 1 + (NP-1)/ NN ))
export HN=$( hostname )
#export ROCR_VISIBLE_DEVICES=$(( IP % NB_DEVICE ))
export ROCR_VISIBLE_DEVICES=$(( GPU_OFFSET + LIP / ( 1 + (NPN-1) / NB_DEVICE ) ))
echo LIP=${LIP} IP=${IP} NP=${NP} NN=${NN} NPN=${NPN} NG=${NB_DEVICE} GPU=${ROCR_VISIBLE_DEVICES} ${HN}
exec $*
#!/bin/bash
#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
#MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier
#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.tx
#MNH_LIC for details. version 1.
#set -x
# HP-UX 10
......@@ -81,8 +81,11 @@ fi
#.SH AUTHORS
#C. Fischer 07/02/95
#
#modified by C. Fischer to split fortran 77 (26/04/95)
#modified by C. Fischer to correct a bug PROGRAM-CONTAINS (16/02/96)
#Modifications:
# 26/04/1995 C. Fischer: to split fortran 77
# 16/02/1996 C. Fischer: to correct a bug PROGRAM-CONTAINS
# 22/06/2022 P. Wautelet: add support for PURE and ELEMENTAL functions and subroutines
#
#
#.SH COPYRIGHT
#
......@@ -153,6 +156,54 @@ awk '
}
{ if((i_conta) != "open")
{
{ if((substr(u1,1,9)) == "ELEMENTAL")
{ if((substr(u2,1,10)) == "SUBROUTINE")
{ split(u3,p_name,"(");
l_name=(tolower(p_name[1]));
split((l_name),e_name,"$");
f_name=(e_name[1]) (e_name[2]) ".f90";
print (f_name); i_flag="bof";
print "! ######spl" > (f_name);
n_unit=(n_unit) + 0
}
}
}
{ if((substr(u1,1,9)) == "ELEMENTAL")
{ if((substr(u2,1,8)) == "FUNCTION")
{ split(u3,p_name,"(");
l_name=(tolower(p_name[1]));
split((l_name),e_name,"$");
f_name=(e_name[1]) (e_name[2]) ".f90";
print (f_name); i_flag="bof";
print "! ######spl" > (f_name);
n_unit=(n_unit) + 0
}
}
}
{ if((substr(u1,1,4)) == "PURE")
{ if((substr(u2,1,10)) == "SUBROUTINE")
{ split(u3,p_name,"(");
l_name=(tolower(p_name[1]));
split((l_name),e_name,"$");
f_name=(e_name[1]) (e_name[2]) ".f90";
print (f_name); i_flag="bof";
print "! ######spl" > (f_name);
n_unit=(n_unit) + 0
}
}
}
{ if((substr(u1,1,4)) == "PURE")
{ if((substr(u2,1,8)) == "FUNCTION")
{ split(u3,p_name,"(");
l_name=(tolower(p_name[1]));
split((l_name),e_name,"$");
f_name=(e_name[1]) (e_name[2]) ".f90";
print (f_name); i_flag="bof";
print "! ######spl" > (f_name);
n_unit=(n_unit) + 0
}
}
}
{ if((substr(u1,1,9)) == "RECURSIVE")
{ if((substr(u2,1,10)) == "SUBROUTINE")
{ split(u3,p_name,"(");
......@@ -200,6 +251,26 @@ awk '
}
else
{
{ if((substr(u1,1,9)) == "ELEMENTAL")
{ if((substr(u2,1,10)) == "SUBROUTINE")
{ n_unit=(n_unit) + 1 }
}
}
{ if((substr(u1,1,9)) == "ELEMENTAL")
{ if((substr(u2,1,8)) == "FUNCTION")
{ n_unit=(n_unit) + 1 }
}
}
{ if((substr(u1,1,4)) == "PURE")
{ if((substr(u2,1,10)) == "SUBROUTINE")
{ n_unit=(n_unit) + 1 }
}
}
{ if((substr(u1,1,4)) == "PURE")
{ if((substr(u2,1,8)) == "FUNCTION")
{ n_unit=(n_unit) + 1 }
}
}
{ if((substr(u1,1,9)) == "RECURSIVE")
{ if((substr(u2,1,10)) == "SUBROUTINE")
{ n_unit=(n_unit) + 1 }
......
#!/bin/bash
#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
#MNH_LIC for details. version 1.
#set -x
if [ $# -ne 2 ]
then
echo ERROR USAGE :: spll NSOURCE file
exit 1
fi
NSOURCE=$1
file=$2
DIRNAME=`dirname $file`
BASENAME=`basename $file`
SUF=`echo $BASENAME | awk -F'.' '{print$2}'`
BASENAME2=`basename $BASENAME .$SUF`
LOCAL=$PWD
TOCASE=${TOCASE-"tolower"}
#
export PERL5LIB=$SRC_MESONH/bin
export FILE_WITHOUT_INTERFACE_NEDEED="\
rttov.*.F90|rttvi.F90|tstrad.*.F90|\
ch_f77.fx90|nband_model.fx90|BASIC.f90|mode_tmat.f90|\
ini_cmfshall.f90|mode_double_double.f90|mode_fgau.f90|\
extern_usersurc_ll.f90|\
extern_userio.f90|fmreadwrit.f90|fm_read_ll.f90|poub.f90|\
mode_glt.*.F90|\
rrtm_.*.F90|srtm_.*.F90|\
libs4py.f90|\
ec_meminfo.F90"
#
if [ "$SUF" = "f" ]
then
spllbase="spll_$BASENAME2"
spllfile="$spllbase.$SUF"
echo "!depfile:$BASENAME2.D" > $DIRNAME/$spllfile
cat $file >> $DIRNAME/$spllfile
echo "#=========== $BASENAME2.$SUF dependence ==========================" > $DIRNAME/$BASENAME2.D
echo $spllbase.o : $spllfile >> $DIRNAME/$BASENAME2.D
echo " "' $(F77) -I$(OBJDIR)/MOD $(INC) -c $(F77FLAGS) $<' >> $DIRNAME/$BASENAME2.D
echo " -mv $spllbase.o $spllbase.lst "' $(OBJDIR)/. || '"echo OK $spllbase.o " >> $DIRNAME/$BASENAME2.D
echo " -rm -f ${spllbase}_1.acc.? || echo OK $spllbase.acc " >> $DIRNAME/$BASENAME2.D
else
TMP=/tmp/split.${USER}.$$
mkdir $TMP
trap "[ -d $TMP ] && rm -rf $TMP" 0
export LOC_INTFBDIR=$TMP
export INTFBDIR=$TMP
#cp $file $TMP/fichier_a_split.f90
cp $file $TMP/$BASENAME
echo DIRNAME=$DIRNAME BASENAME=$BASENAME
#
# Split des sources
#
(
cd $TMP
spl ${BASENAME} > liste_file
)
#
#generation de l'interface
#
(
cd $TMP
if [ "`ls modi_* 2>/dev/null`" = "" ]
then
if [ "`echo $BASENAME | egrep -i $FILE_WITHOUT_INTERFACE_NEDEED `" = "" ]
then
for sfile in `cat liste_file`
do
if [ "`egrep -i '^ *module|^ *program' $sfile`" = "" ]
then
if [ "$SUF" = "f90" ]
then
if [ "${CHECK_MODI}" != "" ]
then
#echo "HELLO JUAN OK :: $sfile "
BASENAME_MODI=$( basename $sfile .$SUF )
echo "!auto_modi_in_contains" > $sfile.tmp
echo "module modi_${BASENAME_MODI}" >> $sfile.tmp
echo " contains " >> $sfile.tmp
cat $sfile >> $sfile.tmp
echo "end module modi_${BASENAME_MODI}" >> $sfile.tmp
mv $sfile.tmp $sfile
else
make_intfbl_f90.pl $sfile
fi
elif [ "$SUF" = "fx90" ]
then
make_intfbl_f77.pl $sfile
fi
fi
done
fi
fi
ls -1 $TMP > liste_file
egrep -v "liste_file" liste_file > liste_file2
)
#
# génération des dependances
#
(
cd $TMP
echo "#=========== $BASENAME2.$SUF dependence ==========================" > $DIRNAME/$BASENAME2.D
for sfile in `cat liste_file2`
do
#
# preparation of splitted file
#
base=`echo $sfile | awk -F'.' '{print$1}'`
spllbase="spll_$base"
spllfile="$spllbase.$SUF"
echo "#---------------------- splitted $spllfile dependence -----------" >> $DIRNAME/$BASENAME2.D
#
echo "!depfile:$BASENAME2.D" > $spllfile
#
if [ "`grep -l '^[^\!]*\$n' $sfile`" != "" ]
then
# clonage of "$n" file
let iloop=0
while [ $iloop -lt $NSOURCE ]
do
let iloop=iloop+1
sed -e 's/$n/'$iloop'/g' $sfile >> $spllfile
done
else
cat $sfile >> $spllfile
fi
#
# if splitted file differente of old one, update ...
#
if [ "`diff $spllfile $DIRNAME/$spllfile 2>&1 `" != "" ]
then
cp $spllfile $DIRNAME/$spllfile
touch $DIRNAME/$BASENAME2.D
fi
dep=`egrep -i "^[[:space:]]*use " $spllfile | sed -e 's/,/ /g' | awk '{ print '${TOCASE}'($2)".mod"}' | sort -u `
mod=`egrep -i "^[[:space:]]*module " $spllfile | sed -e 's/,/ /g' | awk '{ print '${TOCASE}'($2)".mod"}' | sort -u | grep -iv procedure `
if [ "x$mod" != "x" ]
then
echo $spllbase.o : >> $DIRNAME/$BASENAME2.D
echo $mod : $spllfile $dep >> $DIRNAME/$BASENAME2.D
else
echo $spllbase.o : $spllfile $dep >> $DIRNAME/$BASENAME2.D
fi
if [ "$SUF" = "f90" ]
then
echo " "' $(F90) -I$(OBJDIR)/MOD $(INC) -c $(F90FLAGS) $<' >> $DIRNAME/$BASENAME2.D
else
echo " "' cp $< $(OBJDIR)/$(*F).f ' >> $DIRNAME/$BASENAME2.D
echo " "' $(FX90) -I$(OBJDIR)/MOD $(INC) -c $(FX90FLAGS) $(OBJDIR)/$(*F).f ' >> $DIRNAME/$BASENAME2.D
echo " "' rm $(OBJDIR)/$(*F).f ' >> $DIRNAME/$BASENAME2.D
fi
echo " -mv $spllbase.o $spllbase.lst "' $(OBJDIR)/. || '"echo OK $spllbase.o " >> $DIRNAME/$BASENAME2.D
echo " -rm -f ${spllbase}_1.acc.? || echo OK $spllbase.acc " >> $DIRNAME/$BASENAME2.D
for filemod in $mod
do
echo " -mv $filemod "' $(OBJDIR)/MOD/. || '"echo OK $filemod " >> $DIRNAME/$BASENAME2.D
done
unset dep mod
done
touch $DIRNAME/$BASENAME2.D
)
rm -fr $TMP
fi
#!/bin/bash
#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
#MNH_LIC for details. version 1.
#set -x
if [ $# -ne 2 ]
then
echo ERROR USAGE :: spll NSOURCE file
exit 1
fi
NSOURCE=$1
file=$2
DIRNAME=`dirname $file`
BASENAME=`basename $file`
SUF=`echo $BASENAME | awk -F'.' '{print$2}'`
BASENAME2=`basename $BASENAME .$SUF`
LOCAL=$PWD
TOCASE=${TOCASE-"tolower"}
#
export PERL5LIB=$SRC_MESONH/bin
export FILE_WITHOUT_INTERFACE_NEDEED="\
rttov.*.F90|rttvi.F90|tstrad.*.F90|\
ch_f77.fx90|nband_model.fx90|BASIC.f90|mode_tmat.f90|\
ini_cmfshall.f90|mode_double_double.f90|mode_fgau.f90|\
extern_usersurc_ll.f90|\
extern_userio.f90|fmreadwrit.f90|fm_read_ll.f90|poub.f90|\
mode_glt.*.F90|\
rrtm_.*.F90|srtm_.*.F90|\
libs4py.f90|\
ec_meminfo.F90"
#
if [ "$SUF" = "f" ]
then
echo "!depfile:$BASENAME2.D" > $DIRNAME/spll_$BASENAME
cat $file >> $DIRNAME/spll_$BASENAME
echo "#" $file > $DIRNAME/$BASENAME2.D
else
TMP=/tmp/split.${USER}.$$
mkdir $TMP
trap "[ -d $TMP ] && rm -rf $TMP" 0
export LOC_INTFBDIR=$TMP
export INTFBDIR=$TMP
#cp $file $TMP/fichier_a_split.f90
cp $file $TMP/$BASENAME
echo DIRNAME=$DIRNAME BASENAME=$BASENAME
#
# Split des sources
#
(
cd $TMP
spl ${BASENAME} > liste_file
)
#
#generation de l'interface
#
(
cd $TMP
if [ "`ls modi_* 2>/dev/null`" = "" ]
then
if [ "`echo $BASENAME | egrep -i $FILE_WITHOUT_INTERFACE_NEDEED `" = "" ]
then
for sfile in `cat liste_file`
do
if [ "`egrep -i '^ *module|^ *program' $sfile`" = "" ]
then
if [ "$SUF" = "f90" ]
then
if [ "${CHECK_MODI}" != "" ]
then
#echo "HELLO JUAN OK :: $sfile "
BASENAME_MODI=$( basename $sfile .$SUF )
echo "!auto_modi_in_contains" > $sfile.tmp
echo "module modi_${BASENAME_MODI}" >> $sfile.tmp
echo " contains " >> $sfile.tmp
cat $sfile >> $sfile.tmp
echo "end module modi_${BASENAME_MODI}" >> $sfile.tmp
mv $sfile.tmp $sfile
else
make_intfbl_f90.pl $sfile
fi
elif [ "$SUF" = "fx90" ]
then
make_intfbl_f77.pl $sfile
fi
fi
done
fi
fi
ls -1 $TMP > liste_file
egrep -v "liste_file" liste_file > liste_file2
)
#
# génération des dependances
#
(
cd $TMP
echo "#=========== $BASENAME2.$SUF dependence ==========================" > $DIRNAME/$BASENAME2.D
for sfile in `cat liste_file2`
do
#
# preparation of splitted file
#
base=`echo $sfile | awk -F'.' '{print$1}'`
spllbase="spll_$base"
spllfile="$spllbase.$SUF"
echo "#---------------------- splitted $spllfile dependence -----------" >> $DIRNAME/$BASENAME2.D
#
echo "!depfile:$BASENAME2.D" > $spllfile
#
if [ "`grep -l '^[^\!]*\$n' $sfile`" != "" ]
then
# clonage of "$n" file
let iloop=0
while [ $iloop -lt $NSOURCE ]
do
let iloop=iloop+1
sed -e 's/$n/'$iloop'/g' $sfile >> $spllfile
done
else
cat $sfile >> $spllfile
fi
#
# if splitted file differente of old one, update ...
#
if [ "`diff $spllfile $DIRNAME/$spllfile 2>&1 `" != "" ]
then
cp $spllfile $DIRNAME/$spllfile
touch $DIRNAME/$BASENAME2.D
fi
dep=`egrep -i "^[[:space:]]*use " $spllfile | sed -e 's/,/ /g' | awk '{ print '${TOCASE}'($2)".mod"}' | sort -u `
mod=`egrep -i "^[[:space:]]*module " $spllfile | sed -e 's/,/ /g' | awk '{ print '${TOCASE}'($2)".mod"}' | sort -u | grep -iv procedure `
if [ "x$mod" != "x" ]
then
echo $spllbase.o : >> $DIRNAME/$BASENAME2.D
echo $mod : $spllfile $dep >> $DIRNAME/$BASENAME2.D
else
echo $spllbase.o : $spllfile $dep >> $DIRNAME/$BASENAME2.D
fi
if [ "$SUF" = "f90" ]
then
echo " "' $(F90) -I$(OBJDIR)/MOD $(INC) -c $(F90FLAGS) $<' >> $DIRNAME/$BASENAME2.D
else
echo " "' cp $< $(OBJDIR)/$(*F).f ' >> $DIRNAME/$BASENAME2.D
echo " "' $(FX90) -I$(OBJDIR)/MOD $(INC) -c $(FX90FLAGS) $(OBJDIR)/$(*F).f ' >> $DIRNAME/$BASENAME2.D
echo " "' rm $(OBJDIR)/$(*F).f ' >> $DIRNAME/$BASENAME2.D
fi
echo " -mv $spllbase.o"' $(OBJDIR)/. || '"echo OK $spllbase.o " >> $DIRNAME/$BASENAME2.D
for filemod in $mod
do
echo " -mv $filemod "' $(OBJDIR)/MOD/. || '"echo OK $filemod " >> $DIRNAME/$BASENAME2.D
done
unset dep mod
done
touch $DIRNAME/$BASENAME2.D
)
rm -fr $TMP
fi
......@@ -126,6 +126,17 @@ export VERSION_NCL=${VERSION_NCL}
#
export MNH_MEGAN=${MNH_MEGAN}
#
# Use MNH_EXPAND if VER_MNHEXP=MNHEXPAUTO
#
export VER_MNHEXP=${VER_MNHEXP}
if [ "x${VER_MNHEXP}" == "xMNHEXPAUTO" ] ;then
export VERSION_MNHEXP=${VERSION_MNHEXP}
export VERSION_FILEPP=${VERSION_FILEPP}
export FILEPP=\${SRC_MESONH}/pub/FILEPP
export PATH=\${FILEPP}/MNH_Expand_Array-\${VERSION_MNHEXP}:\${PATH}
export PATH=\${FILEPP}/FILEPP-\${VERSION_FILEPP}/bin:\${PATH}
export MANPATH=\${FILEPP}/FILEPP-\${VERSION_FILEPP}/share/man:\${MANPATH}
fi
##########################################################
##########################################################
##########################################################
......
File added
#
# source file get form here
#
wget https://github.com/JuanEscobarMunoz/MNH_Expand_Array/archive/refs/tags/MNH_EXPAND_1-2-2.tar.gz
wget https://www-users.york.ac.uk/~dm26/filepp/filepp-1.8.0.tar.gz
#
# For installation , look MesoNH main configure script
# Looking for VER_MNHEXP variable
#
File added
/*
* Copyright -2022 Hewlett Packard Enterprise Development LP
*/
void __cce_floatingpt_gu( void ); // Gradual Underflow.
static void (*p)(void) __attribute__((section(".init_array"))) = __cce_floatingpt_gu;
#define DENORMS_ARE_ZEROS 6
#define FLUSH_TO_ZERO_MASK 15
void __cce_floatingpt_gu( void )
{
unsigned long gu_src = (1 << DENORMS_ARE_ZEROS);
unsigned long gu_dst = (1 << FLUSH_TO_ZERO_MASK);
do {
unsigned long __mxcsr;
__asm__ volatile("stmxcsr %0" : : "m" (__mxcsr));
__mxcsr &= ~(gu_src | gu_dst);
__asm__ volatile("ldmxcsr %0" : : "m" (__mxcsr));
}
while (0);
}
Copyright (c) 2013, Andrea Arteaga
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
Neither the name of the {organization} nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This diff is collapsed.
This diff is collapsed.
Bit-reproductible math functions.
Original source: https://github.com/andyspiros/bitrep
Modified by Philippe Wautelet
Added a Fortran 2003 module file to interface Fortran and C