Presentations Relating to Parallelism

At the ACCU 2008 conference, Russel Winder gave the presentations Them Threads, Then Threads, Then Useless Threads looked at the the problems threads are in real parallel systems, taking a language comparative view rather than a language specific view. However, there was an emphasis on showing that the introduction of a threads model in the C++0x standard is only the start to having proper parallelism capability in C++; OpenMP and MPI have to be taken into account. Also functional languages such as Haskell and especially Erlang are of great interest.

At the ACCU 2009 conference, Russel Winder gave a double presentation Processors Processors Everywhere, But How Do I Actually Use Them. The first part was how threads and shared memory multi-threading are too low level a way of programming for applications. The second part was a comparison of the various ways that a variety of languages support high-level abstractions for programming parallel systems. A zipfile of the presentation and all the code used during the session can be obtained by clicking here.

At the EuroPython 2009 conference Russel Winder gave a presentation GIL isn't Evil regarding the Global Interpreter Lock which many people rail against as preventing shared memory multi-threading being a tool for multicore parallelism. The presentation introduced the multiprocessing package and Parallel Python which use a process and message passing model to realize real parallelism.

At the UKUUG Summer 2009 conference, Russel Winder gave a presentation entitled Shared-memory Multithreading is the Wrong Way to do Parallelism, the slides can be found here. As well as emphasizing the move towards lightweight processes and message passing, cf. Erlang, Scala, etc., the session raised the question of whether current operating systems would be up to the task of managing systems with multiple processors, each of which had thousands of cores all using distributed memory – single central memory architectures are untenable in the presence of very large numbers of processors/cores.