The degree of parallelism, required resources, scheduling constraints, and possible optimizations, etc. are essential in determining design trade-offs (e.g., power consumption, execution time, etc). However, existing tools lack the capability of determining relevant performance parameters and the option to automatically optimize high-level specifications to make meaningful design trade-offs.
To address these problems, we present in this thesis a new profiler tool, cprof. The Clang compiler front-end is used in this tool to parse high-level specifications, and to produce instrumented source code for the purpose of profiling. This tool automatically determines, from high-level specifications, the degree of parallelism of a given source code, specified in C and C++ programming languages. Furthermore, cprof estimates the number of clock cycles necessary to complete a program, it automatically applies loop optimization techniques, it determines the lower and upper bound on throughput capacity, and finally, it generates hardware execution traces. The tool assumes that the specification is executed on a parallel Model of Computation (MoC), referred to as a Polyhedral Process Network (PPN).
The proposed tool adds new functionality to existing technologies: the estimated performance by cprof of PolyBench/C benchmarks, as compared to realistic implementations in Field-Programmable Gate Arrays (FPGA) platforms, showed to be almost identical. Cprof is capable of estimating the lower and upper bound on throughput capacity, making it possible for the designer to make performance trade-offs based on real design points. As a result, only the high-level specification is used by cprof to assist in Design Space Exploration (DSE) and to improve design quality.
Master Students: Nadia Ramjiawan,
Advisor: Bart Kienhuis, "Mapping Multiple Processes onto SPEs of the CELL BE Platform
using the SCO Model of Computation", Master Thesis, LIACS, January 2009.
Master Student: Gideon Liem,
Advisor: Bart Kienhuis,``Increasing Quality in Software Production'' ,
Master Thesis, LIACS, April 2004
2003
Master Student: Andre van der Plas,
Advisor: Bart Kienhuis,``Efficiently using foreign code; the combination
of CVS and WebDAV'' , Master Thesis, LIACS, August 2003
This thesis discusses an approach on how to restructure foreign code.
The restructuring of foreign code is supported by an argumentation.
This argumentation states the effect that restructuring has on
decreasing the cost of changes. With the approach it is possible to
turn foreign code of low quality, into code that allows itself to be
used more efficiently.
The approach discussed in this thesis has been used to improve the
quality and structure of a program called "JCVS". It has lead to the
creation of a new program called "PromptJCVS".
PromptJCVS has been used to implement the idea for a new network
system. This network system consists of the combination of WebDAV and
CVS, and is also discussed in this thesis. In the system a WebDAV
server is linked to a CVS server, which allows the functionality behind
the WebDAV interface to be extended by offering additional CVS
services.
This thesis discusses the theory behind the approach that is used for
the restructuring of foreign code. But this thesis also shows how this
approach, and its accompanying techniques, were used in practice. For
the server combination of WebDAV and CVS there is not only a theory
discussion, but also a section in which people are explained how to
install this server system themselves.