Testing and Verification
-
CHESS: Find and Reproduce Heisenbugs in Concurrent Programs
-
Finding and Reproducing Heisenbugs in Concurrent Programs.
M. Musuvathi, S. Qadeer, T. Ball, G. Basler, P. A. Nainar, I. Neamtiu.
In Operating System Design and Implementation (OSDI), 2008.
-
Effective Program Verification for Relaxed Memory Models.
S. Burchkardt and M. Musuvathi.
In 20th International Conference on Computer
Aided Verification (CAV), 2008.
-
BugNet: Continuously
Recording Program Execution for Deterministic Replay Debugging,
Satish Narayanasamy, Gilles Pokam, and Brad Calder,
in Proceedings of the 32nd Annual International Symposium
on Computer Architecture
Madison, Wisconsin USA June 4-8, 2005.
Published in SIGARCH
Computer Architecture News 33, 2 (May. 2005), 284-295.
Transactional Memory
-
Transactional Memory. James R. Larus and Ravi Rajwar.
Morgan and Claypool. 2006. ISBN 9781598291247.
- Chapter 18: The Art of Multiprocessor Programming
- Transactional
Memory Coherence and Consistency , L. Hammond, V. Wong, M. Chen,
B. Hertzberg, B. Carlstrom, M. Prabhu, H. Wijaya, C. Kozyrakis, and
K. Olukotun, Proceedings of the 31st Annual International Symposium on
Computer Architecture, München, Germany, June 2004.
Concurrent Data Structures
-
Concurrent Hashing (Chapter 13), Concurrent Skiplists (Chapter 14)
Data Races
-
Eraser: a dynamic data race detector for multithreaded programs,
Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and
Tom Anderson, in ACM Trans. Comput. Syst. 15, 4 (Nov. 1997), 391-411.
In Proceedings of the 16th ACM symposium on Operating systems principles.
Saint Malo, France, 27-37, 1997.
-
SharC: checking data sharing strategies for multithreaded C.
Z. Anderson, D. Gay, R. Ennals, and E. Brewer,
in Proceedings of the 2008 ACM SIGPLAN Conference on Programming
Language Design and Implementation (Tucson, AZ, USA, June 07 - 13,
2008). PLDI '08. ACM, New York, NY, 149-158.
-
Recording shared memory dependencies using strata,
Narayanasamy, S., Pereira, C., and Calder, B. 2006.
In Proceedings of the 12th
international Conference on Architectural Support For Programming
Languages and Operating Systems (San Jose, California, USA, October 21
- 25, 2006). ASPLOS-XII. ACM Press, New York, NY, 229-240.
Power
-
Managing energy-performance tradeoffs for multithreaded applications on
multiprocessor architectures.
Soyeon Park, Weihang Jiang, Yuanyuan Zhou, and Sarita Adve.
SIGMETRICS Perform. Eval. Rev. 35, 1
(Jun. 2007), 169-180.
-
An Analysis of Efficient Multi-Core Global Power Management
Policies: Maximizing Performance for a Given Power Budget.
Canturk Isci, Alper Buyuktosunoglu, Chen-Yong Cher, Pradip Bose, and
Margert Martonosi. In
Proceedings of the 39th Annual IEEE/ACM international Symposium on
Microarchitecture (December 09 - 13, 2006). International Symposium on
Microarchitecture. IEEE Computer Society, Washington, DC, 347-358.
Thread-level Speculation
-
Speculative thread decomposition through empirical optimization.
Troy A. Johnson, Rudolf Eigenmann, T. N. Vijaykumar.In Proceedings of
the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel
Programming (San Jose, California, USA, March 14 - 17, 2007). PPoPP
'07. ACM Press, New York, NY, 205-214.
-
Tight analysis of the performance potential of thread speculation
using SPEC CPU 2006.
Arun Kejariwal, Xinmin Tian, Milind Girkar, Wei Li, Sergey Kozhukhov,
Utpal Banerjee, Alexandru Nicolau, Alexander V. Veidenbaum,
Constantine D. Polychronopoulos.In Proceedings of the 12th ACM SIGPLAN
Symposium on Principles and Practice of Parallel Programming (San
Jose, California, USA, March 14 - 17, 2007). PPoPP '07. ACM Press, New
York, NY, 215-225.
Implementing Memory Models
-
Conditional Memory Ordering,
Cristoph von Praun, Harold Cain, Jong-Deok Choi, and Kyung Dong Ryu,
in Proceedings of the 33rd International
Symposium on Computer Architecture, June 17-21, 2006.
Published in SIGARCH Computer Architecture News 34, 2 (May. 2006).
-
Memory Model = Instruction Reordering + Store Atomicity,
Arvind and Jan-Willem Maessen,
in Proceedings of the 33rd international Symposium on Computer
Architecture (June 17 - 21, 2006). International Conference on
Computer Architecture. IEEE Computer Society, Washington, DC, 29-40.
Hardware Support for Fast Synchronization
-
Techniques for reducing overheads of shared-memory
multiprocessing,
Alain Kägi, Nagi Aboulenein, Doug Burger, and James Goodman,
in Proceedings of the 9th international Conference on Supercomputing
(Barcelona, Spain, July 03 - 07, 1995). ICS '95. ACM Press, New York,
NY, 11-20.
-
Speculative synchronization:
applying thread-level speculation to explicitly parallel
applications,
Jose Martínez and Josep Torrellas,
in Proceedings of the 10th international Conference on
Architectural Support For Programming Languages and Operating Systems
(San Jose, California, October 05 - 09, 2002). ASPLOS-X. ACM Press,
New York, NY, 18-29.
Automatic Derivation of Concurrent Data Structures
-
Deriving linearizable fine-grained concurrent objects,
M. Vechev and E. Yahav, in
Proceedings of the 2008 ACM SIGPLAN Conference on Programming Language
Design and Implementation (Tucson, AZ, USA, June 07 - 13, 2008). PLDI
'08. ACM, New York, NY, 125-135.
-
Sketching concurrent data structures.
A. Solar-Lezama, C.G. Jones, and R. Bodik,
In Proceedings of the 2008 ACM SIGPLAN
Conference on Programming Language Design and Implementation (Tucson,
AZ, USA, June 07 - 13, 2008). PLDI '08. ACM, New York, NY,
136-148.
GPGPU Programming using CUDA/OpenCL
- Programming Massively Parallel Processors, David B. Kirk and Wen-mei W. Hwu, Morgan Kaufman, 2010.
Parallel Programming Models and Languages
-
Ct: A Flexible Parallel Programming Model for Tera-scale
Architectures,
Anwar Ghuloum, Eric Sprangle, Jesse Fang, Gansha Wu, and Xin Zhou.
Intel White Paper, 2008.
-
Future-Proof Data Parallel Algorithms and Software on Intel® Multi-Core Architecture,
Anwar Ghuloum et al.
Intel Technology Journal, Volume 11, Issue 4, 2007.
-
The Implementation of the Cilk-5 Multithreaded Language
by Matteo Frigo, Charles E. Leiserson, and Keith H. Randall.
1998 ACM SIGPLAN Conference on Programming Language Design and
Implementation (PLDI), Montreal, Canada, June 1998.
-
Reducers and other Cilk++ hyperobjects.
M. Frigo, P. Halpern, C.E. Leiserson, and S. Lewin-Berlin. Proceedings
of the Twenty-First Annual Symposium on Parallelism in Algorithms and
Architectures (Calgary, AB, Canada, August 11 - 13, 2009). SPAA
'09. ACM, New York, NY, 79-90.
-
G.R.Andrews, and F.B. Schneider,
``Concepts and Notations for Concurrent Programming,''
ACM Computing Surveys, June 1983.
Performance Analysis of Multithreaded Programs
Formal Models
-
T. Murata, ``Petri Nets: Properties, Analysis and Applications,''
Proc. of the IEEE, Vol. 77, No. 4, April 1989, pp. 541 -- 580.
-
V. K. Garg, M.T. Raghunath,
Concurrent Regular Expressions and their Relationship to Petri Net Languages,
Theoretical Computer Science, 96 (1992)
-
C. A. R. Hoare, Communicating Sequential Processes, Prentice-Hall 1985.
-
E.M. Clarke, E.A.Emerson, A.P.Sistla,
``Automatic Verification of Finite-State Concurrent Systems Using
Temporal Logic Specifications,''
ACM Trans. on Programming Languages and Systems, Vol. 8,
No. 2, April 1986, pp 244-263.
Consistency Conditions
-
L. Lamport, ``How to make a multiprocessor computer that correctly executes
multiprocess programs,''
IEEE Transactions on Computers
, C-28, 9, Sept 1979, pp 690 -- 691.
-
M. P. Herlihy, J.M. Wing, ``Linearizability: A Correctness Condition for
Concurrent Objects,'' ACM Trans. on Prog.
Languages and Systems, Vol. 12, No. 3, July 1990, pp 463-492.
-
M. P. Herlihy, ``Wait-Free Synchronization,''
ACM Trans. on Prog.
Languages and Systems, Vol. 13, No. 1, Jan 1991, pp 124-149.
-
V. K. Garg, M. Raynal,
``Normality: A Consistency Condition for Concurrent Objects,''
Parallel Processing Letters, 9(1): 123-134 (1999)
Parallel Algorithms
- Parellel Algorithms for Graph Decomposition, SAT, Linear Progamming, Sorting etc.