Abstract:
Parallel and concurrent programming is essential for leveraging the increasingly prevalent multi-core and multi-processor systems. Unfortunately, the underlying complexity typically affects the benefits of the parallel and concurrent approach. Rightly so, owing to the relative complexity, it is considered a comparatively advanced form of programming. To that end, the directives based incremental parallelism approach achieves an uncomplicated and expressive parallelism and has led to a wide adoption of technologies like OpenMP. Even then, this approach finds limited use in the development of an object oriented interactive application because of two dominant reasons. Firstly, the OpenMP specification does not suggest a binding in the context of object oriented languages (except for C++, by extension for C), which are primarily used to develop such applications. Secondly, the composition and runtime of interactive applications is distinctively different from that of conventional batch-type programs. This thesis studies the nature of interactive applications and looks at the mismatch between their nature and OpenMP’s model. It focuses on studying and extending the OpenMP semantics and data environment for an object oriented language, here Java. Then, it explores new ideas to extend OpenMP for object oriented applications with a Graphical User Interface (GUI). A new compiler-runtime system, called Pyjama, is presented in this thesis. It introduces OpenMP-like conventional constructs and extended GUI-aware constructs, in Java. It fosters the development of applications for desktops, smartphones and tablets, using the proposed constructs. Furthermore, in the spirit of modern software development methodologies, this thesis presents PJPlugin, an Eclipse plug-in to enable the programming with Pyjama compiler-runtime system in the Eclipse environment. Finally, the performance evaluation of the proposed system is presented. The performance of the conventional constructs is evaluated against the traditional methods and the related systems by using the parallel Java Grande Forum (JGF) benchmarks. The GUI-aware constructs are evaluated using a set of specifically developed GUI applications. Acknowledging the relevance of mobile devices, the proposed system supports the Android platform and has been evaluated using a set of Android applications.