Answers are grounded in this paper and cite their sources.
Using Java for high-performance distributed computing aggravates a well-known problem: the choice between efficient message-passing environments and more convenient distributed shared memory systems which often provide additional functionalities like adaptive parallelism or fault tolerance – with the latter being imperative for Web-based computing. This paper proposes an extension to the DSM-based Charlotte system that incorporates advantages from both approaches. Annotations are used to describe the data dependencies of parallel routines. With this information, the runtime system can improve the communication efficiency while still guaranteeing the correctness of the shared memory semantics. If the correctness of these annotations can be relied upon, additional optimizations are possible, ultimately sharing primitive data types such as int across a network, making the overhead associated with accessing and sharing objects unnecessary. In this case, the annotations can be regarded as a compact representation of message-passing semantics. Thus, a program's efficiency can be improved by step-by-step incorporation of semantic knowledge. The possibility to freely mix and to easily switch between unannotated code, annotated code and shared primitive data types entails a big flexibility for the programmer. A number of measurements show significant performance improvements for annotations and annotation-based shared primitive types.
No takes yet. Share an insight, caveat, or question.
Holger Karl (1998) studied this question.
Synapse has enriched 10 related papers. Consider them for comparative context: