Title :
High-level multicore programming with XJava
Author :
Otto, Frank ; Pankratius, Victor ; Tichy, Walter F.
Author_Institution :
Univ. of Karlsruhe, Karlsruhe
Abstract :
Multicore chips are becoming mainstream, but programming them is difficult because the prevalent thread-based programming model is error-prone and does not scale well. To address this problem, we designed XJava, an extension of Java that permits the direct expression of producer/consumer, pipeline, master/slave, and data parallelism. The central concept of the extension is the task, a parallel activity similar to a filter in Unix. Tasks can be combined with new operators to create arbitrary nestings of parallel activities. Preliminary experience with XJava and its compiler suggests that the extensions lead to code savings and reduce the potential for synchronization defects, while preserving the advantages of object-orientation and type-safety. The proposed extensions provide intuitive ldquowhat-you-see-is-what-you-getrdquo parallelism. They also enable other software tools, such as auto-tuning and accurate static analysis for race detection.
Keywords :
Java; Unix; microprocessor chips; multi-threading; Unix; XJava; data parallelism; high-level multicore programming; multicore chips; software tools; static analysis; synchronization defects; thread-based programming model; Filters; Graphics; Java; Libraries; Master-slave; Multicore processing; Parallel processing; Parallel programming; Pipelines; Signal processing;
Conference_Titel :
Software Engineering - Companion Volume, 2009. ICSE-Companion 2009. 31st International Conference on
Conference_Location :
Vancouver, BC
Print_ISBN :
978-1-4244-3495-4
DOI :
10.1109/ICSE-COMPANION.2009.5071011