====== Language Resources ====== ~~NOTOC~~ ===== Unified Parallel C (UPC) ===== * Berkeley UPC: http://upc.lbl.gov/ ===== Communicating Sequential Processes (CSP) ===== * Hoare's original [[https://www.cs.cmu.edu/~crary/819-f09/Hoare78.pdf|1978 CACM paper]] * The classic CSP text: {{ :courses:cs377-202651:cspbook.pdf |Communicating Sequential Processes (Hoare)}} * The modern CSP text: [[http://web.comlab.ox.ac.uk/oucl/work/bill.roscoe/publications/68b.pdf|The Theory and Practice of Concurrency (Roscoe)]] * occam * Professor Peter Welch's [[courses:cs377-202651:welch-lectures:top|occam tutorial slides]] and * [[http://www.cs.vassar.edu/~cs377/phw-slides/anonqa-2005/index.html|FAQs]] from his course at the University of Kent * [[http://www.occam-pi.org/|occam-pi]]: (The occam-pi programming language) * JCSP: http://www.cs.kent.ac.uk/projects/ofa/jcsp/ (CSP package for Java) ===== Go ===== * [[http://golang.org/|The Go Programming Language]] * [[https://tour.golang.org/concurrency/1|Concurrency]] ===== Linda ===== * Nicholas Carriero and David Gelernter. //How to Write Parallel Programs: A First Course//. MIT Press, (c) 1990. * This text is out of print, but the PDF is available [[http://zoo.cs.yale.edu/classes/cs424/howto.pdf|here]] ===== Rinda ===== * Linda implementation for the [[http://www.ruby-lang.org/en/|Ruby programming language]] * About [[http://en.wikipedia.org/wiki/Rinda_(Ruby_programming_language)|Rinda]] * sadly, the only Wikipedia article I ever contributed to was deleted last year * but [[https://web.archive.org/web/20241217011741/http://en.wikipedia.org/wiki/Rinda_(Ruby_programming_language)|here]] it is--//as it was//--thanks to the Wayback Machine ---- ===== 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 * a parallel computing platform and API model created by [[https://www.nvidia.com/|Nvidia]]. --[[https://en.wikipedia.org/wiki/CUDA|Wikipedia]] * 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: * https://devblogs.nvidia.com/even-easier-introduction-cuda/ ---- ===== Erlang ===== * A functional, concurrent programming language that implements the Actor model of concurrency * Office website for the [[http://www.erlang.org/|Erlang]] programming language * [[http://www.erlang.org/doc.html|Online documentation]] * Tutorial: [[https://learnyousomeerlang.com/introduction|learn you some Erlang for great good!]] ===== Chapel ===== * [[https://chapel-lang.org/|The Chapel Parallel Programming Language]] ===== Scala ===== * [[http://www.scala-lang.org/|The Scala Programming Language]] ===== Clojure ===== * [[http://clojure.org/|The Clojure Programming Language]] ---- //Other references will be listed here as necessary.//