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.

3. Which Concepts for Concurrent and Parallel Progr. does a VM need to Support?<br />

namic [Thalinger and Rose, 2010] or partial evaluation [Shali and Cook, 2011]<br />

can reduce that overhead by enabling optimization of reflective calls.<br />

Ownership The notion of object ownership is used in a number of concepts<br />

such as Clojure agents, actors, and CSP to <strong>de</strong>fine policies that distinguish<br />

between entities that access an object. The implementation of ownership in<br />

a library would require an extension of every object to keep track of its<br />

owner. Runtime support in the memory management system could optimize<br />

the memory overhead by keeping track of the owner implicitly for instance<br />

by splitting the heap in regions that can belong to different owners. Similar<br />

optimizations have been proposed to keep track of meta data for garbage<br />

collection, for instance whether objects contain pointers.[Jones et al., 2011]<br />

Vector Operations VM support for vector operations enables efficient dataparallel<br />

processing of homogenous data vectors. However, they are not yet<br />

wi<strong>de</strong>ly available in VM instruction sets, even though some argue that it would<br />

provi<strong>de</strong> performance benefits [Parri et al., 2011].<br />

Conclusion From our perspective, the discussed concepts can benefit from<br />

a wi<strong>de</strong> range of different optimizations. The most notable commonality is<br />

that they could benefit from VM infrastructure that provi<strong>de</strong>s feedback for<br />

adaptive optimizations. This inclu<strong>de</strong>s information on high-level communication<br />

behavior, or<strong>de</strong>r of data accesses to high-level data structures, information<br />

about low-level data access frequencies, and access to execution profiling data.<br />

Furthermore, it would be beneficial to have a VM interface to inspect and manipulate<br />

the runtime stack, control heap layout, and the location of objects.<br />

Most of these optimizations would rely on a common access to the JIT<br />

compiler and could benefit from solutions such as Graal [Würthinger, 2011].<br />

However, it seems likely that they would also require a significant amount of<br />

infrastructure to be ad<strong>de</strong>d to a VM that is specific to a single programming<br />

concept.<br />

To conclu<strong>de</strong>, these concepts can benefit from advanced infrastructure for<br />

dynamic optimizations and the corresponding facilities for runtime feedback<br />

and monitoring.<br />

Enforcement of Semantics The following concepts require VM support for<br />

enforcing correct semantics. Some of then could also show from improved<br />

64

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

Saved successfully!

Ooh no, something went wrong!