Commit bbd232d7 authored by Hejing Li's avatar Hejing Li
Browse files

nopaxos.py: add multi client parameter

parent 5a3b22e0
...@@ -5,68 +5,80 @@ import modes.nodeconfig as node ...@@ -5,68 +5,80 @@ import modes.nodeconfig as node
host_configs = ['qemu', 'gt'] host_configs = ['qemu', 'gt']
seq_configs = ['swseq', 'ehseq'] seq_configs = ['swseq', 'ehseq']
nic_configs = ['ib', 'cb', 'cv'] nic_configs = ['ib', 'cb', 'cv']
num_client_configs = [1, 2, 3, 4]
experiments = [] experiments = []
link_rate_opt = '--LinkRate=100Gb/s ' # don't forget space at the end link_rate_opt = '--LinkRate=100Gb/s ' # don't forget space at the end
link_latency_opt = '--LinkLatency=500ns ' link_latency_opt = '--LinkLatency=500ns '
for host_config in host_configs: for num_c in num_client_configs:
for seq_config in seq_configs: for host_config in host_configs:
for nic_config in nic_configs: for seq_config in seq_configs:
e = exp.Experiment('nopaxos-' + host_config + '-' + nic_config + '-' + seq_config) for nic_config in nic_configs:
net = sim.NS3SequencerNet() e = exp.Experiment('nopaxos-' + host_config + '-' + nic_config + '-' + seq_config + f'-{num_c}')
net.opt = link_rate_opt + link_latency_opt net = sim.NS3SequencerNet()
e.add_network(net) net.opt = link_rate_opt + link_latency_opt
e.add_network(net)
# host # host
if host_config == 'qemu': if host_config == 'qemu':
host_class = sim.QemuHost host_class = sim.QemuHost
# nic # nic
if nic_config == 'ib': if nic_config == 'ib':
nic_class = sim.I40eNIC nic_class = sim.I40eNIC
nc_class = node.I40eLinuxNode nc_class = node.I40eLinuxNode
elif nic_config == 'cb': elif nic_config == 'cb':
nic_class = sim.CorundumBMNIC nic_class = sim.CorundumBMNIC
nc_class = node.CorundumLinuxNode nc_class = node.CorundumLinuxNode
elif nic_config == 'cv':
nic_class = sim.CorundumVerilatorNIC
nc_class = node.CorundumLinuxNode
else:
raise NameError(nic_config)
elif host_config == 'gt':
host_class = sim.Gem5Host
e.checkpoint = False
# nic
if nic_config == 'ib':
nic_class = sim.I40eNIC
nc_class = node.I40eLinuxNode
elif nic_config == 'cb':
nic_class = sim.CorundumBMNIC
nc_class = node.CorundumLinuxNode
elif nic_config == 'cv':
nic_class = sim.CorundumVerilatorNIC
nc_class = node.CorundumLinuxNode
else:
raise NameError(nic_config)
else: else:
continue raise NameError(host_config)
elif host_config == 'gt':
host_class = sim.Gem5Host
e.checkpoint = False
# nic
if nic_config == 'ib':
nic_class = sim.I40eNIC
nc_class = node.I40eLinuxNode
elif nic_config == 'cb':
nic_class = sim.CorundumBMNIC
nc_class = node.CorundumLinuxNode
elif nic_config == 'cv':
nic_class = sim.CorundumVerilatorNIC
nc_class = node.CorundumLinuxNode
else:
raise NameError(nic_config)
else:
raise NameError(host_config)
nc_class.disk_image = 'nopaxos'
nc_class.disk_image = 'nopaxos' if seq_config == 'ehseq':
sequencer = sim.create_basic_hosts(e, 1, 'sequencer', net, nic_class,
host_class, nc_class, node.NOPaxosSequencer, ip_start = 100)
sequencer[0].sleep = 1
if seq_config == 'ehseq': replicas = sim.create_basic_hosts(e, 3, 'replica', net, nic_class,
sequencer = sim.create_basic_hosts(e, 1, 'sequencer', net, nic_class, host_class, nc_class, node.NOPaxosReplica)
host_class, nc_class, node.NOPaxosSequencer, ip_start = 100) for i in range(len(replicas)):
sequencer[0].sleep = 1 replicas[i].node_config.app.index = i
replicas[i].sleep = 1
replicas = sim.create_basic_hosts(e, 3, 'replica', net, nic_class, clients = sim.create_basic_hosts(e, num_c, 'client', net, nic_class,
host_class, nc_class, node.NOPaxosReplica) host_class, nc_class, node.NOPaxosClient, ip_start = 4)
for i in range(len(replicas)):
replicas[i].node_config.app.index = i
replicas[i].sleep = 1
clients = sim.create_basic_hosts(e, 1, 'client', net, nic_class, for c in clients:
host_class, nc_class, node.NOPaxosClient, ip_start = 4) c.node_config.app.server_ips = ['10.0.0.1', '10.0.0.2', '10.0.0.3']
for c in clients:
c.node_config.app.server_ips = ['10.0.0.1', '10.0.0.2', '10.0.0.3'] clients[num_c - 1].wait = True
c.wait = True clients[num_c - 1].node_config.app = node.NOPaxosClientLast()
print(e.name)
#print (len(experiments))
experiments.append(e) experiments.append(e)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment