05.08.2014 Views

here - Stefan-Marr.de

here - Stefan-Marr.de

here - Stefan-Marr.de

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

8. Evaluation: Performance<br />

all OMOP operations and does not benefit from an optimization similar to<br />

the customization check that is done by the RoarVM+OMOP implementation<br />

(cf. Sec. 7.2.1 and Sec. 8.5.3). In this case, the ad hoc implementations are more<br />

precisely tailored to the needs of the actor or STM system and do not show<br />

the same overhead.<br />

Results for Kernel Benchmarks The kernel benchmarks <strong>de</strong>picted in Fig. 8.5<br />

show a very similar result, even though the results are less extreme than for<br />

the microbenchmarks. The VM-based implementation comes very close to<br />

the i<strong>de</strong>al performance of the ad hoc implementations. The average overhead<br />

is about 28% on the given benchmarks. However, the overhead ranges from as<br />

low as 2% up to a slowdown of 2.6x. The overhead greatly <strong>de</strong>pends on the requirements<br />

of AmbientTalkST and LRSTM with respect to which intercession<br />

handlers of the OMOP have to be customized. Consi<strong>de</strong>ring only the LRSTM<br />

benchmarks, they have an average slowdown of 11% (min 2%, max 17%),<br />

which is lower than the in<strong>here</strong>nt overhead of 17% caused by the VM changes<br />

that add the OMOP (cf. Sec. 8.5.2). Thus, the OMOP provi<strong>de</strong>s a suitable unifying<br />

substrate that can facilitate efficient implementation of abstractions for<br />

concurrent programming.<br />

However, the AmbientTalkST implementation is about 48% (min 20%, max<br />

2.6x) slower on the RoarVM+OMOP. Sec. 5.5 and Sec. 9.5.3 discuss potential<br />

optimizations that could reduce this overhead for all concurrency concepts<br />

that are similar to actors, Clojure agents, and CSP.<br />

While the RoarVM+OMOP exhibits good performance characteristics compared<br />

to the ad hoc implementations, the AST-OMOP performs significantly<br />

worse. While the Fannkuch (AT) benchmark shows 5% speedup, the average<br />

runtime is 2.8x higher than the runtime of corresponding ad hoc implementations.<br />

For the NBody (AT) benchmark it is even 17.4x higher.<br />

Conclusion The experiments show that OMOP-based implementations can<br />

reach performance that is on par with ad hoc implementations. Thus, the<br />

OMOP is a viable platform for the implementation of concurrent programming<br />

concepts. The results indicate that a VM-based implementation can lead<br />

to the i<strong>de</strong>al case of performance neutral behavior while providing a common<br />

abstraction. However, t<strong>here</strong> is currently a sweet spot for abstractions similar<br />

to an STM that customize state accesses.<br />

Furthermore, results show that an AST-transformation-based implementation<br />

can show a significant performance overhead. However, this may be ac-<br />

216

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!