-
Notifications
You must be signed in to change notification settings - Fork 2
/
runs.hoc
112 lines (102 loc) · 2.26 KB
/
runs.hoc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// can do use2phase 0, 1 for method 2,3
// can do use2interval 1, 2 for method 2,3,4
// enough n_xcell to make method 4 entirely overlapping
// enough compress_bufsize so method 1 only allgather.
// strong scaling with 256 cells on 8K ncon = 1000
// weak scaling with 256 on all processor numbers ncon=1000
// strong with 64 on 8k ncon = 10000
// weak scaling with 64 on all processor numbers ncon=10000
done = 0
{load_file("init.hoc")}
// weak scaling
if (runs == 1) {
seq = 0
ncellpow = log(256*pc.nhost)/log(2)
mkmodel(ncellpow, 1000)
{use2phase = 0 doseries(12)}
{use2phase = 1 doseries(2)}
}
if (runs == 2) {
seq = 6
ncellpow = log(32*pc.nhost)/log(2)
mkmodel(ncellpow, 10000)
{use2phase = 0 doseries(12)}
{use2phase = 1 doseries(2)}
}
// strong scaling
if (runs == 3) {
if (pc.nhost > 9000) {
seq = 12
ncellpow = log(256*8192)/log(2)
mkmodel(ncellpow, 1000)
{use2phase = 0 doseries(12)}
{use2phase = 1 doseries(2)}
}
}
if (runs == 4) {
if (pc.nhost > 9000) {
seq = 18
ncellpow = log(32*8192)/log(2)
mkmodel(ncellpow, 10000)
{use2phase = 0 doseries(12)}
{use2phase = 1 doseries(2)}
}
}
// special cases
if (runs == 5) {
seq = 24
ncellpow = log(256*pc.nhost)/log(2)
mkmodel(ncellpow, 1000)
use2interval=-1
mk_extra_cells(0)
compress_bufsize=20 doseries(1)
compress_bufsize=40 doseries(1)
}
// look at effect of bursting, gid distribution, and connection pattern
if (runs == 6) {
if (use2interval == -1) use2interval=0
ncellpow = log(256*pc.nhost)/log(2)
for giddist=0, 1 {
for constyle=0, 1 {
mkmodel(ncellpow, 1000)
set_burst(0, 1)
doseries(series)
another()
set_burst(ncellpow - 3, .2)
another()
}
}
}
if (runs == 7) {
nseq=9
use2interval=0
ncellpow = log(256*pc.nhost)/log(2)
for giddist=1, 1 {
for constyle=1, 1 {
mkmodel(ncellpow, 1000)
set_burst(0, 1)
doseries(series)
another()
set_burst(ncellpow - 3, .2)
another()
}
}
use2interval=1
for giddist=1, 1 {
for constyle=0, 1 {
mkmodel(ncellpow, 1000)
set_burst(0, 1)
doseries(series)
another()
set_burst(ncellpow - 3, .2)
another()
}
}
}
// left overs to complete table
if (runs == 64) { // for 64K cores
seq = 60
ncellpow = log(256*8192)/log(2) mkmodel(ncellpow, 1000)
use2phase = 1 doseries(2)
}
finish()