22# To run: `julia --project=.buildkite .buildkite/cpu_scaling_pipeline/generate_pipeline.jl`
33# nodes = (1, 2, 4, 8, 16, 32)
44# helems = (30, 42, 60, 84, 120, 170)
5- nodes = (1 , 2 , 4 )
6- helems = (30 , 42 , 60 )
5+
6+ # strong scaling
7+ ss_nodes = (1 , 2 , 4 ) # number of nodes for weak scaling runs
8+ ss_helems = (30 , 60 , 120 ) # helems for weak scaling runs
9+ ss_procspernode = 16 # number of MPI processes per node
10+
11+ # weak scaling
12+ ws_nodes = (1 , 2 , 4 ) # number of nodes for weak scaling runs
13+ ws_helems = (30 , 42 , 60 ) # helems for weak scaling runs
14+ ws_procspernode = 16 # number of MPI processes per node
715
816import YAML
917
@@ -36,19 +44,41 @@ init_step = Dict(
3644 ),
3745)
3846
39- function generate_step (nodes:: Int , helems:: Int )
47+ function generate_step_ws (nodes:: Int , helems:: Int , procspernode :: Int )
4048 return Dict (
41- " label" => " :computer: $nodes node, 16 processes per node, helem = $helems " ,
49+ " label" => " :computer: MBW weak scaling, $nodes nodes, $procspernode processes per node, helem = $helems " ,
4250 " command" => " srun julia --color=yes --project=.buildkite .buildkite/ci_driver.jl --config_file $MBW_SCALING_CONFIG_PATH /moist_baroclinic_wave_helem_$(helems) _0M_ws.yml --job_id moist_baroclinic_wave_helem_$(helems) _0M_ws" ,
4351 " artifact_paths" => " moist_baroclinic_wave_helem_$(helems) _0M_ws/output_active/*" ,
52+ " key" => " ws_$(nodes) _nodes" ,
4453 " agents" => Dict (
4554 " slurm_constraint" => CPU_TYPE,
4655 " queue" => " new-central" ,
4756 " slurm_nodes" => nodes,
48- " slurm_tasks_per_node" => 16 ,
57+ " slurm_tasks_per_node" => procspernode ,
4958 " slurm_cpus_per_task" => 1 ,
5059 " slurm_mem" => 0 ,
5160 " slurm_time" => " 1:00:00" ,
61+ " slurm_reservation" => " false" ,
62+ " slurm_exclusive" => true ,
63+ ),
64+ )
65+ end
66+
67+ function generate_step_ss (nodes:: Int , helems:: Int , procspernode:: Int )
68+ return Dict (
69+ " label" => " :computer: MBW strong scaling, $nodes nodes, $procspernode processes per node, helem = $helems " ,
70+ " command" => " srun julia --color=yes --project=.buildkite .buildkite/ci_driver.jl --config_file $MBW_SCALING_CONFIG_PATH /moist_baroclinic_wave_helem_$(helems) _0M_ss.yml --job_id moist_baroclinic_wave_helem_$(helems) _0M_ss" ,
71+ " artifact_paths" => " moist_baroclinic_wave_helem_$(helems) _0M_ss/output_active/*" ,
72+ " key" => " ss_$(nodes) _nodes" ,
73+ " agents" => Dict (
74+ " slurm_constraint" => CPU_TYPE,
75+ " queue" => " new-central" ,
76+ " slurm_nodes" => nodes,
77+ " slurm_tasks_per_node" => procspernode,
78+ " slurm_cpus_per_task" => 1 ,
79+ " slurm_mem" => 0 ,
80+ " slurm_time" => " 1:00:00" ,
81+ " slurm_reservation" => " false" ,
5282 " slurm_exclusive" => true ,
5383 ),
5484 )
@@ -62,7 +92,15 @@ pipeline = Dict(
6292 " wait" ,
6393 Dict (
6494 " group" => " Moist Baroclinic Wave, weak scaling" ,
65- " steps" => [generate_step .(nodes, helems)... ],
95+ " steps" => [
96+ generate_step_ws .(ws_nodes, ws_helems, ws_procspernode)... ,
97+ ],
98+ ),
99+ Dict (
100+ " group" => " Moist Baroclinic Wave, strong scaling" ,
101+ " steps" => [
102+ generate_step_ss .(ss_nodes, ss_helems, ss_procspernode)... ,
103+ ],
66104 ),
67105 ],
68106)
0 commit comments