The programming of parallel and distributed computers, ranging from embedded multi-cores to top-500 HPC systems, is situated at a relatively low level of abstraction. In practice, the programmer must not only identify and describe the parallelism that exists in the program but (s)he must also re-structure the parallel code and redefine data structures to optimize the program for every new parallel processor and system architecture.
The task data-flow execution model is a recent approach that aims to simplify parallel programming. It enables dynamic expression of parallelism in the sense that the parallelism is extracted during execution, as opposed to models where parallelism is described statically in the program text. A common approach to task data-flow execution requires that the programmer specifies the memory footprint of each task in the program: what memory locations it will access and whether that access will be read-only, write-only or read/write. The runtime system then infers the dependencies between tasks based on the order by which they are launched and on the overlap of their memory footprints. This process is very similar to how an out-of-order superscalar processor extracts instruction-level parallelism on the fly.
The goal of this project is to further develop the task data-flow model and demonstrate its applicability. The project will consider improvements and extensions to the programming language. It will define new constructs to express parallelism and it will investigate their implementation in the runtime system. Furthermore, the project will consider compile-time optimization and restructuring of task data-flow programs. Compile-time optimization has the potential to reduce runtime system overheads, to restructure parallel code in order to expose more parallelism, and to reduce the specificity of optimizations in task data-flow programs for particular processor architectures. The long-term effect of this project is to simplify parallel programming, which is becoming an increasingly important problem due to the prevalence of multi-core processors.
This project will be executed in the context of on-going research in the cluster on High-Performance and Distributed Computing on optimizing and exploiting memory locality in task data-flow programs, on energy-efficient computing and on emerging non-volatile memory technologies.
A minimum 2.1 honours degree or equivalent in Computer Science or relevant degree is required.
This 3 year PhD studentship, funded by the Department for Employment and Learning (DEL), commences on 1 October 2013, covers approved tuition fees and a maintenance grant (unknown for 2013/14) is approximately £13,000 - £14,000.
Applicants should apply electronically through the Queen's online application portal at: https://dap.qub.ac.uk/portal/
Further information available at: http://www.qub.ac.uk/schools/eeecs/PhD/PostgraduateResearchScholarships/
|Supervisor Name:||Dr. Hans Vandierendonck|
|Address:||Bernard Crossland Building,
18 Malone Road
|Tel:||+44 28(0) 9097 4654|
Deadline for Submission of Applications: 7th March 2013
For further information on Research Area click on link below: