10.07.2015 Views

Scarica il pdf con la mia tesi - Parallel Programming Laboratory

Scarica il pdf con la mia tesi - Parallel Programming Laboratory

Scarica il pdf con la mia tesi - Parallel Programming Laboratory

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

14 Strategie di parallelizzazione Cap. 3quel<strong>la</strong> gravitazionale a cui sono soggette tutte le particelle nel sistema e <strong>la</strong> cui interazionecoinvolge tutte le altre particelle: quindi si necessita di sincronizzarsi ad ognipasso di simu<strong>la</strong>zione per garantire che tale forza sia calco<strong>la</strong>ta nel modo corretto <strong>con</strong>gli algoritmi spiegati in precedenza (vedi Sez. 2.2 a pag. 3).3.1.1 Distribuzione randomUn primo tipo di suddivisione può essere distribuire le particelle tra i processoriin un modo random. Questo permetterebbe di non avere problemi di sb<strong>il</strong>anciamentodato che in media, per simu<strong>la</strong>zioni sufficientemente elevate, ogni processore avanzeràlo stesso numero di particelle ad ogni passo ed ogni processore gestirà sempre delleparticelle in zone altamente dense che richiedono elevati calcoli e particelle in zonepiù rarefatte che ne richiedono meno (vedi Figura 3.1).Dato che l’ammontare del tempo richiesto per <strong>la</strong> gestione del rib<strong>il</strong>anciamento eper lo sb<strong>il</strong>anciamento che inevitab<strong>il</strong>mente compare raggiunge, per quanto riportato inletteratura, <strong>il</strong> 20÷25% del tempo totale di esecuzione del programma parallelo già su16 processori, <strong>il</strong> fatto di togliere quasi completamente questa componente del tuttoindesiderata del calcolo è un fattore a vantaggio di questo approccio. Il “quasi” indicache comunque non è possib<strong>il</strong>e eliminar<strong>la</strong> interamente perché ad ogni passo i processoriavranno un numero di particelle da aggiornare che sarà leggermente diverso tra di loroper cui una qualche componente di sb<strong>il</strong>anciamento sarà sempre presente. Nei test<strong>con</strong>dotti tuttavia tale componente è sempre stata inferiore al 3%.Ciò richiederebbe come accorgimento che <strong>la</strong> distribuzione sia garantita essere randomall’inizio del<strong>la</strong> simu<strong>la</strong>zione perché altrimenti ciò potrebbe degradare le prestazioniglobali. Per quanto riguarda <strong>il</strong> nostro codice esso ha un input generato se<strong>con</strong>do unadistribuzione spaziale: ossia particelle vicine nel f<strong>il</strong>e sono vicine nello spazio, inoltreparticelle sim<strong>il</strong>i come comportamento medio nell’evoluzione sono anch’esse raggruppateassieme all’interno del f<strong>il</strong>e. Ciò ci <strong>con</strong>sente di distribuire le particelle se<strong>con</strong>do unamodalità round-robin 1 che già da so<strong>la</strong> garantisce una distribuzione ottimale.Un problema sorge per quanto riguarda le particelle di gas soggette alle forze idrodinamichein quanto essendo queste forze a corto raggio coinvolgono particelle vicineche <strong>con</strong> questa distribuzione vengono a trovarsi in processori diversi, viene a caderequindi qualsiasi speranza di poter limitare le comunicazioni ed eseguire calcoli localmenteper delle particelle <strong>con</strong> tutti i vicini sullo stesso processore. In ogni caso èsempre possib<strong>il</strong>e trovare <strong>il</strong> raggio di smussamento e quindi i vicini <strong>con</strong> cui interagisceanche in una situazione interprocessore (vedi Sez. 4.4 a pag. 30) anche se <strong>con</strong> unapenalizzazione in termini di tempo. Si rammenta comunque che per qualsiasi tipo didistribuzione esisteranno delle particelle <strong>con</strong> dei vicini su altri processori.Un altro problema più importante sorge invece in questo tipo di distribuzione, problemache rende inapplicab<strong>il</strong>e questo metodo: per <strong>il</strong> calcolo delle forze gravitazionali(che occupano sempre <strong>la</strong> maggior parte del carico di <strong>la</strong>voro) viene usato l’algoritmo diBarnes-Hut (vedi Sez. 2.2.1 a pag. 4) <strong>il</strong> quale approssima gruppi di particelle lontane1 round-robin significa distribuzione dei dati in modo circo<strong>la</strong>re tra tutti i processori.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!