Sketching concurrent data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
The impact of randomization in smoothing networks
Proceedings of the twenty-seventh ACM symposium on Principles of distributed computing
DISC '08 Proceedings of the 22nd international symposium on Distributed Computing
Proving that non-blocking algorithms don't block
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Local rely-guarantee reasoning
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient Large Almost Wait-Free Single-Writer Multireader Atomic Registers
OPODIS '08 Proceedings of the 12th International Conference on Principles of Distributed Systems
Teaching about threading: where and what?
ACM SIGACT News
Parallelization of XPath queries using multi-core processors: challenges and experiences
Proceedings of the 12th International Conference on Extending Database Technology: Advances in Database Technology
Abstraction for Concurrent Objects
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
A Basis for Verifying Multi-threaded Programs
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Progress guarantee for parallel programs via bounded lock-freedom
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Integrity Protection for Revision Control
ACNS '09 Proceedings of the 7th International Conference on Applied Cryptography and Network Security
An efficient lock-aware transactional memory implementation
Proceedings of the 4th workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems
Smoothed Analysis of Balancing Networks
ICALP '09 Proceedings of the 36th Internatilonal Collogquium on Automata, Languages and Programming: Part II
Inherent limitations on disjoint-access parallel implementations of transactional memory
Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Multicore parallel min-cost flow algorithm for CAD applications
Proceedings of the 46th Annual Design Automation Conference
Scalable nonblocking concurrent objects for mission critical code
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
The design of a task parallel library
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
The Sketching Approach to Program Synthesis
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Abstract Transformers for Thread Correlation Analysis
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Statistics-based parallelization of XPath queries in shared memory systems
Proceedings of the 13th International Conference on Extending Database Technology
Verifying safety properties of concurrent heap-manipulating programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
KStruct: preserving consistency through C annotations
Proceedings of the Fifth Workshop on Programming Languages and Operating Systems
An efficient software transactional memory using commit-time invalidation
Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
RTTM: real-time transactional memory
Proceedings of the 2010 ACM Symposium on Applied Computing
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures
TLRW: return of the read-write lock
Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures
Simplifying concurrent algorithms by exploiting hardware transactional memory
Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures
Flat combining and the synchronization-parallelism tradeoff
Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures
Help when needed, but no more: efficient read/write partial snapshot
DISC'09 Proceedings of the 23rd international conference on Distributed computing
Parallel geometric algorithms for multi-core computers
Computational Geometry: Theory and Applications
Lock-free parallel dynamic programming
Journal of Parallel and Distributed Computing
The inherent complexity of transactional memory and what to do about it
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Transactional predication: high-performance concurrent sets and maps for STM
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Verifying linearizability with hindsight
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Non-blocking binary search trees
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
JRF-E: using model checking to give advice on eliminating memory model-related bugs
Proceedings of the IEEE/ACM international conference on Automated software engineering
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Multicore parallelization of min-cost flow for CAD applications
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems - Special section on the ACM IEEE international conference on formal methods and models for codesign (MEMOCODE) 2009
parSC: synchronous parallel systemc simulation on multi-core host architectures
CODES/ISSS '10 Proceedings of the eighth IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis
Concurrent abstract predicates
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Scalable producer-consumer pools based on elimination-diffraction trees
Euro-Par'10 Proceedings of the 16th international Euro-Par conference on Parallel processing: Part II
Scalable flat-combining based synchronous queues
DISC'10 Proceedings of the 24th international conference on Distributed computing
Formal specification of MPI 2.0: Case study in specifying a practical concurrent programming API
Science of Computer Programming
Abstraction for concurrent objects
Theoretical Computer Science
Data structures in the multicore age
Communications of the ACM
Introduction to computer graphics
ACM SIGGRAPH ASIA 2010 Courses
Task management for irregular-parallel workloads on the GPU
Proceedings of the Conference on High Performance Graphics
A separation logic for refining concurrent objects
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Laws of order: expensive synchronization in concurrent algorithms cannot be eliminated
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parallelizing weighted frequency counting in high-speed network monitoring
Computer Communications
Architectural Support for Fair Reader-Writer Locking
MICRO '43 Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture
Decision procedures for the temporal verification of concurrent lists
ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
On best-effort utility accrual real-time scheduling on multiprocessors
OPODIS'10 Proceedings of the 14th international conference on Principles of distributed systems
quasi-linearizability: relaxed consistency for improved concurrency
OPODIS'10 Proceedings of the 14th international conference on Principles of distributed systems
Wait-free queues with multiple enqueuers and dequeuers
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
Invited paper: the inherent complexity of transactional memory and what to do about it
ICDCN'11 Proceedings of the 12th international conference on Distributed computing and networking
Locality-conscious lock-free linked lists
ICDCN'11 Proceedings of the 12th international conference on Distributed computing and networking
Distributed generalized dynamic barrier synchronization
ICDCN'11 Proceedings of the 12th international conference on Distributed computing and networking
Specifying and checking semantic atomicity for multithreaded programs
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
Parallel implementations of Brunotte's algorithm
Journal of Parallel and Distributed Computing
Why concurrent objects are recurrently complicated
Communications of the ACM
Breadth in depth: a 1st year introduction to parallel programming
Proceedings of the 42nd ACM technical symposium on Computer science education
Proceedings of the 2010 Workshop on Parallel Programming Patterns
Distributed agreement in tile self-assembly
Natural Computing: an international journal
GPGPU-based parallel computation: application to molecular dynamics problems
COMPUTE '11 Proceedings of the Fourth Annual ACM Bangalore Conference
A theory of skiplists with applications to the verification of concurrent datatypes
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures
Work-stealing for mixed-mode parallelism by deterministic team-building
Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures
If a picture is worth a thousand words, what would an animation be worth?
Proceedings of the 16th Western Canadian Conference on Computing Education
NDSeq: runtime checking for nondeterministic sequential specifications of parallel correctness
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Linearizable implementations do not suffice for randomized distributed computation
Proceedings of the forty-third annual ACM symposium on Theory of computing
Transactional conflict decoupling and value prediction
Proceedings of the international conference on Supercomputing
Automatic inference of memory fences
Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design
Boosting multi-core reachability performance with shared hash tables
Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design
Smart data structures: an online machine learning approach to multicore data structures
Proceedings of the 8th ACM international conference on Autonomic computing
Liveness-preserving atomicity abstraction
ICALP'11 Proceedings of the 38th international conference on Automata, languages and programming - Volume Part II
Quantitative synthesis for concurrent programs
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Progress guarantees when composing lock-free objects
Euro-Par'11 Proceedings of the 17th international conference on Parallel processing - Volume Part II
Looking for efficient implementations of concurrent objects
PaCT'11 Proceedings of the 11th international conference on Parallel computing technologies
Processing (multiple) spatio-temporal range queries in multicore settings
ADBIS'11 Proceedings of the 15th international conference on Advances in databases and information systems
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
A multi-core numerical framework for characterizing flow in oil reservoirs
Proceedings of the 19th High Performance Computing Symposia
Help when needed, but no more: Efficient read/write partial snapshot
Journal of Parallel and Distributed Computing
SMV: selective multi-versioning STM
DISC'11 Proceedings of the 25th international conference on Distributed computing
CAFÉ: scalable task pools with adjustable fairness and contention
DISC'11 Proceedings of the 25th international conference on Distributed computing
Introduction to computer graphics
SIGGRAPH Asia 2011 Courses
A rely-guarantee-based simulation for verifying concurrent program transformations
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Automatically proving linearizability
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Model checking of linearizability of concurrent list implementations
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
A methodology for creating fast wait-free data structures
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Lock cohorting: a general technique for designing NUMA locks
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Verification of software barriers
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
AdaStreams: a type-based programming extension for stream-parallelism with ada 2005
Ada-Europe'10 Proceedings of the 15th Ada-Europe international conference on Reliable Software Technologies
STM in the small: trading generality for performance in software transactional memory
Proceedings of the 7th ACM european conference on Computer Systems
OPODIS'11 Proceedings of the 15th international conference on Principles of Distributed Systems
On the implementation of concurrent objects
Dependable and Historic Computing
MEMICS'11 Proceedings of the 7th international conference on Mathematical and Engineering Methods in Computer Science
Parallel programming: design of an overview class
Proceedings of the 2011 ACM SIGPLAN X10 Workshop
A tight RMR lower bound for randomized mutual exclusion
STOC '12 Proceedings of the forty-fourth annual ACM symposium on Theory of computing
Interrupting snapshots and the JavaTM size method
Journal of Parallel and Distributed Computing
Can parallel data structures rely on automatic memory managers?
Proceedings of the 2012 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness
Reagents: expressing and composing fine-grained concurrency
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Dynamic synthesis for relaxed memory models
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Load balancing for processing spatio-temporal queries in multi-core settings
MobiDE '12 Proceedings of the Eleventh ACM International Workshop on Data Engineering for Wireless and Mobile Access
Automatic inference of memory fences
ACM SIGACT News
The renaming problem in shared memory systems: An introduction
Computer Science Review
A non-blocking internal binary search tree
Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
Proceedings of the 34th International Conference on Software Engineering
StreamPI: a stream-parallel programming extension for object-oriented programming languages
The Journal of Supercomputing
USENIX ATC'12 Proceedings of the 2012 USENIX conference on Annual Technical Conference
A case for including transactions in OpenMP II: hardware transactional memory
IWOMP'12 Proceedings of the 8th international conference on OpenMP in a Heterogeneous World
Detecting fair non-termination in multithreaded programs
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Parameterized model checking of fine grained concurrency
SPIN'12 Proceedings of the 19th international conference on Model Checking Software
Visualizing transactional memory
Proceedings of the 21st international conference on Parallel architectures and compilation techniques
Environmental Modelling & Software
Performance, scalability, and semantics of concurrent FIFO queues
ICA3PP'12 Proceedings of the 12th international conference on Algorithms and Architectures for Parallel Processing - Volume Part I
Intensional and extensional characterisation of global progress in the π-calculus
CONCUR'12 Proceedings of the 23rd international conference on Concurrency Theory
Beyond expert-only parallel programming?
Proceedings of the 2012 ACM workshop on Relaxing synchronization for multicore and manycore scalability
Computability in distributed computing: a Tutorial
ACM SIGACT News
ACM SIGACT News
Pessimistic software lock-elision
DISC'12 Proceedings of the 26th international conference on Distributed Computing
Quantitative relaxation of concurrent data structures
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Logical relations for fine-grained concurrency
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Multi-threaded asp solving with clasp
Theory and Practice of Logic Programming
Journal of Parallel and Distributed Computing
Compiler aided manual speculation for high performance concurrent data structures
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Fast concurrent queues for x86 processors
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Modular reasoning about separation of concurrent data structures
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Checking and enforcing robustness against TSO
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
GPUfs: integrating a file system with GPUs
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Concurrent libraries with foresight
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Modular verification of linearizability with non-fixed linearization points
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
A scalable lock manager for multicores
Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data
RadixVM: scalable address spaces for multithreaded applications
Proceedings of the 8th ACM European Conference on Computer Systems
MemC3: compact and concurrent MemCache with dumber caching and smarter hashing
nsdi'13 Proceedings of the 10th USENIX conference on Networked Systems Design and Implementation
Science of Computer Programming
Nonblocking algorithms and scalable multicore programming
Communications of the ACM
The SkipTrie: low-depth concurrent search without rebalancing
Proceedings of the 2013 ACM symposium on Principles of distributed computing
Drop the anchor: lightweight memory management for non-blocking data structures
Proceedings of the twenty-fifth annual ACM symposium on Parallelism in algorithms and architectures
Nonblocking Algorithms and Scalable Multicore Programming
Queue - Concurrency
Effective use of non-blocking data structures in a deduplication application
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
Towards a universal construction for transaction-based multiprocess programs
Theoretical Computer Science
HARS: A hardware-assisted runtime software for embedded many-core architectures
ACM Transactions on Embedded Computing Systems (TECS) - Special Issue on Design Challenges for Many-Core Processors, Special Section on ESTIMedia'13 and Regular Papers
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
ACM SIGOPS 24th Symposium on Operating Systems Principles
VirtuOS: an operating system with kernel virtualization
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
Non-blocking parallel subset construction on shared-memory multicore architectures
AusPDC '13 Proceedings of the Eleventh Australasian Symposium on Parallel and Distributed Computing - Volume 140
Multi-Core BDD Operations for Symbolic Reachability
Electronic Notes in Theoretical Computer Science (ENTCS)
On the power of breakable objects
Theoretical Computer Science
An epistemic perspective on consistency of concurrent computations
CONCUR'13 Proceedings of the 24th international conference on Concurrency Theory
Characterizing progress properties of concurrent objects via contextual refinements
CONCUR'13 Proceedings of the 24th international conference on Concurrency Theory
Aspect-Oriented linearizability proofs
CONCUR'13 Proceedings of the 24th international conference on Concurrency Theory
A contention-friendly binary search tree
Euro-Par'13 Proceedings of the 19th international conference on Parallel Processing
Lightweight contention management for efficient compare-and-swap operations
Euro-Par'13 Proceedings of the 19th international conference on Parallel Processing
P2EST: parallelization philosophies for evaluating spatio-temporal queries
Proceedings of the 2nd ACM SIGSPATIAL International Workshop on Analytics for Big Geospatial Data
Scalable, high performance ethernet forwarding with CuckooSwitch
Proceedings of the ninth ACM conference on Emerging networking experiments and technologies
Freeze after writing: quasi-deterministic parallel programming with LVars
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Fence-free work stealing on bounded TSO processors
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems
GPUfs: Integrating a file system with GPUs
ACM Transactions on Computer Systems (TOCS)
A practical wait-free simulation for lock-free data structures
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
Improving execution unit occupancy on SMT-based processors through hardware-aware thread scheduling
Future Generation Computer Systems
Rely-Guarantee-Based Simulation for Compositional Verification of Concurrent Program Transformations
ACM Transactions on Programming Languages and Systems (TOPLAS)
On Automation in the Verification of Software Barriers: Experience Report
Journal of Automated Reasoning
Hi-index | 0.05 |
This book is the first comprehensive presentation of the principles and tools available for programming multiprocessor machines. It is of immediate use to programmers working with the new architectures. For example, the next generation of computer game consoles will all be multiprocessor-based, and the game industry is currently struggling to understand how to address the programming challenges presented by these machines.This change in the industry is so fundamental that it is certain to require a significant response by universities, and courses on multicore programming will become a staple of computer science curriculums.The authors are well known and respected in this community and both teach and conduct research in this area. Prof. Maurice Herlihy is on the faculty of Brown University. He is the recipient of the 2003 Dijkstra Prize in distributed computing. Prof. Nir Shavit is on the faculty of Tel-Aviv University and a member of the technical staff at Sun Microsystems Laboratories. In 2004 they shared the Gdel Prize, the highest award in theoretical computer science. * THE book on multicore programming, the new paradigm of computer science* Written by the world's most revered experts in multiprocessor programming and performance* Includes examples, models, exercises, PowerPoint slides, and sample Java programs