| B. Liblit and A. Aiken. Type systems for distributed data structures. In the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), January 2000. |
....reside locally using local pointers generally provide significantly better performance than access through global pointers. In fact, the performance impact is so dramatic that most UPC programmers specifically optimize for this case, and the Titanium compiler includes a specialized analysis [16] to automatically infer when such a transformation is provably legal. A result of these data dependent access patterns and shared local aliasing is that compilers for GAS languages generally have no way to know a priori which specific shared memory locations will be accessed remotely, or when ....
B. Liblit and A. Aiken. Type systems for distributed data structures. In Conference Record of POPL '00: The 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Boston, Massachusetts, 19--21 Jan. 2000.
....all) Titanium programs we want performance comparable to or better than the equivalent C or FORTRAN program. More advanced optimizations which are not fully explained herein were selected according to the research interests of group members. Local qualification inference (Liblit and Aiken [26]) data sharing inference (Liblit, Aiken, and Yelick [27] statically enforced synchronization constraints (Aiken and Gay [1] and region based memory management (Gay and Aiken [13] are orthogonal to this dissertation. The rest of this chapter describes the analysis and transformation of loops ....
B. Liblit and A. Aiken. Type systems for distributed data structures. In Conference Record of POPL'00: The 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 199--213, Boston, MA, 2000.
.... it recognizes data that is captured within the current thread and therefore inaccessible to other threads [11, 21, 98, 13, 82] The programming model may also separate shared and private data [92, 89, 81, 58] in some cases the analysis may automatically infer when pointers point to private data [65]. More elaborate analyses may recognize actions (such as acquiring a mutual exclusion lock or obtaining the only existing reference to an object) that temporarily give the thread exclusive access to specific objects potentially accessed by multiple threads. A final approach is to expect the ....
B. Liblit and A. Aiken. Type systems for distributed data structures. In Proceedings of the 27th Annual ACM Symposium on the Principles of Programming Languages, Boston, MA, Jan. 2000.
....the application of certain functions to those capabilities. For instance, we may construct a pair of capabilities. More delicately, the capabilities may be pointers to composite structures, and then adding an o set to a pointer to a pair may yield a pointer to its second component (e.g. as in [27]) Furthermore, we can study a variety of security protocols. For this purpose, we represent fresh channels, nonces, and keys as new names, and primitive cryptographic operations as functions, obtaining a simple but useful programming language perspective on security protocols (much as in the spi ....
Ben Liblit and Alexander Aiken. Type systems for distributed data structures. In Proceedings of the 27th ACM Symposium on Principles of Programming Languages, pages 199-213, January 2000.
....in fact what happens in some distributed memory applications that use pointers: all pointers are made abstract and all non local pointer references are resolved by communication. Some powerful analyses have been developed to help distinguish local from remote data in such applications, for example [18], and it will be interesting to see whether the same ideas could be used to short cut the abstraction process proposed here in the same way. The MPI Allreduce operation is rarely signi cantly faster than performing an MPI reduce, producing a value on just one processor, then broad10 casting it. ....
A. Aiken and B. Liblit, Type Systems for Distributed Data Structures, ACM Symposium on Principles of Programming Languages, to appear, January 2000. 11
....to restrict which programs are admitted by the type system without changing how accepted programs behave at run time. Soundness is addressed briefly at the close of Section 3. 3, and follows as a straightforward adaptation of a more complete proof previously published elsewhere for a related system [22]. A base expression may be an integer literal (i) or a named variable from some predefined environment (x) Function calls (f e) similarly assume that the function (f ) is predefined. A sequencing operator (e ; e) provides ordered evaluation. The language has no facilities for defining functions, ....
....be reduced, though, as early enforcement treats some data as shared which late or export enforcement could have taken as private. The set of programs accepted under each system is a strict subset of those accepted under the one before. We have adapted an earlier proof of local global soundness [22] to show that the late enforcement system is sound, from which the soundness of the other two systems follows. The additional requirements imposed by each system (e.g. no access to private data by way of a global pointer) are enforced directly by the type checking rules; correctness of these ....
B. Liblit and A. Aiken. Type systems for distributed data structures. Technical Report CSD99 -1072, University of California, Berkeley, Jan. 2000. Available at <http://sunsite. berkeley.edu/TechRepPages/CSD-99-1072>.
....these two ideas (see Section 4) Our primary thesis is that these should be separate concepts. This section explains what these two ideas are and why they are distinct. Figure 1 introduces a small data manipulation language of pointers and pairs. This language extends one used by Liblit and Aiken [21] with new features to capture data sharing behavior. For the sake of brevity, we omit a detailed formal semantics and soundness proof. The semantics is unchanged from prior work, as our extensions here serve only to restrict which programs are admitted by the type system without changing how ....
....in practice for languages where each named structure type (class) must have a single, consistent layout. An alternative would be to allow deep local pointers to remain the same size, but mark them as invalid for use by the remote processor. This possibility is explored in greater detail elsewhere [21], and is omitted here for simplicity. Types for integers, variables, and function applications are completely standard. Sequencing, pair construction, and subtyping are also given in the typical manner: e 1 : # 1 A e 2 : # 2 # #e 1 , e 2 Shared or ....
[Article contains additional citation context not shown here]
B. Liblit and A. Aiken. Type systems for distributed data structures. In Conference Record of POPL'00: The 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 199--213, Boston, Massachusetts, January 19--21, 2000.
....coordination. Any reference in a Titanium program may be declared local. Unqualified references are assumed to be global, but may be changed to local by type inference. Earlier research has shown that automatic inference of local qualifiers is quite e#ective for real Titanium programs [8]. We have added shared private mixed qualifiers in the same spirit. Unqualified references are assumed to be shared; programmers may declare references as private or mixed subject to validation by the type checker. Stronger (more private) qualifiers are added automatically using type inference ....
....not the explicit cast, or vice versa, dynamic cast failures would occur where none existed in the original program. This appears to be a general consequence of the Java type system s treatment of arrays and array casting; local qualifier inference deals with an equivalent issue in the same manner [8]. 3.2 Conditional Expressions In general, a conditional expression ( is sound provided that the two alternatives have some common supertype. However, Java is more restrictive, requiring that one of the alternatives be a supertype of the other. Thus, the following expression is not valid Java, ....
B. Liblit and A. Aiken. Type systems for distributed data structures. In Conference Record of POPL'00: The 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 199--213, Boston, Massachusetts, January 19--21, 2000.
No context found.
B. Liblit and A. Aiken. Type systems for distributed data structures. In the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), January 2000.
No context found.
B. Liblit and A. Aiken. Type systems for distributed data structures. In Conference Record of POPL '00: The 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Boston, Massachusetts, 19--21 Jan. 2000.
No context found.
Ben Liblit and Alexander Aiken. Type Systems for Distributed Data Structures. In of Programming Languages, pages 199--213, Boston, Massachusetts, January 2000.
No context found.
B. Liblit and A. Aiken. Type systems for distributed data structures. In Proceedings of the 27th Annual ACM Symposium on the Principles of Programming Languages, Boston, MA, Jan. 2000.
No context found.
B. Liblit and A. Aiken. Type systems for distributed data structures. In Conference Record of POPL '00: The 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Boston, Massachusetts, 19--21 Jan. 2000.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC