Investigating tools and techniques for improving software performance on multiprocessor computer systems

dc.contributor.advisorBradshaw, Karen
dc.contributor.authorTristram, Waide Barrington
dc.date.accessioned2026-03-04T08:22:14Z
dc.date.issued2012
dc.description.abstractThe availability of modern commodity multicore processors and multiprocessor computer systems has resulted in the widespread adoption of parallel computers in a variety of environments, ranging from the home to workstation and server environments in particular. Unfortunately, parallel programming is harder and requires more expertise than the traditional sequential programming model. The variety of tools and parallel programming models available to the programmer further complicates the issue. The primary goal of this research was to identify and describe a selection of parallel programming tools and techniques to aid novice parallel programmers in the process of developing efficient parallel C/C++ programs for the Linux platform. This was achieved by highlighting and describing the key concepts and hardware factors that affect parallel programming, providing a brief survey of commonly available software development tools and parallel programming models and libraries, and presenting structured approaches to software performance tuning and parallel programming. Finally, the performance of several parallel programming models and libraries was investigated, along with the programming effort required to implement solutions using the respective models. A quantitative research methodology was applied to the investigation of the performance and programming effort associated with the selected parallel programming models and libraries, which included automatic parallelisation by the compiler, Boost Threads, Cilk Plus, OpenMP, POSIX threads (Pthreads), and Threading Building Blocks (TBB). Additionally, the performance of the GNU C/C++ and Intel C/C++ compilers was examined. The results revealed that the choice of parallel programming model or library is dependent on the type of problem being solved and that there is no overall best choice for all classes of problem. However, the results also indicate that parallel programming models with higher levels of abstraction require less programming effort and provide similar performance compared to explicit threading models. The principle conclusion was that the problem analysis and parallel design are an important factor in the selection of the parallel programming model and tools, but that models with higher levels of abstractions, such as OpenMP and Threading Building Blocks, are favoured.
dc.description.degreeMaster's thesis
dc.description.degreeMSc
dc.format.extent240 pages
dc.format.mimetypeapplication/pdf
dc.identifier.otherhttp://hdl.handle.net/10962/d1006651
dc.identifier.urihttps://researchrepository.ru.ac.za/handle/123456789/5905
dc.languageEnglish
dc.publisherRhodes University, Faculty of Science, Department of Computer Science
dc.rightsTristram, Waide Barrington
dc.subjectMultiprocessors
dc.subjectMultiprogramming (Electronic computers)
dc.subjectParallel programming (Computer science)
dc.subjectLinux
dc.subjectAbstract data types (Computer science)
dc.subjectThreads (Computer programs)
dc.subjectComputer programming
dc.titleInvestigating tools and techniques for improving software performance on multiprocessor computer systems
dc.typeAcademic thesis

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Investigating_tools_and_techniques_for_improving_s_vital_4655.pdf
Size:
1.47 MB
Format:
Adobe Portable Document Format