PDA

View Full Version : [C++] Parallelizzare un simulatore


Axoduss
22-02-2011, 13:37
ho completato la realizzazione di un simulatore di una rete (una banyana estesa per chi se ne intende) per ricavarne la probabilità di blocco.
Il funzionamento è esclusivamente seriale, cioè vengono eseguiti diversi run della simulazione, uno dopo l'altro, per migliorare l'intervallo di confidenza del risultato.
Sono però convinto che sia possibile eseguire in parallelo più simulazioni (almeno n per core) e restituire il risultato (che sono solo 2 numeri: connessioni totali arrivate e connessioni perse in un intervallo di tempo) ad un processo "padre" che ne calcola la statistica.

il codice attuale è:

double clock=0.0; //start transient
event* ev;
while (clock<Trslen){
ev=cal->get();
ev->body();
clock=ev->time;
delete(ev);
}
clear_stats();
clear_counters(); //end transient
int current_run_number=1;
while(current_run_number<=NRUNmin){ //start simulation cicle
while (clock<(current_run_number*Runlen+Trslen)){
ev=cal->get();
ev->body();
clock=ev->time;
delete(ev);
}
update_stats();
print_trace(current_run_number); //end simulation cicle
clear_counters();
current_run_number++;
}



com'è possibile parallelizzarne l'esecuzione in windows?
Purtroppo non so molto su questo tipo di approccio.

grazie

Axoduss
25-02-2011, 09:13
up, ho trovato le librerie boost. E' un inizio?