In this series of lectures, I'll introduce several approaches to parallel and concurrent programming in Scala. We'll begin with an introduction to Scala's actors library which combines event-based and thread-based models of concurrency. Using a novel type system extension based on static capabilities, we'll show how actor isolation and race freedom is enforced. We'll also show how to provide custom type system extensions as plugins for the Scala compiler. In addition to our detailed treatment of Scala actors, we'll also cover other approaches to parallel programming in Scala such as parallel collections and parallel embedded domain-specific languages (DSLs). The talk concludes with an outlook of possible future directions of Scala for multi-core programming.
Actors in Scala, 2011. Written by Philipp Haller and Frank Sommers. The definitive guide, covering Scala Actors and Akka.
Scala for Multicore: Foundations and Message-Passing Concurrency [Slides]
Scala: and why it's the next big thing for programming on multicore.
Scala basics. Functional programming, collections, and more.
A Roadmap of Concurrency Tools
Distributed Graph Processing
Scala for Multicore: Parallel Collections and Parallel DSLs [Slides]
A Roadmap of Concurrency Tools, continued…
Implicitly Parallel Domain-Specific Languages Embedded in Scala
What I Wish I Knew During My PhD…
scala-lang.org The Scala language's home on the web. New language releases are announced and released here, there are learning resources, support forums, and more.
A new company founded by Martin Odersky has released the Typesafe Stack, which bundles of all of the most up-to-date Scala goodies into one easy download.
The Scala IDE for Eclipse. The best IDE out there for working with Scala code. Find out while you work whether or not your code will compile, and easily navigate through class hierarchies.
Don't want to install Scala? There's an online interpreter at SimplyScala.
Programming in Scala, 2nd edition, 2010. Written by Martin Odersky, Bill Venners, and Lex Spoon. The definitive guide.
Scala Actors: Scala Actors: A Short Tutorial
Parallel Graph Processing: menthor: Parallelizing Machine Learning– Functionally, our Pregel-like Bulk Synchronous Parallelism in Graph Processing project.
Uniqueness Types: See the Capabilities for Uniqueness and Borrowing page for many more resources on uniqueness types, instructions on how to obtain and compile the experimental Scala compiler plug-in, as well as the ECOOP 2010 paper, slides, and a techinical report on the subject. For more details related to concurrency not found in the above link/papers, see Philipp's PhD thesis.