44from os import makedirs
55from os .path import basename , join
66from tasks .migration .util import generate_host_list
7- from tasks .util .env import RESULTS_DIR
7+ from tasks .util .env import (
8+ MPI_MIGRATE_FAASM_FUNC ,
9+ MPI_MIGRATE_FAASM_USER ,
10+ RESULTS_DIR ,
11+ )
812from tasks .util .faasm import (
913 get_faasm_exec_time_from_json ,
1014 post_async_msg_and_get_result_json ,
@@ -48,23 +52,24 @@ def run(ctx, w, check_in=None, repeats=1, num_cores_per_vm=8):
4852 """
4953 num_vms = len (get_faasm_worker_ips ())
5054 assert num_vms == 2 , "Expected 2 VMs got: {}!" .format (num_vms )
51- # data_file = basename(get_faasm_benchmark(LAMMPS_SIM_WORKLOAD)["data"][0])
52- # TODO: is this a good idea? FIXME FIXME DELETE ME
53- data_file = basename (get_faasm_benchmark ("compute" )["data" ][0 ])
5455
5556 if check_in is None :
5657 check_array = [0 , 2 , 4 , 6 , 8 , 10 ]
5758 else :
5859 check_array = [int (check_in )]
5960
6061 for workload in w :
61- if workload not in LAMMPS_SIM_WORKLOAD_CONFIGS :
62+ if workload != "all-to-all" and workload not in LAMMPS_SIM_WORKLOAD_CONFIGS :
6263 print (
6364 "Unrecognised workload config ({}) must be one in: {}" .format (
6465 workload , LAMMPS_SIM_WORKLOAD .keys ()
6566 )
6667 )
67- workload_config = LAMMPS_SIM_WORKLOAD_CONFIGS [workload ]
68+ raise RuntimeError ("Unrecognised workload: {}" .format (workload ))
69+
70+ if workload != "all-to-all" :
71+ workload_config = LAMMPS_SIM_WORKLOAD_CONFIGS [workload ]
72+ data_file = basename (get_faasm_benchmark (workload_config ["data_file" ])["data" ][0 ])
6873
6974 csv_name = "migration_{}.csv" .format (workload )
7075 _init_csv_file (csv_name )
@@ -75,37 +80,41 @@ def run(ctx, w, check_in=None, repeats=1, num_cores_per_vm=8):
7580
7681 # Print progress
7782 print (
78- "Running migration micro-benchmark (wload:"
83+ "Running migration micro-benchmark (wload: "
7984 + "{} - check-at: {} - repeat: {}/{})" .format (
8085 workload , check , run_num + 1 , repeats
8186 )
8287 )
8388
84- """
85- TODO: do we want to keep the all-to-all baseline?
8689 if workload == "all-to-all" :
8790 num_loops = 100000
8891 user = MPI_MIGRATE_FAASM_USER
8992 func = MPI_MIGRATE_FAASM_FUNC
9093 cmdline = "{} {}" .format (
9194 check if check != 0 else 5 , num_loops
9295 )
93- """
96+ input_data = None
97+ else :
98+ user = LAMMPS_FAASM_USER
99+ func = LAMMPS_FAASM_MIGRATION_NET_FUNC
100+ cmdline = "-in faasm://lammps-data/{}" .format (data_file )
101+ input_data = get_lammps_migration_params (
102+ check_every = check if check != 0 else 5 ,
103+ num_loops = 5 ,
104+ num_net_loops = workload_config ["num_net_loops" ],
105+ chunk_size = workload_config ["chunk_size" ],
106+ )
94107
95- # Run LAMMPS
96- cmdline = "-in faasm://lammps-data/{}" .format (data_file )
97108 msg = {
98- "user" : LAMMPS_FAASM_USER ,
99- "function" : LAMMPS_FAASM_MIGRATION_NET_FUNC ,
109+ "user" : user ,
110+ "function" : func ,
100111 "cmdline" : cmdline ,
101112 "mpi_world_size" : int (num_cores_per_vm ),
102- "input_data" : get_lammps_migration_params (
103- num_loops = 5 ,
104- num_net_loops = workload_config ["num_net_loops" ],
105- chunk_size = workload_config ["chunk_size" ],
106- ),
107113 }
108114
115+ if input_data is not None :
116+ msg ["input_data" ] = input_data
117+
109118 if check == 0 :
110119 # Setting a check fraction of 0 means we don't
111120 # under-schedule. We use it as a baseline
0 commit comments