Process-based decomposition and multicore performance : case studies from Stringology

Please be advised that the site will be down for maintenance on Sunday, September 1, 2024, from 08:00 to 18:00, and again on Monday, September 2, 2024, from 08:00 to 09:00. We apologize for any inconvenience this may cause.

Show simple item record

dc.contributor.advisor Kourie, Derrick G.
dc.contributor.coadvisor Watson, Bruce William
dc.contributor.postgraduate Strauss, Marthinus David
dc.date.accessioned 2017-07-13T06:05:36Z
dc.date.available 2017-07-13T06:05:36Z
dc.date.created 2017-09-08
dc.date.issued 2017
dc.description Thesis (PhD)--University of Pretoria, 2017. en_ZA
dc.description.abstract Current computing hardware supports parallelism at various levels. Conventional programming techniques, however, do not utilise efficiently this growing resource. This thesis seeks a better fit between software and current hardware while following a hardware-agnostic software development approach. This allows the programmer to remain focussed on the problem domain. The thesis proposes process-based problem decomposition as a natural way to structure a concurrent implementation that may also improve multicore utilisation and, consequently, run-time performance. The thesis presents four algorithms as case studies from the domain of string pattern matching and finite automata. Each case study is conducted in the following manner. The particular sequential algorithm is decomposed into a number of communicating concurrent processes. This decomposition is described in the process algebra CSP. Hoare's CSP was chosen as one of the best known process algebras, for its expressive power, conciseness, and overall simplicity. Once the CSP-based process description has brought ideas to a certain level of maturity, the description is translated into a process-based implementation. The Go programming language was used for the implementation as its concurrency features were inspired by CSP. The performance of the process-based implementation is then compared against its conventional sequential version (also provided in Go). The goal is not to achieve maximal performance, but to compare the run-time performance of an ``ordinary'' programming effort that focussed on a process-based solution over a conventional sequential implementation. Although some implementations did not perform as well as others, some did significantly outperform their sequential counterparts. The thesis thus provides prima facie evidence that a process-based decomposition approach is promising for achieving a better fit between software and current multicore hardware. en_ZA
dc.description.availability Unrestricted en_ZA
dc.description.degree PhD en_ZA
dc.description.department Computer Science en_ZA
dc.identifier.citation Strauss, MD 2017, Process-based decomposition and multicore performance : case studies from Stringology, PhD Thesis, University of Pretoria, Pretoria, viewed yymmdd <http://hdl.handle.net/2263/61273> en_ZA
dc.identifier.other S2017
dc.identifier.uri http://hdl.handle.net/2263/61273
dc.language.iso en en_ZA
dc.publisher University of Pretoria
dc.rights © 2017, University of Pretoria. All rights reserved. The copyright in this work vests in the University of Pretoria. No part of this work may be reproduced or transmitted in any form or by any means, without the prior written permission of the University of Pretoria.
dc.subject UCTD en_ZA
dc.subject Regular expressions
dc.subject Finite automata
dc.subject Process based decomposition
dc.subject CSP
dc.title Process-based decomposition and multicore performance : case studies from Stringology en_ZA
dc.type Thesis en_ZA


Files in this item

This item appears in the following Collection(s)

Show simple item record