dc.description.abstract | Det er skrevet et program i Python for å beregne parallell partikkeltransport.
Som numerisk integrator ble fjerdeordens Runge-Kutta-metode brukt for å beregne partikkeltransporten i et hastighetsfelt gitt ved et analytisk uttrykk.
Bevegelsen av hver partikkel er antatt å være uavhengig av de andre, en vanlig antagelse ved transport av løste partikler i vann.
Programmet er kjørt i parallell på flere datamaskiner, inkludert superdatamaskinen Vilje ved NTNU. Kjøretiden for ulikt antall av parallelle prosesser ble målt og sammenlignet. Ytelsen ble funnet til å være meget bra. Hastighetsøkningen var bedre enn lineær skalering ved bruk av mellom 8 og 16 parallelle prosesser. Ved kjøring på flere enn 16 prosesser ble imidlertid ytelsen ikke bedre. Dette kommer av at programmet det da må kommuniseres mellom noder, som er tregere enn å kommunisere innad i en node.
Det er demonstrert at kombinasjonen av Python og \emph{Message Passing Interface} kan bli brukt til å skrive vitenskapelig kildekode for parallelle simuleringer av partikkeltransport. Koden er svært kompakt og lesbar, sammenlignet med lignende kode i Fortran. En tentativ sammenligning viser at ytelsen til det mer høynivå programmeringsspråket Python ikke er signifikant dårligere enn til en tilsvarende kode skrevet i Fortran. | |