Changeset 1238
- Timestamp:
- 10/05/15 15:19:53 (9 years ago)
- Location:
- trunk/libIGCM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libIGCM/AA_job
r1201 r1238 8 8 #-Q- curie #MSUB -eo 9 9 #-Q- curie #MSUB -n ::JobNumProcTot:: # Number of MPI tasks (SPMD case) or cores (MPMD case) 10 #-Q- curie #MSUB -c ::openMPthreads:: # Number of openMP threads. To specify only for SMPD 11 #-Q- curie #MSUB -x # exclusive node. To specify only for MPMD together with the one below 12 #-Q- curie #MSUB -E '--cpu_bind=none' 10 13 #-Q- curie #MSUB -T 86400 # Wall clock limit (seconds) 11 14 #-Q- curie #MSUB -q standard # thin nodes 12 15 #-Q- curie #MSUB -A ::default_project:: 13 #-Q- curie14 16 #-Q- curie # Below specific options that can be activated 15 17 #-Q- curie ##MSUB -q ivybridge # Option for Airain 16 #-Q- curie ##MSUB -N 8 # Number of nodes (16 cores per node) 17 #-Q- curie ##MSUB -c 8 # Number of openMP threads. To specify only for SMPD 18 #-Q- curie ##MSUB -x # exclusive node. To specify only for MPMD together with the one below 19 #-Q- curie ##MSUB -E '--cpu_bind=none' 18 20 19 #-Q- curie 21 20 #-Q- curie BATCH_NUM_PROC_TOT=$BRIDGE_MSUB_NPROC … … 39 38 #-Q- ada # @ wall_clock_limit = 1:00:00 40 39 #-Q- ada # Specific option for OpenMP parallelization: Number of OpenMP threads per MPI task 41 #-Q- ada # ## @ parallel_threads = 440 #-Q- ada # @ parallel_threads = ::openMPthreads:: 42 41 #-Q- ada # End of the header options 43 42 #-Q- ada # @ queue -
trunk/libIGCM/ins_job
r1230 r1238 226 226 echo "ins_job stops here" 227 227 echo "=> The variable ExpType must be added in config.card in section UserChoices" 228 echo "=> ExpType gives the directory for the .card configur taion files for the wanted experiement. For exemple ExpType=IPSLCM5/historical"228 echo "=> ExpType gives the directory for the .card configuration files for the wanted experiement. For exemple ExpType=IPSLCM5/historical" 229 229 exit 4 230 230 else … … 257 257 \cp ${F_RCI} ${j}; 258 258 } 259 260 #================================== 261 # Read Executable section: 262 IGCM_card_DefineArrayFromSection ${j}'/'${F_CFG} Executable 263 264 # Define the execution context (MPMD, SPMD, MPI/OMP ...) 265 IGCM_config_ConfigureExexution 266 267 # coreNumber : TOTAL NUMBER OF CORES 268 # mpiTasks : TOTAL NUMBER OF MPI TASKS 269 # openMPthreads : NUMBER OF OpenMP THREADS 259 270 260 271 # File name for Job … … 270 281 ${F_JOB} > ${j}'/'${n_f} 271 282 chmod u+x ${j}'/'${n_f} 283 284 # update Headers so that ressources description are accurate (MPMD/SPMD/...) 285 IGCM_sys_updateHeaders ${j}'/'${n_f} 272 286 done 287 273 288 #- 274 289 # Extract list of AA_* files in libIGCM -
trunk/libIGCM/libIGCM_config/libIGCM_config.ksh
r1235 r1238 584 584 coreNumber=0 585 585 mpiTasks=0 586 openMPthreads=0 586 587 NbExec=0 587 588 … … 679 680 [ ${tempvarOMP} -ge 2 ] && OK_PARA_OMP=true 680 681 682 # Number of OMP threads 683 [ ${openMPthreads} -lt ${tempvarOMP} ] && openMPthreads=${tempvarOMP} 684 681 685 # SUM UP NUMBER OF CORES 682 686 (( coreNumber = coreNumber + tempvarMPI * tempvarNOD * tempvarOMP )) … … 692 696 # Define the execution type we are running in 693 697 if [ ${OK_PARA_MPMD} ] ; then 694 # MPMD always implies MPI695 698 if [ ${OK_PARA_MPI} ] ; then 699 # MPMD always implies MPI 696 700 executionType=1 697 701 fi 698 # MPMD + MPI/OMP699 702 if [ ${OK_PARA_OMP} ] ; then 703 # MPMD + MPI/OMP 700 704 executionType=2 701 705 fi 702 706 else 703 # SPMD + MPI/OMP704 707 if ( [ ${OK_PARA_MPI} ] && [ ${OK_PARA_OMP} ] ) ; then 708 # SPMD + MPI/OMP 705 709 executionType=3 710 elif ( [ ${OK_PARA_MPI} ] && [ ! ${OK_PARA_OMP} ] ) ; then 706 711 # SPMD + MPI only 707 elif ( [ ${OK_PARA_MPI} ] && [ ! ${OK_PARA_OMP} ] ) ; then708 712 executionType=4 713 elif ( [ ! ${OK_PARA_MPI} ] && [ ${OK_PARA_OMP} ] ) ; then 709 714 # SPMD + OMP only 710 elif ( [ ! ${OK_PARA_MPI} ] && [ ${OK_PARA_OMP} ] ) ; then711 715 executionType=5 716 elif ( [ ! ${OK_PARA_MPI} ] && [ ! ${OK_PARA_OMP} ] ) ; then 712 717 # SEQUENTIAL THEN 713 elif ( [ ! ${OK_PARA_MPI} ] && [ ! ${OK_PARA_OMP} ] ) ; then714 718 executionType=6 715 719 coreNumber=1 -
trunk/libIGCM/libIGCM_sys/libIGCM_sys_ada.ksh
r1236 r1238 912 912 913 913 IGCM_debug_PopStack "IGCM_sys_desactiv_variables" 914 } 915 916 ############################################################ 917 # Update job headers to be used by the scheduler 918 919 #D-#================================================== 920 #D-function IGCM_sys_updateHeaders 921 #D-* Purpose: Update job headers to be used by the scheduler 922 #D-* Examples: IGCM_sys_updateHeaders /path/to/Job_MYEXP 923 #D- 924 function IGCM_sys_updateHeaders { 925 IGCM_debug_PushStack "IGCM_sys_updateHeaders" 926 if ( $DEBUG_sys ) ; then 927 echo "IGCM_sys_updateHeaders" 928 fi 929 typeset file 930 file=$1 931 932 if [ ${executionType} -eq 1 ] ; then 933 # MPMD + MPI 934 sed -e "/::openMPthreads::/d" \ 935 -e "s/::JobNumProcTot::/${coreNumber}/" \ 936 ${file} > ${file}.tmp 937 938 elif [ ${executionType} -eq 2 ] ; then 939 # MPMD + MPI + OMP 940 sed -e "s/::openMPthreads::/${openMPthreads}/" \ 941 -e "s/::JobNumProcTot::/${coreNumber}/" \ 942 ${file} > ${file}.tmp 943 944 elif [ ${executionType} -eq 3 ] ; then 945 # SPMD + MPI/OMP 946 sed -e "s/::openMPthreads::/${openMPthreads}/" \ 947 -e "s/::JobNumProcTot::/${mpiTasks}/" \ 948 ${file} > ${file}.tmp 949 950 elif [ ${executionType} -eq 4 ] ; then 951 # SPMD + MPI only 952 sed -e "s/::JobNumProcTot::/${mpiTasks}/" \ 953 -e "/::openMPthreads::/d" \ 954 ${file} > ${file}.tmp 955 956 elif [ ${executionType} -eq 5 ] ; then 957 # SPMD + OMP only 958 sed -e "s/::openMPthreads::/${openMPthreads}/" \ 959 -e "s/@\ job_type\ =\ parallel/@\ job_type\ =\ serial/" \ 960 -e "/::JobNumProcTot::/d" \ 961 ${file} > ${file}.tmp 962 963 elif [ ${executionType} -eq 6 ] ; then 964 # SEQUENTIAL THEN 965 sed -e "s/::JobNumProcTot::/1/" \ 966 -e "s/@\ job_type\ =\ parallel/@\ job_type\ =\ serial/" \ 967 -e "/::openMPthreads::/d" \ 968 ${file} > ${file}.tmp 969 970 fi 971 972 IGCM_sys_Mv ${file}.tmp ${file} 973 974 IGCM_debug_PopStack "IGCM_sys_updateHeaders" 914 975 } 915 976 -
trunk/libIGCM/libIGCM_sys/libIGCM_sys_curie.ksh
r1234 r1238 1084 1084 1085 1085 ############################################################ 1086 # Update job headers to be used by the scheduler 1087 1088 #D-#================================================== 1089 #D-function IGCM_sys_updateHeaders 1090 #D-* Purpose: Update job headers to be used by the scheduler 1091 #D-* Examples: IGCM_sys_updateHeaders /path/to/Job_MYEXP 1092 #D- 1093 function IGCM_sys_updateHeaders { 1094 IGCM_debug_PushStack "IGCM_sys_updateHeaders" 1095 if ( $DEBUG_sys ) ; then 1096 echo "IGCM_sys_updateHeaders" 1097 fi 1098 typeset file 1099 file=$1 1100 1101 if [ ${executionType} -eq 1 ] ; then 1102 # MPMD + MPI 1103 sed -e "/::openMPthreads::/d" \ 1104 -e "s/::JobNumProcTot::/${coreNumber}/" \ 1105 ${file} > ${file}.tmp 1106 1107 elif [ ${executionType} -eq 2 ] ; then 1108 # MPMD + MPI + OMP 1109 sed -e "s/::openMPthreads::/${openMPthreads}/" \ 1110 -e "s/::JobNumProcTot::/${coreNumber}/" \ 1111 ${file} > ${file}.tmp 1112 1113 elif [ ${executionType} -eq 3 ] ; then 1114 # SPMD + MPI/OMP 1115 sed -e "s/::openMPthreads::/${openMPthreads}/" \ 1116 -e "s/::JobNumProcTot::/${mpiTasks}/" \ 1117 -e "/#MSUB\ -x/d" \ 1118 -e "/--cpu_bind=none/d" \ 1119 ${file} > ${file}.tmp 1120 1121 elif [ ${executionType} -eq 4 ] ; then 1122 # SPMD + MPI only 1123 sed -e "s/::JobNumProcTot::/${mpiTasks}/" \ 1124 -e "/::openMPthreads::/d" \ 1125 -e "/#MSUB\ -x/d" \ 1126 -e "/--cpu_bind=none/d" \ 1127 ${file} > ${file}.tmp 1128 1129 elif [ ${executionType} -eq 5 ] ; then 1130 # SPMD + OMP only 1131 sed -e "s/::openMPthreads::/${openMPthreads}/" \ 1132 -e "/::JobNumProcTot::/d" \ 1133 -e "/#MSUB\ -x/d" \ 1134 -e "/--cpu_bind=none/d" \ 1135 ${file} > ${file}.tmp 1136 1137 elif [ ${executionType} -eq 6 ] ; then 1138 # SEQUENTIAL THEN 1139 sed -e "s/::JobNumProcTot::/1/" \ 1140 -e "/::openMPthreads::/d" \ 1141 -e "/#MSUB\ -x/d" \ 1142 -e "/--cpu_bind=none/d" \ 1143 ${file} > ${file}.tmp 1144 1145 fi 1146 1147 IGCM_sys_Mv ${file}.tmp ${file} 1148 1149 IGCM_debug_PopStack "IGCM_sys_updateHeaders" 1150 } 1151 1152 ############################################################ 1086 1153 # Build MPI/OMP scripts run file (dummy function) 1087 1154 … … 1092 1159 #D- 1093 1160 function IGCM_sys_build_run_file { 1094 1095 1161 IGCM_debug_Print 3 " dummy function : IGCM_sys_build_run_file " 1096 1097 1162 } 1098 1163
Note: See TracChangeset
for help on using the changeset viewer.