Show simple item record

dc.contributor.advisorKulkarni, Prasad
dc.contributor.authorSmith, Adam R.
dc.date.accessioned2009-07-30T01:31:17Z
dc.date.available2009-07-30T01:31:17Z
dc.date.issued2009-06-16
dc.date.submitted2009
dc.identifier.otherhttp://dissertations.umi.com/ku:10442
dc.identifier.urihttp://hdl.handle.net/1808/5314
dc.description.abstractAs we move through the multi-core era into the many-core era it becomes obvi- ous that thread-based programming is here to stay. This trend in the development of general purpose hardware is augmented by the fact that while writing sequential programs is considered a non-trivial task, writing parallel applications to take ad- vantage of the advances in the number of cores in a processor severely complicates the process. Writing parallel applications requires programs and functions to be reentrant. Therefore, we cannot use globals and statics. However, globals and statics are useful in certain contexts. Globals allow an easy programming mecha- nism to share data between several functions. Statics provide the only mechanism of data hiding in C for variables that are global in scope. Writing parallel programs restricts users from using globals and statics in their programs, as doing so would make the program non-reentrant. Moreover, there is a large existing legacy code base of sequential programs that are non-reentrant, since they rely on statics and globals. Several of these sequential programs dis- play significant amounts of data parallelism by operating on independent chunks of input data, and therefore can be easily converted into parallel versions to ex- ploit multi-core processors. Indeed, several such programs have been manually converted into parallel versions. However, manually eliminating all globals and statics to make the program reentrant is tedious, time-consuming, and error-prone. In this paper we describe a system to provide a semi-automated mechanism for users to still be able to use statics and globals in their programs, and to let the compiler automatically convert them into their semantically-equivalent reentrant versions enabling their parallelization later.
dc.format.extent97 pages
dc.language.isoEN
dc.publisherUniversity of Kansas
dc.rightsThis item is protected by copyright and unless otherwise specified the copyright of this thesis/dissertation is held by the author.
dc.subjectComputer science
dc.subjectCompiler
dc.subjectParallel
dc.subjectReentrant
dc.titleCompiler Transformations to Generate Reentrant C Programs to Assist Software Parallelization
dc.typeThesis
dc.contributor.cmtememberAlexander, Perry
dc.contributor.cmtememberGill, Andrew
dc.thesis.degreeDisciplineElectrical Engineering & Computer Science
dc.thesis.degreeLevelM.S.
kusw.oastatusna
kusw.oapolicyThis item does not meet KU Open Access policy criteria.
kusw.bibid6857571
dc.rights.accessrightsopenAccess


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record