Commit b4de29b0 authored by Jialin Li's avatar Jialin Li
Browse files

experiments: add VR experiments

parent 664f47ed
......@@ -328,24 +328,29 @@ class NetperfClient(AppConfig):
'netperf -H ' + self.server_ip,
'netperf -H ' + self.server_ip + ' -t TCP_RR -- -o mean_latency,p50_latency,p90_latency,p99_latency']
class NOPaxosReplica(AppConfig):
class VRReplica(AppConfig):
index = 0
def run_cmds(self, node):
return ['/root/nopaxos/bench/replica -c /root/nopaxos.config -i ' +
str(self.index) + ' -m nopaxos']
str(self.index) + ' -m vr']
class NOPaxosClient(AppConfig):
class VRClient(AppConfig):
server_ips = []
def run_cmds(self, node):
cmds = []
for ip in self.server_ips:
cmds.append('ping -c 1 ' + ip)
cmds.append('/root/nopaxos/bench/client -c /root/nopaxos.config ' +
'-m nopaxos -n 2000')
cmds.append('sleep 20')
'-m vr -n 2000')
return cmds
class NOPaxosClientLast(AppConfig):
class NOPaxosReplica(AppConfig):
index = 0
def run_cmds(self, node):
return ['/root/nopaxos/bench/replica -c /root/nopaxos.config -i ' +
str(self.index) + ' -m nopaxos']
class NOPaxosClient(AppConfig):
server_ips = []
def run_cmds(self, node):
cmds = []
......@@ -353,7 +358,6 @@ class NOPaxosClientLast(AppConfig):
cmds.append('ping -c 1 ' + ip)
cmds.append('/root/nopaxos/bench/client -c /root/nopaxos.config ' +
'-m nopaxos -n 2000')
cmds.append('sleep 0.5')
return cmds
class NOPaxosSequencer(AppConfig):
......
......@@ -5,17 +5,19 @@ import modes.nodeconfig as node
host_configs = ['qemu', 'gt']
seq_configs = ['swseq', 'ehseq']
nic_configs = ['ib', 'cb', 'cv']
proto_configs = ['vr', 'nopaxos']
num_client_configs = [1, 2, 3, 4]
experiments = []
link_rate_opt = '--LinkRate=100Gb/s ' # don't forget space at the end
link_latency_opt = '--LinkLatency=500ns '
for num_c in num_client_configs:
for proto_config in proto_configs:
for num_c in num_client_configs:
for host_config in host_configs:
for seq_config in seq_configs:
for nic_config in nic_configs:
e = exp.Experiment('nopaxos-' + host_config + '-' + nic_config + '-' + seq_config + f'-{num_c}')
e = exp.Experiment(proto_config + '-' + host_config + '-' + nic_config + '-' + seq_config + f'-{num_c}')
net = sim.NS3SequencerNet()
net.opt = link_rate_opt + link_latency_opt
e.add_network(net)
......@@ -23,22 +25,12 @@ for num_c in num_client_configs:
# host
if host_config == 'qemu':
host_class = sim.QemuHost
# 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)
elif host_config == 'gt':
host_class = sim.Gem5Host
e.checkpoint = False
else:
raise NameError(host_config)
# nic
if nic_config == 'ib':
nic_class = sim.I40eNIC
......@@ -51,31 +43,39 @@ for num_c in num_client_configs:
nc_class = node.CorundumLinuxNode
else:
raise NameError(nic_config)
else:
raise NameError(host_config)
nc_class.disk_image = 'nopaxos'
if seq_config == 'ehseq':
# app
if proto_config == 'vr':
replica_class = node.VRReplica
client_class = node.VRClient
elif proto_config == 'nopaxos':
replica_class = node.NOPaxosReplica
client_class = node.NOPaxosClient
else:
raise NameError(proto_config)
# endhost sequencer
if seq_config == 'ehseq' and proto_config == 'nopaxos':
sequencer = sim.create_basic_hosts(e, 1, 'sequencer', net, nic_class,
host_class, nc_class, node.NOPaxosSequencer, ip_start = 100)
sequencer[0].sleep = 1
replicas = sim.create_basic_hosts(e, 3, 'replica', net, nic_class,
host_class, nc_class, node.NOPaxosReplica)
host_class, nc_class, replica_class)
for i in range(len(replicas)):
replicas[i].node_config.app.index = i
replicas[i].sleep = 1
clients = sim.create_basic_hosts(e, num_c, 'client', net, nic_class,
host_class, nc_class, node.NOPaxosClient, ip_start = 4)
host_class, nc_class, client_class, ip_start = 4)
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
clients[num_c - 1].node_config.app = node.NOPaxosClientLast()
clients[num_c - 1].sleep = 5
print(e.name)
#print (len(experiments))
......
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