Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Introduction to algorithms
What are race conditions?: Some issues and formalizations
ACM Letters on Programming Languages and Systems (LOPLAS)
The high performance Fortran handbook
The high performance Fortran handbook
Efficient detection of determinacy races in Cilk programs
Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures
The implementation of the Cilk-5 multithreaded language
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Scheduling multithreaded computations by work stealing
Journal of the ACM (JACM)
ZPL: A Machine Independent Programming Language for Parallel Computers
IEEE Transactions on Software Engineering - Special issue on architecture-independent languages and software tools for parallel processing
NESL: A Nested Data-Parallel Language
NESL: A Nested Data-Parallel Language
The Function of FUNCTION in LISP, or Why the FUNARG Problem Should be Called the Environment Problem
The Function of FUNCTION in LISP, or Why the FUNARG Problem Should be Called the Environment Problem
Global variable considered harmful
ACM SIGPLAN Notices
Windows System Programming (3rd Edition)
Windows System Programming (3rd Edition)
Efficient multi-word locking using randomization
Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing
A programming language
Parallel tree contraction and its application
SFCS '85 Proceedings of the 26th Annual Symposium on Foundations of Computer Science
Intel threading building blocks
Intel threading building blocks
The Cilk++ concurrency platform
Proceedings of the 46th Annual Design Automation Conference
Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
The Cilk++ concurrency platform
Proceedings of the 46th Annual Design Automation Conference
The Cilk++ concurrency platform
The Journal of Supercomputing
The Cilkview scalability analyzer
Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures
Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures
Exploiting multicore systems with Cilk
Proceedings of the 4th International Workshop on Parallel and Symbolic Computation
Using memory mapping to support cactus stacks in work-stealing runtime systems
Proceedings of the 19th international conference on Parallel architectures and compilation techniques
Concurrent programming with revisions and isolation types
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Parallelism generics for Ada 2005 and beyond
Proceedings of the ACM SIGAda annual international conference on SIGAda
Three layer cake for shared-memory programming
Proceedings of the 2010 Workshop on Parallel Programming Patterns
Lightweight parallel accumulators using C++ templates
Proceedings of the 4th International Workshop on Multicore Software Engineering
Semantics of concurrent revisions
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Parallel programming of general-purpose programs using task-based programming models
HotPar'11 Proceedings of the 3rd USENIX conference on Hot topic in parallelism
Prettier concurrency: purely functional concurrent revisions
Proceedings of the 4th ACM symposium on Haskell
Two for the price of one: a model for parallel and incremental computation
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Stack safe parallel recursion with paraffin
SIGAda '11 Proceedings of the 2011 ACM annual international conference on Special interest group on the ada programming language
Multicore C++ Standard Template Library in a Generative Way
Electronic Notes in Theoretical Computer Science (ENTCS)
A proposal for user-defined reductions in OpenMP
IWOMP'10 Proceedings of the 6th international conference on Beyond Loop Level Parallelism in OpenMP: accelerators, Tasking and more
Memory-mapping support for reducer hyperobjects
Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
Tuple switching network-When slower may be better
Journal of Parallel and Distributed Computing
Deterministic scale-free pipeline parallelism with hyperqueues
SC '13 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
Parallelism in Ada: general model and ravenscar
ACM SIGAda Ada Letters
Analysis of dependence tracking algorithms for task dataflow execution
ACM Transactions on Architecture and Code Optimization (TACO)
Hi-index | 0.00 |
This paper introduces hyperobjects, a linguistic mechanism that allows different branches of a multithreaded program to maintain coordinated local views of the same nonlocal variable. We have identified three kinds of hyperobjects that seem to be useful -- reducers, holders, and splitters -- and we have implemented reducers and holders in Cilk++, a set of extensions to the C++ programming language that enables "dynamic" multithreaded programming in the style of MIT Cilk. We analyze a randomized locking methodology for reducers and show that a work-stealing scheduler can support reducers without incurring significant overhead.