05.08.2014 Views

here - Stefan-Marr.de

here - Stefan-Marr.de

here - Stefan-Marr.de

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

9.5. Future Work<br />

9.5.1. Support for Parallel Programming<br />

Sec. 3.2.4.1 i<strong>de</strong>ntified requirements for the support of parallel programming in<br />

multi-language VMs. While this dissertation did not pursue the corresponding<br />

research questions, they are relevant for the future. The required mechanisms<br />

for adaptive optimization and monitoring are not yet wi<strong>de</strong>ly supported<br />

in VMs and could be beneficial to parallel programming and beyond. Thus,<br />

future work will investigate how the optimization infrastructure, typically<br />

related to just-in-time compilation, can be exposed to language and library<br />

implementers. Related work in that direction is for instance the Graal project<br />

of Oracle for the JVM [Würthinger, 2011]. Furthermore, future work needs to<br />

investigate how runtime monitoring can be realized to enable flexible monitoring<br />

of execution and instrumentation of co<strong>de</strong> by language and library<br />

implementers to gather the relevant information to perform adaptive optimizations<br />

for a wi<strong>de</strong> range of parallel programming techniques.<br />

T<strong>here</strong> is strong potential for such techniques to facilitate language implementation<br />

on top of multi-language VMs to enable them to utilize the available<br />

optimization infrastructure to gain optimal performance.<br />

9.5.2. Support for Just-in-Time Compilation<br />

Future work needs to <strong>de</strong>velop a strategy to support the OMOP in just-in-time<br />

(JIT) compiling VMs to enable its adoption in high-performance JVMs or CLI<br />

runtimes.<br />

One challenge with the OMOP is the notion of ownership. One of the <strong>de</strong>sign<br />

goals was to enable the use of libraries in different domains. Thus, instead<br />

of using a metaclass-based approach w<strong>here</strong> the meta relation is based<br />

on a pre<strong>de</strong>termined relation with the metaclass, the OMOP uses a dynamic<br />

solution based on object ownership.<br />

However, for highly efficient native co<strong>de</strong>, this flexibility is a problem, because<br />

the co<strong>de</strong> needs to account for changing owners of objects which could<br />

preclu<strong>de</strong> operations such as inlining that are necessary to achieve the <strong>de</strong>sired<br />

performance.<br />

Nevertheless, it may be assumed that in common applications object graphs<br />

and computations will be less dynamic than they potentially could be. Thus,<br />

a JIT compiler could optimistically compile a method based on the currently<br />

known object and ownership configuration. Standard compiler optimizations<br />

could then be applied to inline the intercession handlers and remove the overhead<br />

of reflective operations to obtain optimal co<strong>de</strong>. Instead of performing<br />

243

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

Saved successfully!

Ooh no, something went wrong!