‹Programming› 2019
Mon 1 - Thu 4 April 2019 Genoa, Italy
Tue 2 Apr 2019 11:30 - 12:00 at Michelangelo - Implementation Aspects Chair(s): Edd Barrett

Developing parallel applications that exploit the hardware resources remains challenging. We tackle this issue for fork/join applications running on a single Java Virtual Machine (JVM) in a shared-memory multicore. An optimal fork/join application should maximize parallelism while minimizing overheads, and maximize locality while minimizing contention. Unfortunately, achieving these goals is challenging due to the complexity of tuning fork/join applications. As a result, fork/join applications often suffer from several performance issues such as excessive object creation and reclaiming, suboptimal forking, load imbalance, and inappropriate synchronization. In contrast to the extensive manual experimentation commonly required to properly tune fork/join applications, we devise a coaching tool able to automatically point developers to specific parts of such applications where performance problems originate and suggest concrete code modifications to fix them. Given the increasing popularity of fork/join parallelism on the JVM, many applications can benefit from our approach, including applications using standard Java APIs such as Streams and CompletableFuture.

Tue 2 Apr

11:00 - 12:30: MoreVMs'19 - Implementation Aspects at Michelangelo
Chair(s): Edd BarrettKing's College London
MoreVMs-201911:00 - 11:30
Fabio NiephausHasso Plattner Institute, University of Potsdam, Tim FelgentreffOracle Labs, Potsdam, Tobias PapeHasso Plattner Institute, Germany, Robert HirschfeldHasso-Plattner-Institut (HPI), Germany
MoreVMs-201911:30 - 12:00
Eduardo RosalesUniversity of Lugano, Switzerland, Andrea RosàUniversity of Lugano, Switzerland, Walter BinderUniversity of Lugano, Switzerland
MoreVMs-201912:00 - 12:30
Shoaib AkramGhent University