Changeset 1528 for trunk/libIGCM
- Timestamp:
- 05/11/20 08:37:51 (4 years ago)
- Location:
- trunk/libIGCM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libIGCM/libIGCM_config/libIGCM_config.ksh
r1527 r1528 661 661 eval ${comp}_PROC_OMP=0 662 662 663 # DEP is the factor to increase the number of cores per process 664 eval ${comp}_PROC_DEP=0 665 666 # DEDICATED is the flag to activate the use of dedicated node for XIOS server only 667 eval ${comp}_OK_DEDICATED=0 668 663 669 # Only if we really have an executable for the component : 664 670 if ( [ "X${ExeNameIn}" != X\"\" ] && [ "X${ExeNameIn}" != "Xinca.dat" ] ) ; then … … 677 683 eval ${comp}_PROC_OMP=1 678 684 eval ${comp}_PROC_NOD=1 685 eval ${comp}_PROC_DEP=1 679 686 680 687 eval NbElts=\${#config_Executable_${comp}[@]} 681 682 688 if [ ${NbElts} -gt 2 ] ; then 683 689 # … … 710 716 OK_PARA_MPI=true 711 717 ;; 718 *[dD][eE][pP]*) 719 # Read DEP parameter for composante 720 eval ${comp}_PROC_DEP=$( echo ${tempvar} | tr '[a-z]' '[A-Z]' | sed -e "s/DEP//" ) 721 ;; 722 *[dD][eE][dD][iI][cC][aA][tT][eE][dD]*) 723 # Read DEDICATED parameter for composante 724 eval ${comp}_OK_DEDICATED=1 712 725 esac 713 726 (( i = i + 1 )) … … 736 749 fi 737 750 fi 751 if ( [ ${comp}_OK_DEDICATED -eq 1 ] && [ "${comp}" != "IOS" ] ) ; then 752 IGCM_debug_Print 2 "Error using DEDICATED parameter !!!" 753 IGCM_debug_Exit "DEDICATED parameter is only available for IOS component " 754 IGCM_debug_Exit "Check your config.card. Exit now" 755 IGCM_debug_Verif_Exit 756 fi 738 757 739 758 eval tempvarMPI=\${${comp}_PROC_MPI} 740 759 eval tempvarNOD=\${${comp}_PROC_NOD} 741 760 eval tempvarOMP=\${${comp}_PROC_OMP} 761 eval tempvarDEP=\${${comp}_PROC_DEP} 742 762 743 763 # set OMP mode if more than 1 OMP thread. … … 751 771 (( coreNumber = coreNumber + tempvarNOD * NB_CORE_PER_NODE )) 752 772 else 753 (( coreNumber = coreNumber + tempvarMPI * tempvarNOD * tempvarOMP ))773 (( coreNumber = coreNumber + tempvarMPI * tempvarNOD * tempvarOMP * tempvarDEP )) 754 774 fi 755 775 # SUM UP NUMBER OF MPI TASKS -
trunk/libIGCM/libIGCM_sys/libIGCM_sys_irene-amd.ksh
r1524 r1528 1149 1149 file=$1 1150 1150 1151 # In case of use of DEDICATED option XIOS servers, do not share xios nodes with xios clients 1152 # Compute the number of core to add to force the use of a new node for xios servers 1153 if [ ${IOS_OK_DEDICATED} -eq 1 ] ; then 1154 (( current_core_noxios = coreNumber - IOS_PROC_MPI * IOS_PROC_OMP * IOS_PROC_DEP )) 1155 (( first_comp_proc_dep_loc = 1 + NB_CORE_PER_NODE - current_core_noxios % NB_CORE_PER_NODE )) 1156 (( second_comp_proc_mpi_loc = IOS_PROC_MPI - 1 )) 1157 (( coreNumber = current_core_noxios + first_comp_proc_dep_loc + second_comp_proc_mpi_loc * IOS_PROC_OMP * IOS_PROC_DEP )) 1158 fi 1159 1151 1160 if [ ${executionType} -eq 1 ] ; then 1152 1161 # MPMD + MPI 1153 1162 sed -e "/::openMPthreads::/d" \ 1154 1163 -e "s/::JobNumProcTot::/${coreNumber}/" \ 1155 -e "/#MSUB -x/d" \1156 1164 ${file} > ${file}.tmp 1157 1165 … … 1270 1278 eval comp_proc_mpi_loc=\${${comp}_PROC_MPI} 1271 1279 eval comp_proc_omp_loc=\${${comp}_PROC_OMP} 1272 echo "${comp_proc_mpi_loc} ./${ExeNameOut}" >> run_file 1280 eval comp_proc_dep_loc=\${${comp}_PROC_DEP} 1281 1282 # In case of use of DEDICATED option XIOS servers, do not share xios nodes with xios clients 1283 # Compute the number of core to add to force the use of a new node for xios servers 1284 if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" = "XIOS" ] ) ; then 1285 if [ ${IOS_OK_DEDICATED} -eq 1 ] ; then 1286 (( current_core_noxios = coreNumber - comp_proc_mpi_loc * comp_proc_dep_loc )) 1287 (( first_comp_proc_dep_loc = 1 + NB_CORE_PER_NODE - current_core_noxios % NB_CORE_PER_NODE )) 1288 (( second_comp_proc_mpi_loc = comp_proc_mpi_loc - 1 )) 1289 if [ ${comp_proc_dep_loc} -lt ${first_comp_proc_dep_loc} ] ; then 1290 echo "1-${first_comp_proc_dep_loc} ./${ExeNameOut}" >>run_file 1291 if [ ${comp_proc_mpi_loc} -gt 1 ] ; then 1292 echo "${second_comp_proc_mpi_loc}-${comp_proc_dep_loc} ./${ExeNameOut}" >>run_file 1293 fi 1294 else 1295 echo "${comp_proc_mpi_loc}-${comp_proc_dep_loc} ./${ExeNameOut}" >>run_file 1296 fi 1297 else 1298 echo "${comp_proc_mpi_loc}-${comp_proc_dep_loc} ./${ExeNameOut}" >>run_file 1299 fi 1300 else 1301 echo "${comp_proc_mpi_loc}-${comp_proc_dep_loc} ./${ExeNameOut}" >>run_file 1302 fi 1303 1304 1273 1305 fi 1274 1306 done 1307 1308 ## module advised by TGCC (instead of 2 variables) 1309 module load feature/bridge/heterogenous_mpmd 1275 1310 1276 1311 EXECUTION="${HOST_MPIRUN_COMMAND} -f ./run_file" … … 1432 1467 eval comp_proc_mpi_loc=\${${comp}_PROC_MPI} 1433 1468 eval comp_proc_omp_loc=\${${comp}_PROC_OMP} 1469 eval comp_proc_dep_loc=\${${comp}_PROC_DEP} 1470 1471 # Compute number of cores per process 1472 (( comp_proc_omp_dep_loc = comp_proc_omp_loc * comp_proc_dep_loc )) 1434 1473 1435 1474 # Build script files … … 1467 1506 # Complete run_file 1468 1507 1469 echo "${comp_proc_mpi_loc}-${comp_proc_omp_loc} env OMP_NUM_THREADS=${comp_proc_omp_loc} ./script_${ExeNameOut}.ksh " >>run_file 1508 # In case of use of DEDICATED option XIOS servers, do not share xios nodes with xios clients 1509 # Compute the number of core to add to force the use of a new node for xios servers 1510 if ( [ "X${ExeNameOut}" != X\"\" ] && [ "X${comp}" = "XIOS" ] ) ; then 1511 if [ ${IOS_OK_DEDICATED} -eq 1 ] ; then 1512 (( current_core_noxios = coreNumber - comp_proc_mpi_loc * comp_proc_omp_dep_loc )) 1513 (( first_comp_proc_dep_loc = 1 + NB_CORE_PER_NODE - current_core_noxios % NB_CORE_PER_NODE )) 1514 (( second_comp_proc_mpi_loc = comp_proc_mpi_loc - 1 )) 1515 if [ ${comp_proc_omp_dep_loc} -lt ${first_comp_proc_dep_loc} ] ; then 1516 echo "1-${first_comp_proc_dep_loc} env OMP_NUM_THREADS=1 ./script_${ExeNameOut}.ksh " >>run_file 1517 if [ ${comp_proc_mpi_loc} -gt 1 ] ; then 1518 echo "${second_comp_proc_mpi_loc}-${comp_proc_omp_dep_loc} ./${ExeNameOut}" >>run_file 1519 fi 1520 else 1521 echo "${comp_proc_mpi_loc}-${comp_proc_omp_dep_loc} env OMP_NUM_THREADS=1 ./script_${ExeNameOut}.ksh " >>run_file 1522 fi 1523 else 1524 echo "${comp_proc_mpi_loc}-${comp_proc_omp_dep_loc} env OMP_NUM_THREADS=1 ./script_${ExeNameOut}.ksh " >>run_file 1525 fi 1526 else 1527 echo "${comp_proc_mpi_loc}-${comp_proc_omp_dep_loc} env OMP_NUM_THREADS=${comp_proc_omp_loc} ./script_${ExeNameOut}.ksh " >>run_file 1528 fi 1470 1529 1471 1530 fi
Note: See TracChangeset
for help on using the changeset viewer.