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 k...

Full description

Bibliographic Details
Main Author: Pitkänen, Tuomas
Other Authors: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, Jyväskylän yliopisto, University of Jyväskylä
Format: Master's thesis
Language:fin
Published: 2022
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/81935
_version_ 1826225738353737728
author Pitkänen, Tuomas
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_facet Pitkänen, Tuomas Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä Pitkänen, Tuomas Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_sort Pitkänen, Tuomas
datasource_str_mv jyx
description 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.
first_indexed 2022-06-21T20:00:30Z
format Pro gradu
free_online_boolean 1
fullrecord [{"key": "dc.contributor.advisor", "value": "P\u00f6l\u00f6nen, Ilkka", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.advisor", "value": "Laitinen, Mikko", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "Pitk\u00e4nen, Tuomas", "language": "", "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2022-06-21T11:28:13Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2022-06-21T11:28:13Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2022", "language": "", "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/81935", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Tutkielmassa vertaillaan alkuper\u00e4isen C-kielisen MCERD-simulaatiosovelluksen ja siit\u00e4 tutkielmaa varten kehitettyjen Python-kielisten versioiden suorituskyky\u00e4. MCERD simuloi Elastic Recoil Detector (ERD) ja Rutherford Backscattering (RBS) -mittauksia Monte Carlo -menetelm\u00e4ll\u00e4. Uusia toteutuksia on kolme: puhtaalla Pythonilla tehty ohjelma sek\u00e4 t\u00e4st\u00e4 Numballa kiihdytetyt, yksi- ja monis\u00e4ikeiset versiot. Lis\u00e4ksi tarkastellaan Nvidian CUDA-n\u00e4yt\u00f6nohjainalustaa hy\u00f6dynt\u00e4v\u00e4n Numba-version toteutettavuutta. Havaittiin, ett\u00e4 Numballa saavutettiin l\u00e4hes C:n tasoinen suorituskyky yhdell\u00e4 s\u00e4ikeell\u00e4, ja monella s\u00e4ikeell\u00e4 ylitettiin alkuper\u00e4inen, joskaan ei lineaarisesti skaalautuen. Havaittiin my\u00f6s, ett\u00e4 pelkk\u00e4\u00e4 Pythonia k\u00e4ytt\u00e4v\u00e4 versio on hyvin hidas ja n\u00e4yt\u00f6nohjainversion toteuttaminen olisi vaikeaa.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "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.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Miia Hakanen (mihakane@jyu.fi) on 2022-06-21T11:28:13Z\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2022-06-21T11:28:13Z (GMT). No. of bitstreams: 0\n Previous issue date: 2022", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "89", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.format.mimetype", "value": "application/pdf", "language": null, "element": "format", "qualifier": "mimetype", "schema": "dc"}, {"key": "dc.language.iso", "value": "fin", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": "en", "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "MCERD", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "rinnakkaislaskenta", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "ERD", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "ERDA", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "elastic recoil detection", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Monte Carlo -hiukkassimulaation toteuttaminen ja kiihdytt\u00e4minen Pythonin Numba-kirjastolla", "language": "", "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "master thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-202206213542", "language": "", "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Pro gradu -tutkielma", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Master\u2019s thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietotekniikka", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Mathematical Information Technology", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "yvv.contractresearch.funding", "value": "0", "language": "", "element": "contractresearch", "qualifier": "funding", "schema": "yvv"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_bdcc", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "openAccess", "language": null, "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "masterThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.subject.oppiainekoodi", "value": "602", "language": "", "element": "subject", "qualifier": "oppiainekoodi", "schema": "dc"}, {"key": "dc.subject.yso", "value": "Python", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "ohjelmointikielet", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "Monte Carlo -menetelm\u00e4t", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "ohjelmointi", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "simulointi", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "tietotekniikka", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "tietokoneohjelmat", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.format.content", "value": "fulltext", "language": null, "element": "format", "qualifier": "content", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}, {"key": "dc.type.okm", "value": "G2", "language": null, "element": "type", "qualifier": "okm", "schema": "dc"}]
id jyx.123456789_81935
language fin
last_indexed 2025-02-18T10:55:16Z
main_date 2022-01-01T00:00:00Z
main_date_str 2022
online_boolean 1
online_urls_str_mv {"url":"https:\/\/jyx.jyu.fi\/bitstreams\/43a1b7a5-cbf6-4070-97f2-c463ed2f275e\/download","text":"URN:NBN:fi:jyu-202206213542.pdf","source":"jyx","mediaType":"application\/pdf"}
publishDate 2022
record_format qdc
source_str_mv jyx
spellingShingle Pitkänen, Tuomas Monte Carlo -hiukkassimulaation toteuttaminen ja kiihdyttäminen Pythonin Numba-kirjastolla MCERD rinnakkaislaskenta ERD ERDA elastic recoil detection Tietotekniikka Mathematical Information Technology 602 Python ohjelmointikielet Monte Carlo -menetelmät ohjelmointi simulointi tietotekniikka tietokoneohjelmat
title Monte Carlo -hiukkassimulaation toteuttaminen ja kiihdyttäminen Pythonin Numba-kirjastolla
title_full Monte Carlo -hiukkassimulaation toteuttaminen ja kiihdyttäminen Pythonin Numba-kirjastolla
title_fullStr Monte Carlo -hiukkassimulaation toteuttaminen ja kiihdyttäminen Pythonin Numba-kirjastolla Monte Carlo -hiukkassimulaation toteuttaminen ja kiihdyttäminen Pythonin Numba-kirjastolla
title_full_unstemmed Monte Carlo -hiukkassimulaation toteuttaminen ja kiihdyttäminen Pythonin Numba-kirjastolla Monte Carlo -hiukkassimulaation toteuttaminen ja kiihdyttäminen Pythonin Numba-kirjastolla
title_short Monte Carlo -hiukkassimulaation toteuttaminen ja kiihdyttäminen Pythonin Numba-kirjastolla
title_sort monte carlo hiukkassimulaation toteuttaminen ja kiihdyttäminen pythonin numba kirjastolla
title_txtP Monte Carlo -hiukkassimulaation toteuttaminen ja kiihdyttäminen Pythonin Numba-kirjastolla
topic MCERD rinnakkaislaskenta ERD ERDA elastic recoil detection Tietotekniikka Mathematical Information Technology 602 Python ohjelmointikielet Monte Carlo -menetelmät ohjelmointi simulointi tietotekniikka tietokoneohjelmat
topic_facet 602 ERD ERDA MCERD Mathematical Information Technology Monte Carlo -menetelmät Python Tietotekniikka elastic recoil detection ohjelmointi ohjelmointikielet rinnakkaislaskenta simulointi tietokoneohjelmat tietotekniikka
url https://jyx.jyu.fi/handle/123456789/81935 http://www.urn.fi/URN:NBN:fi:jyu-202206213542
work_keys_str_mv AT pitkänentuomas montecarlohiukkassimulaationtoteuttaminenjakiihdyttäminenpythoninnumbakirjastolla