-
Notifications
You must be signed in to change notification settings - Fork 40
/
sculpin.py
77 lines (69 loc) · 1.26 KB
/
sculpin.py
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
import sst
sst.setProgramOption("timebase", "100as")
import sst.macro
from sst.macro import Interconnect
swParams = {
"name" : "sculpin",
"router" : {
"seed" : "42",
"name" : "dragonfly_minimal",
},
"link" : {
"bandwidth" : "1.0GB/s",
"latency" : "100ns",
"credits" : "4KB",
},
"logp" : {
"bandwidth" : "1GB/s",
"hop_latency" : "100ns",
"out_in_latency" : "100ns",
}
}
appParams = {
"allocation" : "first_available",
"indexing" : "block",
"name" : "mpi_ping_all",
"launch_cmd" : "aprun -n 80 -N 2",
"sleep_time" : "1us",
"message_size" : "1KB",
}
memParams = {
"name" : "logp",
"bandwidth" : "10GB/s",
"latency" : "10ns",
}
nicParams = {
"name" : "sculpin",
"injection" : {
"bandwidth" : "1.0GB/s",
"latency" : "50ns",
"mtu" : "1024",
},
"ejection" : {
"latency" : "50ns",
}
}
nodeParams = {
"memory" : memParams,
"nic" : nicParams,
"app1" : appParams,
"name" : "simple",
"proc" : {
"frequency" : "2GHz",
"ncores" : "4",
}
}
topoParams = {
"name" : "dragonfly",
"geometry" : "[4,3]",
"h" : "6",
"inter_group" : "circulant",
"concentration" : "4",
}
params = {
"node" : nodeParams,
"switch" : swParams,
"topology" : topoParams,
}
ic = Interconnect(params)
ic.build()