The Investigation of Efficiency of Physical Phenomena Modelling Using Differential Equations on Distributed Systems
Santrauka
This work is dedicated to development of mathematical modelling software. In this dissertation numerical methods and algorithms are investigated in software making context. While applying a numerical method it is important to take into account the limited computer resources, the architecture of these resources and how do methods affect software robustness. Three main aspects of this investigation are that software implementation must be efficient, robust and be able to utilize specific hardware resources. The hardware specificity in this work is related to distributed computations of different types: single CPU with multiple cores, multiple CPUs with multiple cores and highly parallel multithreaded GPU device. The investigation is done in three directions: GPU usage for 3D FDTD calculations, FVM method usage to implement efficient calculations of a very specific heat transferring problem, and development of special techniques for software for specific bacteria self organization problem when the results are sensitive to numerical methods, initial data and even computer round-off errors. All these directions are dedicated to create correct technological components that make a software implementation robust and efficient. The time prediction model for 3D FDTD calculations is proposed, which lets to evaluate the efficiency of different GPUs. A reasonable speedup with GPU comparing to CPU is obtained. For FVM implementation the Open- FOAM open source software is selected as a basis for implementation of calculations and a few algorithms and their modifications to solve efficiency issues are proposed. The FVM parallel solver is implemented and analyzed, it is adapted to heterogeneous cluster Vilkas. To create robust software for simulation of bacteria self organization mathematically robust methods are applied and results are analyzed, the algorithm is modified for parallel computations. Šitas darbas skirtas matematinio modeliavimo programinei irangai kurti. Disertacijoje ištirti skaitiniai metodai ir algoritmai programines irangos kurimo kontekste. Kai taikomas skaitinis metodas yra svarbu atsižvelgti i ribotus kompiuteriu išteklius, šiu ištekliu architektura ir metodu itaka programines irangos patikimumui. Trys pagrindiniai tyrimu aspektai yra programines irangos efektyvumas, patikimumas ir galimybe panaudoti specialiuosius kompiuterinius išteklius. Darbe naudojami kompiuteriniai ištekliai, kuriems yra butini skirtingu tipu paskirstytieji skaiciavimai: vienas procesorius su keliais branduoliais, daug procesoriu turinciu po kelis branduolius ir stipriai lygiagretus daugiagijinis skaiciavimu irenginys (GPU). Tyrimas atliktas trimis kryptimis: GPU panaudojimas 3D BSLS skaiciavimams, BTM metodo panaudojimas efektyviai skaiciavimu realizacijai tam tikrais ypatumais pasižyminciam šilumos laidumo uždaviniui spresti ir nestabiliems modeliams skirtu sprendimu kurimas – modeliuojamas specifinis bakteriju saviorganizacijos procesas, kai skaiciavimu rezultatai jautrus skaitiniams metodams, pradinems salygoms ir net apvalinimo paklaidoms. Visos šios kryptys yra skirtos taisyklingu technologiniu komponentu, daranciu realizacija patikima ir efektyvia, kurimui. Darbe pasiulytas modelis 3D BSLS skaiciavimu laikams prognozuoti, tai leidžia ivertinti tame tarpe ir paciu skaiciavimo irenginiu efektyvuma šitokios rušies skaiciavimu atžvilgiu. Algoritmo pritaikymas ištestuotiems 3D BSLS skaiciavimu atvejams duoda apie 10 kartu pagreitejima lyginant su CPU lygiagreciaja versija. BTM skaiciavimu realizacijos pagrindui pasirinktas atviro kodo paketas OpenFOAM, pasiulyti keli metodai ir algoritmai efektyvumo problemoms spresti. Realizuotas lygiagretusis BTM sprendiklis adaptuotas prie heterogeninio klasterio Vilkas. Patikimai programinei irangai, skirtai bakteriju saviorganizacijos simuliacijai, kurti pasiulyti ir pritaikyti matematiškai patikimi metodai. Atlikta skaiciavimu eksperimentu analize, pateikta algoritmo lygiagrecioji versija.