Implementing a Bare-Metal Threading Library for SHMAC
For decades, Moore's Law has stood as a symbol of the continued
performance increases achieved through technology scaling. While Moore's
observation has remained true for far longer than Moore himself
predicted, it now seems to be coming to an end. The move to multi-core
processors was motivated by thermal challenges, but is by no means a
final solution. Heterogeneous systems could potentially achieve far
greater energy efficiency than symmetric, multi-core architectures.
SHMAC is an FPGA-based architecture that intends to serve as a platform
for exploring the inherent challenges of heterogeneous, single-ISA
Since working with parallel applications on bare-metal platforms can be
difficult, a higher level of abstraction is often preferable. One such
abstraction that is familiar to most developers is the POSIX threads
API. This thesis covers the implementation of a bare-metal Pthreads
library that provides both threading and several other synchronization
primitives, such as condition variables, mutexes and barriers. The
implemented library is used to port several benchmarks from the PARSEC
suite; the results from these are presented both to showcase the current
performance of the platform and the capabilities of the Pthreads library.
As a result of the need to verify the correctness and performance of the
implemented library, the need for another tool arose: a profiler. Since
none currently existed for SHMAC, one had to be written from scratch. A
fully functional and gprof-compatible profiler was developed.
The features, implementation details and usage of this profiler is
described here as well.
Two other contributions to the SHMAC project were made as well. These
were intended to simplify the task of setting up a working development
environment and the day-to-day work with SHMAC, respectively. Both of
these will be presented in this thesis.
Place, publisher, year, edition, pages
Institutt for datateknikk og informasjonsvitenskap , 2014. , 117 p.
IdentifiersURN: urn:nbn:no:ntnu:diva-27037Local ID: ntnudaim:11446OAI: oai:DiVA.org:ntnu-27037DiVA: diva2:756644
Jahre, Magnus, FørstelektorMorrison, Donn