Parallel Task for Parallelising Object-Oriented Desktop Applications
- PDF / 1,771,628 Bytes
- 61 Pages / 439.37 x 666.142 pts Page_size
- 81 Downloads / 157 Views
Parallel Task for Parallelising Object-Oriented Desktop Applications Nasser Giacaman · Oliver Sinnen
Received: 29 April 2012 / Accepted: 16 January 2013 / Published online: 12 February 2013 © Springer Science+Business Media New York 2013
Abstract With the arrival of multi-cores for mainstream desktop systems, developers must invest the effort of parallelising their applications in order to benefit from these systems. However, the structure of these interactive desktop applications is noticeably different from the traditional batch-like applications of the engineering and scientific fields. We present Parallel Task (short ParaTask), a solution to assist the parallelisation of object-oriented applications, with the unique feature of including support for the parallelisation of graphical user interface applications. In the simple, but common, cases concurrency is introduced with a single keyword. ParaTask sets itself apart from the many existing object-oriented parallelisation approaches by integrating different task types into the same model and its careful adherence to object-oriented principles. Due to the wide variety of parallelisation needs, ParaTask provides intuitive support for dependence handling, non-blocking notification and exception handling in an asynchronous environment as well as supporting a flexible task scheduling runtime (currently work-sharing, work-stealing and a combination of the two are supported). The performance is excellent compared to traditional Java parallelisation approaches, shown using a variety of different workloads. Keywords Parallel computing · Task parallelism · Object-oriented programming · Desktop applications · Graphical user interface · Event dispatch thread
N. Giacaman (B)· O. Sinnen Department of Electrical and Computer Engineering, University of Auckland, Auckland, New Zealand e-mail: [email protected] O. Sinnen e-mail: [email protected]
123
622
Int J Parallel Prog (2013) 41:621–681
1 Introduction Despite the performance benefits, parallel computing has traditionally been (and still remains) notoriously difficult for software developers [1]. In addition to the usual challenges of developing a sequential program, parallel computing presents a new range of complications. First come the theoretical challenges of task decomposition, dependence analysis and task scheduling. Then there are the practical challenges such as synchronisation, debugging and portability. Since the objective behind parallel computing is to reduce the execution time of a program, parallelising code has traditionally been paired with general code optimisations for performance (especially in the scientific and engineering area). It is therefore no surprise that applications for these domains have been and are still written in low-level, but speed-efficient languages like Fortran or C [2]. The situation is even worse for parallel desktop applications since they are generally irregular with short run-times. They also run on non-dedicated systems, let alone knowing what the system specif
Data Loading...