Research

 

CSI ]   [ ETH ]


Lab Manager ]

LST Home ]     [ People ]     [ Research ]     [ Teaching ]
[ Publications ]     [ Research Opportunities ]     [ Partners & Supporters ]     [ Earlier Work ]

Compiler-Based Object Consistency (Preliminary Version)

Christoph von Praun,  Thomas Gross,  Compiler-Based Object Consistency (Preliminary Version), Workshop on Caching, Coherence and Consistency (WC3 2001), June 2001. [WC3_2001.pdf  WC3_2001.ps  WC3_2001.ps.gz]
An application developer rarely interacts with the memory model provided by the bare machine; instead, the model that is created by layering compiler and runtime system over the hardware determines the abstraction for the programmer. Sequential Consistency (SC) is a fundamental memory model for multi-threaded environments. In an object-oriented environment, the notion of consistency extends beyond individual memory locations: Object Consistency (OC) mandates that no intermediary state created during method execution becomes visible, i.e., operations on objects are locally serializable. In existing systems, optimizations of memory access operations by the compiler and the hardware implementation (like reordering or out-of-order execution) wreack havoc with SC and thus also with OC. This paper describes a solution that provides OC to the programmer while allowing traditional compiler transformations when executing on realistic machines. The key idea is to separate the aspects of control-flow and memory synchronizations shifting the responsibility to maintain memory and Object Consistency from the programmer to the compiler and (language) runtime system. The integrated system maintains dynamic consistency domains for each thread and synchronizes memory whenever the domain is enlarged or reduced. In addition, accesses violating OC are detected. Since executions always experience a SC memory view, such parallel programs are platform-independent. The paper contains a preliminary evaluation based on Java, demonstrating that compile-time analysis for typical programs unveils sufficient information about concurrency; this information helps to significantly reduce the amount of memory synchronization and access checking necessary for providing OC.
[ Publications ]     [ Research Opportunities ]     [ Partners & Supporters ]     [ Earlier Work ]