Achille Peternier, Walter Binder, Cesare Pautasso, Daniele Bonetta
Concurrency and Computation: Practice and Experience (CPE), vol. 26, pp.71-97
Although modern computer hardware offers an increasing number of processing elements organized in nonuniform memory access (NUMA) architectures, prevailing middleware engines for executing business processes, workflows, and Web service compositions have not been optimized for properly exploiting the abundant processing resources of such machines. Amongst others, factors limiting performance are inefficient thread scheduling by the operating system, which can result in suboptimal use of system memory and CPU caches, and sequential code sections that cannot take advantage of multiple available cores. In this article, we study the performance of the JOpera process execution engine on recent multicore machines. We first evaluate its performance without any dedicated optimization for multicore hardware, showing that additional cores do not significantly improve performance, although the engine has a multithreaded design. Therefore, we apply optimizations on the basis of replication together with an improved, hardware-aware usage of the underlying resources such as NUMA nodes and CPU caches. Thanks to our optimizations, we achieve speedups from a factor of 2 up to a factor of 20 (depending on the target machine) when compared with a baseline execution 'as is'.
- Achille Peternier, Walter Binder, Cesare Pautasso, Daniele Bonetta, High Performance Execution of Service Compositions: a Multicore-aware Engine Design, Concurrency and Computation: Practice and Experience (CPE), 26:71-97, January 2014