Preworkshop Reading Materials

All participants at the MSRI Parallel Computation Workshop will be assumed to have a basic background in parallel computation already -- there will be no basic background tutorials or lectures. Fortunately, anybody can get such a background in a day by reading the documents listed below under required reading.

Required Reading List

At a minimum, make sure you read the following before the workshop, in order:

  1. Introduction to Parallel Computing

  2. POSIX Threads Programming

  3. MPI Tutorial

Other Relevant Documents

Skim or read as time permits:

  1. Miscellaneous Papers and Files

  2. OpenMP tutorial and GOMP

  3. Applied Parallel Computing Lectures

  4. Alternatives to threads

  5. Erlang programming language

  6. E programming language

  7. About Twisted's Deferred Objects

Because of something called the Global Interpreter Lock (or GIL) in the Python interpreter, threading is pretty useless for speeding up serious mathematical compute applications. For *multi-threaded* programs to be truly useful for SAGE computation, they will have to be implemented entirely in C/C++/Fortran libraries and SageX extension modules in blocks of code that do not make any Python/C API calls.

  1. Python threading tutorial

  2. Discussion About the GIL in Python

  3. List post about OpenMp and Python

  4. Python Parallel Recipes

  5. POSH -- Python object sharing; a way to get around using threads for what we need

  6. Parallel Python -- is this useful for something? (or is it only stupid closed-source poppycock?) -- it's another way to get around threads