Introducing Parallel Pixie Dust - Advanced Library-based Support for Parallelism in C++

Date/Time:
Thursday 10 March 2011, 6.00pm

Venue:
The Davidson Building, 5 Southampton Street, London WC2E 7HA. The nearest underground stations are Covent Garden and Charing Cross.

Speaker:
Jason McGuiness

Summary:
Maximising the performance of all types of software on the new multi-core architectures means programmers would have to exploit the exposed thread-level parallelism using the threading API of the OS, which has been and still is non-trivial.

The usual library-based approach (using Pthreads, OpenMP or Win32) has been very problematic: locking has not been found to be composable because it is an aspect of the code: it cross-cuts the usual approaches of functional decomposition or object-orientation. The portions of code that express parallelism have been intimately entangled with the business-logic code. This has resulted in reductions of code re-usability and increased complexity for testability, as has already been mentioned in prior presentations.

The presenter took on a challenge: how much could be achieved by designing a C++ thread library, called Parallel Pixie Dust, to assist the programmer? The design goals of this C++ library are:

  • Simplifying using parallelism by providing a data-flow model, to specifically target:
    - programming control-flow threading,
    - certain HPC issues relating to processing large, repeated data structures.
  • Provide efficient parallel algorithms.
  • Guarantee via library design that race conditions and deadlocks would not be present.
  • That the program would execute an efficient parallel schedule due to the design of the library.
  • Address the issues of debugging such parallelised programs.
  • Co-exist with other thread libraries such as OpenMP or Intel Thread Building Blocks.

Since graduating from the University of Bristol, Jason has worked for a number of well known international companies as a technical architect/software developer and has also worked as a technical director in a few front-office facing roles within the City, where he currently works. In 2003-5, Jason took a break from the rigours of professional work and undertook a period of research on the topic of 'The Challenges of Writing Software for Massively Parallel Architectures' for which he was awarded an MSc by Research from the University of Hertfordshire in 2007. During the course of his research, Jason has given seminars in the USA, in the Netherlands and to the BCS, IET and ACCU in the UK. He has also presented a conference paper in China, which has subsequently been published in Springer Lecture Notes in Computer Science. Jason is also involved in the threading area of the C++0x standardisation effort.

Admission: Free, but to gain admission please e-mail your name to our Membership Secretary, Dr Frank Martin, at frank.martin@bcs.org

Slides:

View the slides for this event (PDF - 623KB)