|Home \ Graduation Activities \ Post-Graduation Page||Login|
Single Operation Multiple Data - Data Parallelism at Subroutine Level
Multi-core processors inaugurated a new era in CPU design and organization that requires applications to be concurrent, in order to fully benefit from the parallel nature of the hardware. However, this paradigm shift in processor architecture was not followed by significant changes in mainstream programming languages. Therefore, currently software developers must often choose between performance (by resorting to parallel computing) and productivity in the software development process. This state of the art makes this area of great relevance and impact in current computer science research. In this context, this dissertation proposes the application of the data parallel paradigm at subrotine level. The invocation of a subrotine spawns several tasks, each operating upon a partition of the input dataset. The execution of these tasks is delegated to a pool of worker threads that will execute them in parallel, accordingly to a variant of the Single Program Multiple Data execution model which we baptised as Single Operation Multiple Data. This model is presented to the programmer as a Distribute-Map-Reduce paradigm, where the data of the input dataset is decomposed and submitted to multiple instances of the subrotine that are executed in parallel. The partial results are after subtmitted to a reduction operation, which will compute the final result. The model was instantiated as an extension to the Java programming language, supported by a runtime system built on top of the Java runtime for the X10 programming language. The resulting prototype is able to execute applications in both shared and distributed memory environments. The performed evaluation attest the viability of the solution. We obtained good performance results for a considerable set of applications without burdening the programmer with the writing of specialized code.
Start Date: 2011-02-15
End Date: 2012-05-24
Post-Graduation Student / Researcher / Professor: