A parallel-design distributed-implementation (PDDI) general-purpose computer
Theoretical Computer Science
Efficient synchronization of multiprocessors with shared memory
PODC '86 Proceedings of the fifth annual ACM symposium on Principles of distributed computing
Hierarchical correctness proofs for distributed algorithms
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Two algorithms for barrier synchronization
International Journal of Parallel Programming
Algorithms for parallel memory allocation
International Journal of Parallel Programming
Efficient synchronization primitives for large-scale cache-coherent multiprocessors
ASPLOS III Proceedings of the third international conference on Architectural support for programming languages and operating systems
Mul-T: a high-performance parallel Lisp
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Adaptive backoff synchronization techniques
ISCA '89 Proceedings of the 16th annual international symposium on Computer architecture
The periodic balanced sorting network
Journal of the ACM (JACM)
Introduction to algorithms
Counting networks and multi-processor coordination
STOC '91 Proceedings of the twenty-third annual ACM symposium on Theory of computing
Process coordination with fetch-and-increment
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
Synchronization without contention
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
Low contention linearizable counting
SFCS '91 Proceedings of the 32nd annual symposium on Foundations of computer science
STOC '92 Proceedings of the twenty-fourth annual ACM symposium on Theory of computing
Counting networks with arbitrary fan-out
SODA '92 Proceedings of the third annual ACM-SIAM symposium on Discrete algorithms
Low contention load balancing on large-scale multiprocessors
SPAA '92 Proceedings of the fourth annual ACM symposium on Parallel algorithms and architectures
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamic decentralized cache schemes for mimd parallel processors
ISCA '84 Proceedings of the 11th annual international symposium on Computer architecture
STOC '83 Proceedings of the fifteenth annual ACM symposium on Theory of computing
THE MIT ALEWIFE MACHINE: A LARGE-SCALE DISTRIBUTED-MEMORY MULTIPROCESSOR
THE MIT ALEWIFE MACHINE: A LARGE-SCALE DISTRIBUTED-MEMORY MULTIPROCESSOR
Algorithms for Scalable Synchronization on Shared-Memory Multiproceessors
Algorithms for Scalable Synchronization on Shared-Memory Multiproceessors
Elimination trees and the construction of pools and stacks: preliminary version
Proceedings of the seventh annual ACM symposium on Parallel algorithms and architectures
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
A combinatorial treatment of balancing networks
Journal of the ACM (JACM)
A steady state analysis of diffracting trees (extended abstract)
Proceedings of the eighth annual ACM symposium on Parallel algorithms and architectures
The strength of counting networks
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
Space-efficient scheduling of parallelism with synchronization variables
Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures
Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures
The decidability of distributed decision tasks (extended abstract)
STOC '97 Proceedings of the twenty-ninth annual ACM symposium on Theory of computing
Contention in balancing networks resolved (extended abstract)
PODC '98 Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing
Scalable concurrent priority queue algorithms
Proceedings of the eighteenth annual ACM symposium on Principles of distributed computing
Sequentially consistent versus linearizable counting networks
Proceedings of the eighteenth annual ACM symposium on Principles of distributed computing
Post-mortem black-box correctness tests for basic parallel data structures
Proceedings of the eleventh annual ACM symposium on Parallel algorithms and architectures
Sorting and counting networks of small depth and arbitrary width
Proceedings of the eleventh annual ACM symposium on Parallel algorithms and architectures
Priority Queues and Sorting Methods for Parallel Simulation
IEEE Transactions on Software Engineering
Dynamic computation migration in DSM systems
Supercomputing '96 Proceedings of the 1996 ACM/IEEE conference on Supercomputing
Simulation of the 3 dimensional cascade flow with numerical wind tunnel (NWT)
Supercomputing '96 Proceedings of the 1996 ACM/IEEE conference on Supercomputing
Proceedings of the twentieth annual ACM symposium on Principles of distributed computing
Threshold counters with increments and decrements
Theoretical Computer Science
Public data structures: counters as a special case
Theoretical Computer Science
The Impact of Timing on Linearizability in Counting Networks
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
DISC '01 Proceedings of the 15th International Conference on Distributed Computing
A Combinatorial Characterization of Properties Preserved by Antitokens
Euro-Par '00 Proceedings from the 6th International Euro-Par Conference on Parallel Processing
Self-Stabilizing Smoothing and Counting
ICDCS '03 Proceedings of the 23rd International Conference on Distributed Computing Systems
IPPS '98 Proceedings of the 12th. International Parallel Processing Symposium on International Parallel Processing Symposium
Ordered Multicast and Distributed Swap
ACM SIGOPS Operating Systems Review
Brief announcement: adaptive balancing networks
Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing
The counting pyramid: an adaptive distributed counting scheme
Journal of Parallel and Distributed Computing
Distributed Computing
Linearizable counting networks
Distributed Computing
Counting networks with arbitrary fan-out
Distributed Computing
Linear Lower Bounds on Real-World Implementations of Concurrent Objects
FOCS '05 Proceedings of the 46th Annual IEEE Symposium on Foundations of Computer Science
Journal of Parallel and Distributed Computing - Special issue: 18th International parallel and distributed processing symposium
Dynamic task binding for hardware/software reconfigurable networks
SBCCI '06 Proceedings of the 19th annual symposium on Integrated circuits and systems design
The cost of concurrent, low-contention Read&Modify&Write
Theoretical Computer Science - Foundations of software science and computation structures
Adaptive work stealing with parallelism feedback
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
Recursive construction of parallel distribution networks
Journal of Parallel and Distributed Computing
Self-tuning reactive diffracting trees
Journal of Parallel and Distributed Computing
Automatica (Journal of IFAC)
Adaptive work-stealing with parallelism feedback
ACM Transactions on Computer Systems (TOCS)
The impact of randomization in smoothing networks
Proceedings of the twenty-seventh ACM symposium on Principles of distributed computing
Near-perfect load balancing by randomized rounding
Proceedings of the forty-first annual ACM symposium on Theory of computing
Smoothed Analysis of Balancing Networks
ICALP '09 Proceedings of the 36th Internatilonal Collogquium on Automata, Languages and Programming: Part II
A randomized, o(log w)-depth 2 smoothing network
Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures
Supporting increment and decrement operations in balancing networks
STACS'99 Proceedings of the 16th annual conference on Theoretical aspects of computer science
Theoretical Computer Science
Concurrent counting is harder than queuing
Theoretical Computer Science
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
Data structures in the multicore age
Communications of the ACM
Concurrent counting is harder than queuing
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
quasi-linearizability: relaxed consistency for improved concurrency
OPODIS'10 Proceedings of the 14th international conference on Principles of distributed systems
Optimal-time adaptive strong renaming, with applications to counting
Proceedings of the 30th annual ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Constructing shared objects that are both robust and high-throughput
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Obstruction-Free algorithms can be practically wait-free
DISC'05 Proceedings of the 19th international conference on Distributed Computing
Periodic load balancing on the N-cycle: analytical and experimental evaluation
Euro-Par'07 Proceedings of the 13th international Euro-Par conference on Parallel Processing
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
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
Eliminating unscalable communication in transaction processing
The VLDB Journal — The International Journal on Very Large Data Bases
Elimination Trees and the Construction of Pools and Stacks
Theory of Computing Systems
Hi-index | 0.03 |
Many fundamental multi-processor coordination problems can be expressed as counting problems: Processes must cooperate to assign successive values from a given range, such as addresses in memory or destinations on an interconnection network. Conventional solutions to these problems perform poorly because of synchronization bottlenecks and high memory contention.Motivated by observations on the behavior of sorting networks, we offer a new approach to solving such problems, by introducing counting networks, a new class of networks that can be used to count. We give two counting network constructions, one of depth log n(1 + log n)/2 using n log (1 + log n)/4 “gates,” and a second of depth log2 n using n log2 n/2 gates. These networks avoid the sequential bottlenecks inherent to earlier solutions and substantially lower the memory contention.Finally, to show that counting networks are not merely mathematical creatures, we provide experimental evidence that they outperform conventional synchronization techniques under a variety of circumstances.