- xbt_os_cputimer_start(round_time);
- smx_ctx_raw_runall_parallel();
- xbt_os_cputimer_stop(round_time);
- par_time += xbt_os_timer_elapsed(round_time);
- par_proc_that_ran += nb_processes;
- par_sched_round++;
+ if(nb_processes < par_window){
+ par_sched_round++;
+ xbt_os_walltimer_start(round_time);
+ smx_ctx_raw_runall_parallel();
+ xbt_os_walltimer_stop(round_time);
+ par_time += xbt_os_timer_elapsed(round_time);
+
+ prev_avg_par_proc = avg_par_proc;
+ delta = nb_processes - avg_par_proc;
+ avg_par_proc = (par_sched_round==1) ? nb_processes : avg_par_proc + delta / (double) par_sched_round;
+
+ if(par_sched_round>=2){
+ s_par_proc = s_par_proc + (nb_processes - prev_avg_par_proc) * delta;
+ sd_par_proc = sqrt(s_par_proc / (par_sched_round-1));
+ par_window = (int) (avg_par_proc + sd_par_proc);
+ }else{
+ sd_par_proc = 0;
+ }
+
+ par_proc_that_ran += nb_processes;
+ } else{
+ smx_ctx_raw_runall_parallel();
+ }