6
6
from bluepysnap .frame_report import FrameReport
7
7
from bluepysnap .simulation import Simulation
8
8
from bluepysnap .spike_report import SpikeReport
9
- from common .utils import L , run_analysis
9
+ from common .utils import L , clean_slurm_env , run_analysis , wait_for_slurm
10
10
11
11
from blueetl .campaign .config import SimulationCampaign
12
12
@@ -79,13 +79,14 @@ def _plot(index: int, path: str, conditions: dict, analysis_config: dict) -> tup
79
79
def main (analysis_config : dict ) -> dict :
80
80
campaign = SimulationCampaign .load (analysis_config ["simulation_campaign" ])
81
81
slurm_args = {** DEFAULT_SLURM_ARGS , ** analysis_config .get ("slurm_args" , {})}
82
+ clean_slurm_env ()
82
83
83
84
log_folder = "log_test/%j"
84
85
executor = submitit .AutoExecutor (folder = log_folder )
85
86
executor .update_parameters (** slurm_args )
86
- L .info ("Using %s executor. " , executor .cluster )
87
+ L .info ("Using %s executor" , executor .cluster )
87
88
88
- # submit all jobs at once in a Slurm job array
89
+ # submit all the jobs at once in a Slurm job array
89
90
with executor .batch ():
90
91
jobs = [
91
92
executor .submit (
@@ -97,9 +98,10 @@ def main(analysis_config: dict) -> dict:
97
98
)
98
99
for sim in campaign
99
100
]
100
- L .info ("Number of jobs %s" , len (jobs ))
101
+ L .info ("Waiting for slurm to be ready..." )
102
+ wait_for_slurm ()
101
103
102
- # process the results
104
+ L . info ( "Waiting for %s jobs to complete..." , len ( jobs ))
103
105
outputs = []
104
106
for job in jobs :
105
107
sim_index , output_path = job .result ()
0 commit comments