Results 1 - 10
of
28
PYRROS: Static Task Scheduling and Code Generation for Message Passing Multiprocessors
- The 6th ACM Int'l Conf. on Supercomputing
, 1992
"... We describe a parallel programming tool for scheduling static task graphs and generating the appropriate target code for message passing MIMD architectures. The computational complexity of the system is almost linear to the size of the task graph and preliminary experiments show performance comparab ..."
Abstract
-
Cited by 81 (21 self)
- Add to MetaCart
We describe a parallel programming tool for scheduling static task graphs and generating the appropriate target code for message passing MIMD architectures. The computational complexity of the system is almost linear to the size of the task graph and preliminary experiments show performance comparable to the "best" hand-written programs. 1 Introduction In this paper, we consider static scheduling and code generation for message passing architectures. There are generally three distinct ways in addressing the programming difficulties for distributed memory architectures. The first approach considers the problem of automatic parallelization and scheduling from sequential programs. The emphasis has been in the development of compilers or software tools that will assist in programming parallel architectures [2, 16, 18, 19]. Since message passing architectures require coarse grain parallelism to be efficient, one difficulty is the identification of parallelism especially at the procedural ...
ZPL: An Array Sublanguage
- PROCEEDINGS OF THE 6TH INTERNATIONAL WORKSHOP ON LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING
, 1993
"... The notion of isolating the "common case" is a well known computer science principle. This paper describes ZPL, a language that treats data parallelism as a common case of MIMD parallelism. This separation of concerns has many benefits. It allows us to define a clean and concise language for describ ..."
Abstract
-
Cited by 30 (10 self)
- Add to MetaCart
The notion of isolating the "common case" is a well known computer science principle. This paper describes ZPL, a language that treats data parallelism as a common case of MIMD parallelism. This separation of concerns has many benefits. It allows us to define a clean and concise language for describing data parallel computations, and this in turn leads to efficient parallel execution. Our particular language also provides mechanisms for handling boundary conditions. We introduce the concepts, constructs and semantics of our new language, and give a simple example that contrasts ZPL with other data parallel languages.
Vienna-Fortran/HPF Extensions for Sparse and Irregular Problems and Their Compilation
- IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS
, 1997
"... Vienna Fortran, High Performance Fortran (HPF) and other data parallel languages have been introduced to allow the programming of massively parallel distributed-memory machines (DMMP) at a relatively high level of abstraction based on the SPMD paradigm. Their main features include directives to expr ..."
Abstract
-
Cited by 26 (10 self)
- Add to MetaCart
Vienna Fortran, High Performance Fortran (HPF) and other data parallel languages have been introduced to allow the programming of massively parallel distributed-memory machines (DMMP) at a relatively high level of abstraction based on the SPMD paradigm. Their main features include directives to express the distribution of data and computations across the processors of a machine. In this paper, we use Vienna-Fortran as a general framework for dealing with sparse data structures. We describe new methods for the representation and distribution of such data on DMMPs, and propose simple language features that permit the user to characterize a matrix as "sparse" and specify the associated representation. Together with the data distribution for the matrix, this enables the compiler and runtime system to translate sequential sparse code into explicitly parallel message-passing code. We develop new compilation and runtime techniques, which focus on achieving storage economy and reducing communi...
Analysis and transformation in the ParaScope Editor
- IN PROCEEDINGS OF THE 1991 ACM INTERNATIONAL CONFERENCE ON SUPERCOMPUTING
, 1991
"... The ParaScope Editor is a new kind of interactive parallel programming tool for developing scientific Fortran programs. It assists the knowledgeable user by displaying the results of sophisticated program analyses and by providing editing and a set of powerful interactive transformations. After an e ..."
Abstract
-
Cited by 25 (12 self)
- Add to MetaCart
The ParaScope Editor is a new kind of interactive parallel programming tool for developing scientific Fortran programs. It assists the knowledgeable user by displaying the results of sophisticated program analyses and by providing editing and a set of powerful interactive transformations. After an edit or parallelism-enhancing transformation, the ParaScope Editor incrementally updates both the analyses and source quickly. This paper describes the underlying implementation of the ParaScope Editor, paying particular attention to the analysis and representation of dependence information and its reconstruction after changes to the program. 1 Introduction The ParaScope Editor is a tool designed to help skilled users interactively transform a sequential Fortran 77 program into a parallel program with explicit parallel constructs, such as those in PCF Fortran [40]. In a language like PCF Fortran, the principal mechanism for the introduction of parallelism is the parallel loop, which specifi...
Analysis and Transformation in an Interactive Parallel Programming Tool
- EXPERIENCE
, 1993
"... The ParaScope Editor is a new kind of interactive parallel programming tool for developing scientific Fortran programs. It assists the knowledgeable user by displaying the results of sophisticated program analyses and by providing editing and a set of powerful interactive transformations. After an e ..."
Abstract
-
Cited by 23 (9 self)
- Add to MetaCart
The ParaScope Editor is a new kind of interactive parallel programming tool for developing scientific Fortran programs. It assists the knowledgeable user by displaying the results of sophisticated program analyses and by providing editing and a set of powerful interactive transformations. After an edit or parallelism-enhancing transformation, the ParaScope Editor incrementally updates both the analyses and source quickly. This paper describes the underlying implementation of the ParaScope Editor, paying particular attention to the analysis and representation of dependence information and its reconstruction after changes to the program.
Compilation of a Highly Parallel Actor-Based Language
- Proceedings of the Workshop on Languages and Compilers for Parallel Computing
, 1992
"... Hal incorporates a number of high-level language constructs such as the incremental specialization of synchronization constraints to maintain the consistency of actors at run-time, the inheritance of both code and synchronization constraints, and limited reflective capabilities to customize the syst ..."
Abstract
-
Cited by 20 (9 self)
- Add to MetaCart
Hal incorporates a number of high-level language constructs such as the incremental specialization of synchronization constraints to maintain the consistency of actors at run-time, the inheritance of both code and synchronization constraints, and limited reflective capabilities to customize the system with respect to fault tolerance. This paper describes some issues in compiling Hal, and, in particular, three source level transformations used by the compiler for Hal. Two of the transformations translate RPC-style message sending into asynchronous message sending. The third transformation performs code motion to optimize the implementation of replacement behavior. This optimization results in the reduction of object code size as well as execution time. Keywords: Actor, concurrency, synchronization constraint, inheritance, optimization This author is sponsored by a fellowship from Ministry of Education in Korea. y The work described in this paper has been made possible by generous s...
Factor-Join: A Unique Approach to Compiling Array Languages for Parallel Machines
- IN WORKSHOP ON LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING
, 1996
"... This paper describes a new approach to compiling and optimizing array languages for parallel machines. This approach first decomposes array language operations into factors, where each factor corresponds to a different communication or computation structure. Optimizations are then achieved by co ..."
Abstract
-
Cited by 13 (8 self)
- Add to MetaCart
This paper describes a new approach to compiling and optimizing array languages for parallel machines. This approach first decomposes array language operations into factors, where each factor corresponds to a different communication or computation structure. Optimizations are then achieved by combining, or joining, these factors. Because
A Parallel Programming Tool for Scheduling on Distributed Memory Multiprocessors
- in the proceedings of the Scalable High Performance Computing Conference
, 1992
"... PYRROS is a tool for scheduling and parallel code generation for distributed memory message passing architectures [35]. In this paper, we discuss several compile-time optimization techniques used in PYRROS. The scheduling part of PYRROS optimizes both data and program mapping so that the parallel ti ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
PYRROS is a tool for scheduling and parallel code generation for distributed memory message passing architectures [35]. In this paper, we discuss several compile-time optimization techniques used in PYRROS. The scheduling part of PYRROS optimizes both data and program mapping so that the parallel time is minimized. The communication and storage optimization part facilitates the generation of efficient parallel codes. The related issues of partitioning and "owner computes rule" are discussed and the importance of program scheduling is demonstrated. 1 Introduction One of the obstacles in the development of parallelizing compilers is the automatic identification of embedded parallelism in a sequential program. This is because the dependence analysis problem is NP-hard. Significant progress has been made in obtaining approximate solutions [31]. However, the false dependencies found in approximated solutions could have a negative impact in effective parallelization. This was demonstrated ...
Compiler Technology for Machine-Independent Parallel Programming
, 1993
"... Historically, the principal achievement of compiler technology has been to make it possible to program in a high-level, machine-independent style. The absence of compiler technology to provide such a style for parallel computers is the main reason these systems have not found widespread acceptance. ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Historically, the principal achievement of compiler technology has been to make it possible to program in a high-level, machine-independent style. The absence of compiler technology to provide such a style for parallel computers is the main reason these systems have not found widespread acceptance. This paper examines the prospects for machineindependent parallel programming, concentrating on Fortran D and High Performance Fortran, which support machine-independent expression of "data parallelism." 1.0 Introduction One of the principal goals of compiler technology has been the support of a machine-independent programming interface. The substantial personnel resources required to develop a significant application program make it imperative that the programming investment be protected against the changes in target machine architecture that are a fixture of the evolving computer industry. Without this protection, the cost of application development would be prohibitive, because the entir...
Debugging Programs After Structure-Changing Transformation
, 1997
"... Translators convert a program from one language to another, and are used to solve a wide range of problems, such as the construction of compilers, optimizers, and preprocessors. Although many tools support the creation of translators, these tools do not provide integrated support for debugging the t ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Translators convert a program from one language to another, and are used to solve a wide range of problems, such as the construction of compilers, optimizers, and preprocessors. Although many tools support the creation of translators, these tools do not provide integrated support for debugging the translator or the output of the translator. This dissertation investigates the tracking of information necessary to provide debugging capabilities for those translators that are structured as a set of program transformations operating on a tree-based representation. In this setting I describe how basic debugging capabilities can be automatically and transparently defined without semantic knowledge of the languages being translated. Furthermore, advanced debugging support, relying on the semantics of the languages and transformations, can be incorporated into this basic framework in a systematic manner. To evaluate this approach I have constructed Khepera, a program transformation system wit...

