Results 1 -
8 of
8
Jade: A High-Level, Machine-Independent Language for Parallel Programming
- IEEE Computer
, 1993
"... this memory is called a shared object. Pointers to shared objects are identified in a Jade program using the shared type qualifier. For example: ..."
Abstract
-
Cited by 82 (8 self)
- Add to MetaCart
this memory is called a shared object. Pointers to shared objects are identified in a Jade program using the shared type qualifier. For example:
Synchronization Transformations for Parallel Computing
- In Proceedings of the 24th Annual ACM Symposium on the Principles of Programming Languages
, 1997
"... ion Transformations Since the synchronization transformations deal primarily with the movement and manipulation of synchronization nodes, it is appropriate for the compiler to use an abstract, simplified representation of the actual computation in the ICFG. The compiler can therefore apply several t ..."
Abstract
-
Cited by 24 (8 self)
- Add to MetaCart
ion Transformations Since the synchronization transformations deal primarily with the movement and manipulation of synchronization nodes, it is appropriate for the compiler to use an abstract, simplified representation of the actual computation in the ICFG. The compiler can therefore apply several transformations that replace concrete representations of computation with more abstract representations. The end result is a simpler and smaller ICFG, which improves the performance and functionality of the synchronization optimization algorithms. The transformations are as follows: ---Node Abstraction: A connected set of assignment, conditional nodes or summary nodes with a single incoming edge and a single outgoing edge is replaced by a single summary node. Figure 2 presents this transformation. \Delta 5 ---Procedure Abstraction: The invocation of a procedure that consists only of assignment, conditional nodes or summary nodes is replaced with a single node summarizing the execution of t...
Heterogeneous Parallel Programming in Jade
- In Proceedings of Supercomputing '92
, 1992
"... This paper presents Jade, a high-level parallel programming language for managing coarse-grain concurrency. Jade simplifies programming by providing the programmer with the abstractions of sequential execution and a shared address space. Jade programmers augment sequential, imperative programs with ..."
Abstract
-
Cited by 22 (9 self)
- Add to MetaCart
This paper presents Jade, a high-level parallel programming language for managing coarse-grain concurrency. Jade simplifies programming by providing the programmer with the abstractions of sequential execution and a shared address space. Jade programmers augment sequential, imperative programs with constructs that declare how parts of the program access data; the Jade implementation dynamically interprets this information to execute the program in parallel. This parallel execution preserves the serial semantics of the original program. Jade has been implemented as an extension to C on shared-memory multiprocessors, a message-passing machine, networks of heterogeneous workstations, and systems with specialpurpose functional units. Programs written in Jade run on all of these platforms without modification. 1
Semantic Analysis of Shared-Memory Concurrent Languages using Abstract Model-Checking
, 1995
"... Model-Checking R'egis Cridlig Laboratoire d'Informatique de l'Ecole Normale Sup'erieure (URA CNRS 1327) Abstract In this article we present a true-concurrent operational semantics of a Pascal-like language with a parallel operator and shared memory. This semantics is based on a higherdimensiona ..."
Abstract
-
Cited by 21 (1 self)
- Add to MetaCart
Model-Checking R'egis Cridlig Laboratoire d'Informatique de l'Ecole Normale Sup'erieure (URA CNRS 1327) Abstract In this article we present a true-concurrent operational semantics of a Pascal-like language with a parallel operator and shared memory. This semantics is based on a higherdimensional transition system that is able to model the asynchronous execution of concurrent operations. We show how it can be usefully abstracted to finite automata via abstract interpretation using folding of states and appropriate widening operators. Then we compute static properties relevant to the standard concurrent execution of the program by means of modelchecking on the abstract automata that were previously derived; for instance, approximations of the values of shared variables and temporal properties about standard execution paths can be obtained effectively with a high degree of accuracy. 1 Introduction In the area of static analysis of concurrent programs, that is the effective computat...
Static Analysis of Memory Accesses in Multithreaded and Recursive Programs
, 1990
"... by Radu Rugina All Rights Reserved iii Curriculum Vitae ..."
An Intensional Investigation of Parallelism
, 1994
"... Denotational semantics is usually extensional in that it deals only with input/output properties of programs by making the meaning of a program a function. Intensional semantics maps a program into an algorithm, thus enabling one to reason about complexity, order of evaluation, degree of parallelism ..."
Abstract
- Add to MetaCart
Denotational semantics is usually extensional in that it deals only with input/output properties of programs by making the meaning of a program a function. Intensional semantics maps a program into an algorithm, thus enabling one to reason about complexity, order of evaluation, degree of parallelism, efficiency-improving program transformations, etc. I propose to develop intensional models for a number of parallel programming languages. The semantics will be implemented, resulting in a programming language of parallel algorithms, called CDSP. Applications of CDSP will be developed to determine its suitability for actual use. The thesis will hopefully make both theoretical and practical contributions: as a foundational study of parallelism by looking at the expressive power of various constructs, and with the design, implementation, and applications of an intensional parallel programming language. 1 Introduction Denotational semantics has now been around for about 25 years, which makes...
Semantic Analysis of a Concurrent Pascal (Extended Abstract)
"... In this article we present a true-concurrent operational semantics of a Pascal-like language with a parallel operator and shared memory. This semantics is based on a higherdimensional transition system that can model the asynchronous execution of concurrent operations. We show how it can be usefully ..."
Abstract
- Add to MetaCart
In this article we present a true-concurrent operational semantics of a Pascal-like language with a parallel operator and shared memory. This semantics is based on a higherdimensional transition system that can model the asynchronous execution of concurrent operations. We show how it can be usefully abstracted to finite automata via abstract interpretation using folding of states and appropriate widening operators. Then we compute static properties about the standard concurrent execution of the program by means of model-checking on the abstract automata that were previously derived: for instance,approximations of the values of shared variables and temporal properties about standard execution paths can be computed effectively. 1 Introduction In the area of static analysis of concurrent programs, that is effectively computing an approximate description of their execution for the purpose of verification or optimization, much work remains to be done: there is not (not yet?) any standard m...
Synchronization Transformations for Parallel Computing
, 1997
"... As parallel machines become part of the mainstream computing environment, compilers will need to apply synchronization optimizations to deliver e#cient parallel software. This paper describes a new framework for synchronization optimizations and a new set of transformations for programs that impleme ..."
Abstract
- Add to MetaCart
As parallel machines become part of the mainstream computing environment, compilers will need to apply synchronization optimizations to deliver e#cient parallel software. This paper describes a new framework for synchronization optimizations and a new set of transformations for programs that implement critical sections using mutual exclusion locks. These transformations allow the compiler to move constructs that acquire and release locks both within and between procedures and to eliminate acquire and release constructs.

