Static scheduling of synchronous data flow programs for digital signal processing
IEEE Transactions on Computers
I-structures: data structures for parallel computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Executing a Program on the MIT Tagged-Token Dataflow Architecture
IEEE Transactions on Computers
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
An evaluation of medium-grain dataflow code
International Journal of Parallel Programming
Parallel computing with the Sisal applicative language: programmability and performance issues
Software—Practice & Experience
Lucid, a nonprocedural language with iteration
Communications of the ACM
A preliminary architecture for a basic data-flow processor
ISCA '75 Proceedings of the 2nd annual symposium on Computer architecture
The architecture and system method of DDM1: A recursively structured Data Driven Machine
ISCA '78 Proceedings of the 5th annual symposium on Computer architecture
Advances in dataflow programming languages
ACM Computing Surveys (CSUR)
Dynamic circular work-stealing deque
Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures
Data-Driven Multithreading Using Conventional Microprocessors
IEEE Transactions on Parallel and Distributed Systems
Exploiting coarse-grained task, data, and pipeline parallelism in stream programs
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
CellSs: a programming model for the cell BE architecture
Proceedings of the 2006 ACM/IEEE conference on Supercomputing
A Practical Data Flow Computer
Computer
TFlux: A Portable Platform for Data-Driven Multithreading on Commodity Multicore Systems
ICPP '08 Proceedings of the 2008 37th International Conference on Parallel Processing
Hierarchical Task-Based Programming With StarSs
International Journal of High Performance Computing Applications
Effective communication and computation overlap with hybrid MPI/SMPSs
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Handling task dependencies under strided and aliased references
Proceedings of the 24th ACM International Conference on Supercomputing
Scientific Programming - Exploring Languages for Expressing Medium to Massive On-Chip Parallelism
A stream-computing extension to OpenMP
Proceedings of the 6th International Conference on High Performance and Embedded Architectures and Compilers
Habanero-Java: the new adventures of old X10
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
A Unified Scheduler for Recursive and Task Dataflow Parallelism
PACT '11 Proceedings of the 2011 International Conference on Parallel Architectures and Compilation Techniques
TERAFLUX: exploiting dataflow parallelism in teradevices
Proceedings of the 9th conference on Computing Frontiers
Deterministic scale-free pipeline parallelism with hyperqueues
SC '13 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
Hi-index | 0.00 |
We present OpenStream, a data-flow extension of OpenMP to express dynamic dependent tasks. The language supports nested task creation, modular composition, variable and unbounded sets of producers/consumers, and first-class streams. These features, enabled by our original compilation flow, allow translating high-level parallel programming patterns, like dependences arising from StarSs' array regions, or universal low-level primitives like futures. In particular, these dynamic features can be embedded efficiently and naturally into an unmanaged imperative language, avoiding the complexity and overhead of a concurrent garbage collector. We demonstrate the performance advantages of a data-flow execution model compared to more restricted task and barrier models. We also demonstrate the efficiency of our compilation and runtime algorithms for the support of complex dependence patterns arising from StarSs benchmarks.