The Manchester prototype dataflow computer
Communications of the ACM - Special section on computer architecture
Data flow graph optimization in ifi
Proc. of a conference on Functional programming languages and computer architecture
Serial combinators: “optimal” grains of parallelism
Proc. of a conference on Functional programming languages and computer architecture
DI: an interactive debugging interpreter for applicative languages
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Mapping a single-assignment language onto the Warp systolic array
Proc. of a conference on Functional programming languages and computer architecture
Partitioning and scheduling parallel programs for execution on multiprocessors
Partitioning and scheduling parallel programs for execution on multiprocessors
Copy elimination in single assignment languages
Copy elimination in single assignment languages
A simple and efficient implmentation approach for single assignment languages
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Determining average program execution times and their variance
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Instruction reordering for fork-join parallelism
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Partitioning parallel programs for macro-dataflow
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Dependence graphs and compiler optimizations
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
Multiprocessor execution of functional programs
Multiprocessor execution of functional programs
Compilation techniques for high-performance applicative computation
Compilation techniques for high-performance applicative computation
Instruction reordering for fork-join parallelism
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Optimization of array accesses by collective loop transformations
ICS '91 Proceedings of the 5th international conference on Supercomputing
Exploitation of APL data parallelism on a shared-memory MIMD machine
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
SISAL versus FORTRAN: a comparison using the Livermore loops
Proceedings of the 1990 ACM/IEEE conference on Supercomputing
Automatic partitioning of a program dependence graph into parallel tasks
IBM Journal of Research and Development
An evaluation of bottom-up and top-down thread generation techniques
MICRO 26 Proceedings of the 26th annual international symposium on Microarchitecture
Scheduling Tasks to Maximize Usage of Aggregate Variables in Place
CC '09 Proceedings of the 18th International Conference on Compiler Construction: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Communications of the ACM
Hi-index | 0.02 |
Single-assignment languages like SISAL offer parallelism at all levels—among arbitrary operations, conditionals, loop iterations, and function calls. All control and data dependencies are local, and can be easily determined from the program. Various studies of SISAL programs have shown that they contain massive amounts of potential parallelism. There are two major challenges in converting this potential parallelism into real speedup on multiprocessor systems. First, it is important to carefully select the useful parallelism in a SISAL program, so as to obtain good speedup by trading off parallelism with overhead. Second, it is important to do sequential optimizations, so that the sequential components (tasks) of the SISAL program have comparable execution times with sequential languages such as Fortran, Pascal and C. The POSC compiler system described in this paper addresses both issues by integrating previous work on efficient sequential implementation of SISAL programs with previous work on selecting the useful parallelism in a SISAL program. The combined approach is validated by real speedup measurements on a Sequent Balance multiprocessor.