Fork/Join Parallelism in the Wild: Documenting Patterns and Anti-patterns in Java Programs Using the Fork/Join Framework

Mattias De Wael 1 Stefan Marr 2 Tom Van Cutsem 1
1 Software Languages Lab
SLL - Software Languages Lab
2 RMOD - Analyses and Languages Constructs for Object-Oriented Application Evolution
LIFL - Laboratoire d'Informatique Fondamentale de Lille, Inria Lille - Nord Europe
Abstract : Now that multicore processors are commonplace, developing parallel software has escaped the confines of high-performance computing and enters the mainstream. The Fork/Join framework, for instance, is part of the standard Java platform since version 7. Fork/Join is a high-level parallel programming model advocated to make parallelizing recursive divide-and-conquer algorithms particularly easy. While, in theory, Fork/Join is a simple and effective technique to expose parallelism in applications, it has not been investigated before whether and how the technique is applied in practice. We therefore performed an empirical study on a corpus of 120 open source Java projects that use the framework for roughly 362 different tasks. On the one hand, we confirm the frequent use of four best-practice patterns (Sequential Cutoff, Linked Subtasks, Leaf Tasks, and avoiding unnecessary forking) in actual projects. On the other hand, we also discovered three recurring anti-patterns that potentially limit parallel performance: sub-optimal use of Java collections when splitting tasks into subtasks as well as when merging the results of subtasks, and finally the inappropriate sharing of resources between tasks. We document these anti-patterns and study their impact on performance.
Type de document :
Communication dans un congrès
PPPJ'14, International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, Sep 2014, Cracow, Poland. 2014, 〈10.1145/2647508.2647511〉
Liste complète des métadonnées

Littérature citée [22 références]  Voir  Masquer  Télécharger

https://hal.inria.fr/hal-01064872
Contributeur : Lse Lse <>
Soumis le : mercredi 17 septembre 2014 - 12:47:12
Dernière modification le : jeudi 11 janvier 2018 - 06:22:25
Document(s) archivé(s) le : jeudi 18 décembre 2014 - 10:56:11

Fichier

pppj14-dewael-et-al-forkjoin-p...
Fichiers produits par l'(les) auteur(s)

Identifiants

Citation

Mattias De Wael, Stefan Marr, Tom Van Cutsem. Fork/Join Parallelism in the Wild: Documenting Patterns and Anti-patterns in Java Programs Using the Fork/Join Framework. PPPJ'14, International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, Sep 2014, Cracow, Poland. 2014, 〈10.1145/2647508.2647511〉. 〈hal-01064872〉

Partager

Métriques

Consultations de la notice

424

Téléchargements de fichiers

464