Cilk: an efficient multithreaded runtime system
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
X10: an object-oriented approach to non-uniform cluster computing
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Transactional Memory (Synthesis Lectures on Computer Architecture)
Transactional Memory (Synthesis Lectures on Computer Architecture)
Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Inferring Synchronization under Limited Observability
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Abstraction-guided synthesis of synchronization
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verifying linearizability with hindsight
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Hi-index | 0.00 |
Virtually all chips today, from high-end to embedded, are being built with multiple processor cores and the number of cores per chip is increasing. To effectively exploit these changes in technology, all future software will have to be concurrent. This poses tremendous challenge for programmers as building correct and efficient concurrent programs is known to be a very difficult problem. In this paper, we briefly survey some of the most recent techniques we have developed for assisting the programmer in automatically building safe and efficient concurrent systems. Our approach takes as input a concurrent program and a specification that the output program should satisfy. It then automatically infers correct and efficient synchronization which is implemented in the final output program. Using our techniques, we have automatically inferred the usage of a range of classic concurrency constructs such as atomic sections, Hoare's conditional critical regions and memory fences in weak memory models.