Master Thesis MSTR-3554

BibliographyAlam, Nazmul: Language Independent Modelling of Parallelism.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Master Thesis No. 3554 (2014).
79 pages, english.
CR-SchemaC.1.1 (Single Data Stream Architectures)
C.1.2 (Multiple Data Stream Architectures (Multiprocessors))
C.4 (Performance of Systems)
D.1.3 (Concurrent Programming)
D.2.5 (Software Engineering Testing and Debugging)
D.3.4 (Programming Languages Processors)
D.4.1 (Process Management)
D.4.2 (Storage Management)
D.4.7 (Operating Systems Organization and Design)
D.4.8 (Operating Systems Performance)
Abstract

To make programs work in parallel contexts without any hazards, programming languages require changes to their structures and compilers. One of the most complicated parts is memory models and how programming languages deal with memory interactions. Different processors provide a different level of safety guarantees (i.e. ARM provides relaxed whereas Intel provides strong guarantees). On the other hand, different programming languages provide different structures for parallel computation and have individual protocols for communicating with parallel processes. Unfortunately, no specific choice is best in all situations. This thesis focuses on memory models of various programming languages and processors highlighting some positive and negative features from the point of view of programmability, performance and portability. In order to give some evidence of problems and performance bottlenecks, some small programs have been developed. This thesis also concentrates on incorrect behaviors, especially on data race conditions in programs, providing suggestions on how to avoid them. Also, some litmus tests on systems featuring different vendors' processors were performed to observe data races on each system. Nowadays programming paradigms also became a big issue. Some of the programming styles support observable non-determinism which is the main reason for incorrect behavior in programs. In this thesis, different programming models are also discussed based on the current state of the available research. Also, the imperative and functional paradigms in different contexts are compared. Finally, a mathematical problem was solved using two different paradigms to provide some practical evidence of the theory.

Full text and
other links
PDF (4042367 Bytes)
Department(s)University of Stuttgart, Institute of Software Technology, Programming Languages and Compilers
Superviser(s)Prokharau, Mikhail
Entry dateNovember 27, 2014
   Publ. Computer Science