Praca doktorska
Ładowanie...
Miniatura
Licencja

FairUseKorzystanie z tego materiału możliwe jest zgodnie z właściwymi przepisami o dozwolonym użytku lub o innych wyjątkach przewidzianych w przepisach prawa. Korzystanie w szerszym zakresie wymaga uzyskania zgody uprawnionego.
 

Opracowanie nowych metod programowania równoległego w Javie w oparciu o paradygmat PGAS (Partitioned Global Address Space)

Uproszczony widok
dc.abstract.enScientific problem concerned in this dissertation is to develop the effective methods and tools for application parallelization for HPC systems. The main issues are related to the effective, scalable and efficient implementation of parallel algorithms in modern programming languages. The subject of the research described in this dissertation was to develop new programming methods for parallel programming in Java language based on the PGAS (Partitioned Global Address Space) paradigm, and the implementation of a library for Java, which would not use external libraries. Moreover, the aim of the study was to investigate the performance and the scalability of the developed solution and the usefulness for applications parallelization. The PCJ library (Parallel Computations in Java) has been created from scratch. It is based on a Partitioned Global Address Space (PGAS) model represented by Co-Array Fortran, Unified Parallel C, X10 or Titanium. The PCJ library fully complies with Java standards therefore the programmer does not have to use additional libraries, which are not part of the standard Java distribution. The PCJ has ability to work on the multinode multicore systems hiding details of inter- and intranode communication. In the PCJ library, each task has its own local memory, and stores and accesses variables locally. Variables can be shared between tasks, and can be accessed, read and modified by other tasks. The library provides methods to perform basic operations like synchronization of tasks, get and put values in asynchronous onesided way. Additionally the library offers methods for creating groups of tasks, broadcasting and monitoring variables. The library has been thoroughly tested. The results were compared to the MPI -- current standard that is being used to create a distributed and parallel applications. Among the basic micro benchmarks, there are run time tests of synchronization, depending on the number of tasks, and also the maximum amount of data transferred per time unit between two nodes, depending on the size of the message being sent. Additionally, the results obtained using the PCJ library of larger applications, such as RayTracer, were compared to the results gained by the MPI.
dc.abstract.plProblem naukowy, którego dotyczy praca, to rozwój efektywnych metod i narzędzi do zrównoleglania aplikacji. Chodzi tutaj o kwestie związane z efektywną, skalowalną i wydajną implementacją algorytmów równoległych w nowoczesnych językach programowania. Przedmiotem badań opisanych w niniejszej rozprawie doktorskiej było opracowanie nowych metod programowania równoległego w języku Java z wykorzystaniem paradygmatu PGAS (Partitioned Global Address Space), a także implementacja opracowanych rozwiązań w postaci biblioteki dla języka Java, która by nie wykorzystywała zewnętrznych bibliotek. Ponadto celem pracy było zbadanie opracowanych rozwiązań pod kątem wydajności i skalowalności oraz przydatności do zrównoleglania aplikacji. W ramach niniejszej pracy doktorskiej została stworzona od podstaw biblioteka dla języka Java nazwana PCJ (Parallel Computations in Java). Bazuje ona na modelu obliczeń rozproszonych PGAS, który jest wykorzystywany przez takie języki programowania jak Co-Array Fortran, Unified Parallel C, X10 czy Titanium. W trakcie projektowania biblioteki główny nacisk położono na zgodność ze standardami języka Java. PCJ została stworzona jako samodzielna biblioteka, która nie wymaga żadnych modyfikacji języka ani nie wykorzystuje żadnych dodatkowych bibliotek. Pozwala ona na pracę na systemach wielowęzłowych i wielordzeniowych, ukrywając szczegóły komunikacji wewnątrz węzła i pomiędzy węzłami przed programistą. W opisywanej bibliotece każdy wątek działa samodzielnie w swojej własnej lokalnej pamięci. Domyślnie zmienne są przechowywane i dostępne lokalnie. Niektóre zmienne mogą być współdzielone z innymi wątkami i mogą być odczytywane i modyfikowane przez inne wątki. Biblioteka dostarcza metody do wykonywania podstawowych operacji jak synchronizacja wątków, czy pobieranie i wysyłanie wartości zmiennych współdzielonych w sposób jednostronny i asynchroniczny. Ponadto biblioteka oferuje mechanizmy do tworzenia grup wątków, rozgłaszania i monitorowania zmiennych współdzielonych. Stworzona i rozwijana w ramach pracy doktorskiej biblioteka została gruntownie przetestowana a uzyskane wyniki zostały porównane z aktualnym standardem używanym do tworzenia rozproszonych i równoległych aplikacji jakim jest MPI. Wśród podstawowych testów szybkości biblioteki znajdują się testy przedstawiające czas wykonywania synchronizacji w zależności od liczby wątków, a także maksymalna ilość danych przesłanych w jednostce czasu pomiędzy dwoma węzłami w zależności od wielkości przesyłanej wiadomości. Dodatkowo zostały skonfrontowane wyniki przedstawiające czas działania większych aplikacji, takich jak RayTracer, w zależności od liczby wykorzystanych rdzeni procesora, w przypadku wykorzystania biblioteki PCJ oraz z wykorzystaniem MPI.
dc.affiliation.departmentWydział Matematyki, Informatyki i Mechaniki
dc.contributor.authorNowicki, Marek
dc.date.accessioned2020-07-14T13:14:25Z
dc.date.available2020-07-14T13:14:25Z
dc.date.defence2015-06-11
dc.date.issued2020-07-14
dc.description.promoterBała, Piotr
dc.description.promoterChlebiej, Michał
dc.identifier.urihttps://repozytorium.uw.edu.pl//handle/item/3718
dc.language.isopl
dc.rightsFairUse
dc.subject.enPartitioned Global Address Space
dc.subject.enJava
dc.subject.enDistributed computing
dc.subject.enParallel computing
dc.subject.plPCJ
dc.subject.plHPC
dc.subject.plPGAS
dc.subject.plPodzielona globalna przestrzeń adresowa
dc.subject.plJava
dc.subject.plProgramowanie rozproszone
dc.subject.plProgramowanie równoległe
dc.titleOpracowanie nowych metod programowania równoległego w Javie w oparciu o paradygmat PGAS (Partitioned Global Address Space)
dc.title.alternativeNew programming methods for parallel programming in Java based on the PGAS (Partitioned Global Address Space) paradigm
dc.typeDoctoralThesis
dspace.entity.typePublication