Full Text Available

Note: Clicking the button above will open the full text document at the original institutional repository in a new window.

An object-oriented library for shared-memory parallel simulations

Bibliography: leaves [127]-131.

Saved in:
Bibliographic Details
Main Author: Machanick, Philip
Other Authors: Goosen, Henk
Format: Thesis
Language:English
Published: Department of Computer Science 2014
Subjects:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1867613766442549248
access_status_str Open Access
author Machanick, Philip
author2 Goosen, Henk
author_browse Goosen, Henk
Machanick, Philip
author_facet Goosen, Henk
Machanick, Philip
author_sort Machanick, Philip
collection Thesis
description Bibliography: leaves [127]-131.
format Thesis
id oai:open.uct.ac.za:11427/8498
institution University of Cape Town (South Africa)
language eng
last_indexed 2026-06-10T12:41:22.023Z
license_str Not specified — see source repository
provenance_str_mv Harvested via OAI-PMH from UCTD — University of Cape Town Open Access Repository
publishDate 2014
publishDateRange 2014
publishDateSort 2014
publisher Department of Computer Science
publisherStr Department of Computer Science
record_format dspace
source_str UCTD — University of Cape Town Open Access Repository
spelling oai:open.uct.ac.za:11427/8498 An object-oriented library for shared-memory parallel simulations Machanick, Philip Goosen, Henk Computer Science Bibliography: leaves [127]-131. Programming shared-memory multiprocessor systems is becoming increasingly difficult as the gap between memory speed and processor speed increases. At the same time, this class of computer-based on standard microprocessors-is becoming increasingly common as an alternative to traditional mainframes and supercomputers. Programs that are not sympathetic to caches can perform poorly on such systems. Problems include false sharing (unrelated data in a cache block, resulting in coherence misses), inadequate blocking (processing data as often as possible before it moves out of the cache) and poor exploitation of prefetch (fetching data before it is needed). This research addresses the problem of accommodating changes in memory hierarchy cost and cache characteristics through an object-oriented C++ library called OOSH (Object-Oriented Library for Shared Memory). OOSH includes low-level allocators which pad and align objects to cache block boundaries, and primitives for launching processes, locking and synchronization. OOSH also provides support for object blocking-an object-oriented version of blocking, a technique traditionally used in matrix operations. Blocking divides an algorithm's data into blocks or tiles, which are processed as far as possible before moving on to other data, with the objective of reducing cache misses. Performance of OOSH is evaluated by running selected applications from the Stanford SPLASH benchmarks on the Mint MIPS architecture simulator. Simulations are run both with parameters similar to current multiprocessor architectures, and with higher memory hierarchy costs, to investigate the impact of technology trends. OOSH versions of the applications are compared with the SPLASH implementations, based on Argonne National Laboratories Parmacs macros. The applications are MP3D (particle-based wind tunnel simulation), Barnes-Hut (n-body gravitation simulation) and Water (water molecule simulation). MP3D only needs local synchronization, and uses distributed synchronization: barriers are replaced by synchronization on local clocks in regions of space. Early versions of MP3D are poorly written in terms of their cache behaviour, and the OOSH version of MP3D is substantially rewritten. To provide another data point with fewer variables, Barnes-Hut is a useful application. Although it has relatively complex data structures and algorithms, and is well-suited to object-oriented implementation, so the OOSH version is relatively similar to the SPLASH version. Water is a straightforward program which is used to investigate the performance impact of OOSH if no attempt is made to improve the structure of the application or its data, i.e., there are even fewer variables than in the case of the re-implementation of Barnes-Hut. OOSH is shown to give improved cache usage for programs that are rewritten to exploit its features, especially in the case of MP3D which is substantially rewritten. The improvement in cache behaviour is shown to be significant, even for Barnes-Hut which has substantially the same structure for both SPLASH and OOSH versions. Water, which is not significantly rewritten, is shown to suffer a performance drop of up to 9 as a result of the overhead of object-oriented constructs. By comparison, the OOSH version of Barnes-Hut, on a simulated 32-processor architecture with a cache miss cost of 100 clock cycles, is about 20 faster than the SPLASH version. Object blocking is shown to be a relatively minor effect in MP3D. Object blocking could be a useful optimization for simulations with a larger number of references to one object per timestep than is the case for MP3D. However, this research shows cache block aligned memory access to be a big win, and is more likely to be a useful optimization than blocking, across a variety of applications. In general, as memory hierarchy costs increase, OOSH is shown to become increasingly beneficial, and even an application like Barnes-Hut, which had a relatively low number of misses before being ported to OOSH, can gain significantly from cache block aligned memory allocators. 2014-10-17T07:33:57Z 2014-10-17T07:33:57Z 1996 Doctoral Thesis Doctoral PhD http://hdl.handle.net/11427/8498 eng application/pdf Department of Computer Science Faculty of Science University of Cape Town
spellingShingle Computer Science
Machanick, Philip
An object-oriented library for shared-memory parallel simulations
thesis_degree_str Doctoral
title An object-oriented library for shared-memory parallel simulations
title_full An object-oriented library for shared-memory parallel simulations
title_fullStr An object-oriented library for shared-memory parallel simulations
title_full_unstemmed An object-oriented library for shared-memory parallel simulations
title_short An object-oriented library for shared-memory parallel simulations
title_sort object oriented library for shared memory parallel simulations
topic Computer Science
url http://hdl.handle.net/11427/8498
work_keys_str_mv AT machanickphilip anobjectorientedlibraryforsharedmemoryparallelsimulations
AT machanickphilip objectorientedlibraryforsharedmemoryparallelsimulations