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

dc.contributor.advisorKourie, Derrick G.
dc.contributor.coadvisorWatson, Bruce William
dc.contributor.emailtinus.strauss@gmail.comen_ZA
dc.contributor.postgraduateStrauss, Marthinus David
dc.date.accessioned2017-07-13T06:05:36Z
dc.date.available2017-07-13T06:05:36Z
dc.date.created2017-09-08
dc.date.issued2017
dc.descriptionThesis (PhD)--University of Pretoria, 2017.en_ZA
dc.description.abstractCurrent 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.availabilityUnrestricteden_ZA
dc.description.degreePhDen_ZA
dc.description.departmentComputer Scienceen_ZA
dc.identifier.citationStrauss, 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.otherS2017
dc.identifier.urihttp://hdl.handle.net/2263/61273
dc.language.isoenen_ZA
dc.publisherUniversity 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.subjectUCTDen_ZA
dc.subjectRegular expressions
dc.subjectFinite automata
dc.subjectProcess based decomposition
dc.subjectCSP
dc.titleProcess-based decomposition and multicore performance : case studies from Stringologyen_ZA
dc.typeThesisen_ZA

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Strauss_Process_2017.pdf
Size:
5.18 MB
Format:
Adobe Portable Document Format
Description:
Thesis

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
1.75 KB
Format:
Item-specific license agreed upon to submission
Description: