You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: scripts/summit/gen_erf_summit.sh
+61-66Lines changed: 61 additions & 66 deletions
Original file line number
Diff line number
Diff line change
@@ -1,86 +1,67 @@
1
1
#!/usr/bin/perl
2
2
3
-
#A script to generate ERF files for Summit job placement
4
-
5
-
###################################### USER SHOULD EDIT ###################################################################################
6
-
$nhosts=17; #should be the number of hosts (nodes) that the application will run on, plus one for the provDB and pserver. The job script should allocate this many nodes
7
-
$nranks_per_host=6; #number of MPI ranks per host (node) for the application
3
+
if(scalar@ARGV != 5){
4
+
print"Expect: <total number of nodes> <ranks per node> <cores per rank main> <gpus per rank main> <cores per host for AD>\n";
5
+
exit 1;
6
+
}
8
7
9
-
#NB total ranks is ($nhosts -1) * $nranks_per_host
10
8
11
-
$ncores_per_rank_ad=1; #the number of cores to assign per MPI rank to the AD instances. Remaining cores on socket are divided evenly over the ranks of the application
12
-
$ngpus_per_rank_main=1; #number of GPUs per MPI rank for the application
13
-
$use_provdb=1; #disable provdb if 0
14
-
###################################### END OF USER EDITED SECTION ###################################################################################
9
+
$nhosts=$ARGV[0]; #should be the number of hosts (nodes) that the application will run on, plus one for the provDB and pserver. The job script should allocate this many nodes
10
+
$nranks_per_host=${ARGV[1]}; #number of MPI ranks per host (node) for the application
11
+
$ncores_per_rank_main=${ARGV[2]}; #the number of cores to assign per MPI rank to the main app
12
+
$ngpus_per_rank_main=${ARGV[3]}; #number of GPUs per MPI rank for the application
13
+
$ncores_per_host_ad = ${ARGV[4]}; #number of cores to reserve for Chimbuko AD. Should be divisible by 2 to divide over the 2 sockets
14
+
$nthreads_per_rank_ad = 4; #The number of hardware threads per rank of the AD. The are are 4 hardware threads per core, hence if this is set to 4 the AD will have an entire core per rank.
15
15
16
16
if($ngpus_per_rank_main * $nranks_per_host > 6){
17
17
print"Error: too many GPUs per rank\n";
18
18
exit;
19
19
}
20
20
21
-
$nranks_total = ($nhosts -1) * $nranks_per_host;
22
-
print"Generating ERF files for ${nranks_total} ranks\n";
23
-
24
21
#Summit characteristics
25
22
$ncores_host=42; #cores per node
26
23
$ncores_socket=21; #cores per socket
24
+
$nthreads_core=4; #hardware threads per core
27
25
$socket_offset_core = 88; #core offset of second socket: 22nd physical core on each socket reserved for OS
28
-
$socket_offset_gpu = 3; #4 GPUs per socket
29
-
30
-
#Do the assignment per socket rather than per node to prevent splitting of ranks across sockets
0 commit comments