Language Resources
Unified Parallel C (UPC)
- Berkeley UPC: http://upc.lbl.gov/
- GWU UPC http://upc.gwu.edu/
- Tarek El-Ghazawi, William Carlson, Thomas Sterling, and Katherine Yelick. UPC: Distributed Shared Memory Programming. John Wiley & Sons, Inc. © 2005.
- Ch. 1: PDF
Communicating Sequential Processes (CSP)
- The classic CSP text: Communicating Sequential Processes (Hoare)
- The modern CSP text: The Theory and Practice of Concurrency (Roscoe) (PDF)
- occam
- Professor Peter Welch's occam tutorial slides and
- FAQs from his course at the University of Kent
- JCSP: http://www.cs.kent.ac.uk/projects/ofa/jcsp/ (CSP package for Java)
- Ian East. Parallel Processing with Communicating Process Architecture. University College London Press, © 1995. (This text is out of print, but the author has provided the text in PDF chapters for use in our course.)
Go
Linda
- Nicholas Carriero and David Gelernter. How to Write Parallel Programs: A First Course. MIT Press, © 1990.
- This text is out of print, but here's the PDF
(also available at http://zoo.cs.yale.edu/classes/cs424/howto.pdf)
Rinda
- Linda implementation for the Ruby programming language
- About Rinda
CUDA
- Definitions:
- CUDA – Compute Unified Device Architecture
- GPU – Graphics Processing Unit
- GPU cluster – An HPC cluster equipped with multiple GPU devices (rather than CPUs)
- GPGPU – General Purpose GPU (i.e., not just for optimized graphics processing)
- CUDA is
- more than a library for a programming language(s)
- an extension of C/C++ to allow programmers to use nVidia GPU cards for GPGPU programming
- Tutorials:
Erlang
- Office website for the Erlang programming language