Monte Carlo -hiukkassimulaation toteuttaminen ja kiihdyttäminen Pythonin Numba-kirjastolla
Tutkielmassa vertaillaan alkuperäisen C-kielisen MCERD-simulaatiosovelluksen ja siitä tutkielmaa varten kehitettyjen Python-kielisten versioiden suorituskykyä. MCERD simuloi Elastic Recoil Detector (ERD) ja Rutherford Backscattering (RBS) -mittauksia Monte Carlo -menetelmällä. Uusia toteutuksia on kolme: puhtaalla Pythonilla tehty ohjelma sekä tästä Numballa kiihdytetyt, yksi- ja monisäikeiset versiot. Lisäksi tarkastellaan Nvidian CUDA-näytönohjainalustaa hyödyntävän Numba-version toteutettavuutta. Havaittiin, että Numballa saavutettiin lähes C:n tasoinen suorituskyky yhdellä säikeellä, ja monella säikeellä ylitettiin alkuperäinen, joskaan ei lineaarisesti skaalautuen. Havaittiin myös, että pelkkää Pythonia käyttävä versio on hyvin hidas ja näytönohjainversion toteuttaminen olisi vaikeaa. This thesis compares the original MCERD simulation program made in C to new version of it made in Python for the thesis. MCERD simulates Elastic Recoil Detector (ERD) and Rutherford Backscattering (RBS) measurements using the Monte Carlo method. There are three new versions: one made in pure Python and two accelerated with Numba for single-threaded and multi-threaded usage. The viability of a GPU version for Nvidia's CUDA platform using Numba is also considered. It was observed that Numba almost matched the performance of C when single-threaded, and exceeded it when multi-threaded, albeit not scaling linearly. It was also observed that the pure Python version is very slow, and that the GPU version would be difficult to implement.
Keywords
Metadata
Show full item recordCollections
- Pro gradu -tutkielmat [29740]
License
Related items
Showing items with similar title or keywords.
-
Web-sovellusohjelmointi Scala-ohjelmointikielellä
Parpala, Joni (2021)Nykyisten web-sovellusten kasvavat vaatimukset painostavat etsimään ratkaisuja tavanomaisten ohjelmointiparadigmojen ulkopuolelta. Tässä tutkielmassa selvitetään, miten funktio-ohjelmoinnin ja olio-ohjelmoinnin perusperiaatteita ... -
On GPU-accelerated fast direct solvers and their applications in image denoising
Myllykoski, Mirko (University of Jyväskylä, 2015) -
DNA computing
Lappalainen, Panu (2019)Tässä kirjallisuuskatsauksessa käsitellään DNA:n mahdollisuuksia tietokonelaskennassa. DNA on erinomainen rinnakkaislaskennassa laskentanopeutensa ja energiatehokkuutensa puolesta, mutta sen hitaan valmisteluajan ja yleisen ... -
Staattisen ja dynaamisen tyyppisysteemin vaikutus ohjelman kehitykseen
Mäkelä, Samuli (2023)Yksi tärkeimmistä ohjelmointikielen osista on sen tyyppisysteemi, ja siitä, että minkälainen tyyppisysteemi on paras väitellään paljon. Tässä tutkielmassa käsitellään staattisen ja dynaamisen tyyppisysteemin vaikutusta ... -
Keskeisistä haasteista funktionaalisen ohjelmointiparadigman oppimisessa
Lahtinen, Oskari (2023)Funktionaalisten ohjelmointikielten ominaisuuksia on lisätty viime vuosikymmeninä myös muihin ohjelmointikieliin. Funktionaalisen ohjelmointiparadigman oppimiseen liittyy kuitenkin useita haasteita. Näitä haasteita ovat ...