Advertisement
Login
ACCU Buttons
Thursday 18th June, 2009, 19:00
Jason McGuiness: Parallel Pixie Dust – A Novel C++ Threading Library
Over recent years there has been considerable development of multi-core processors, which increase architectural performance by providing thread-level parallelism. To maximise the performance of software on those architectures, programmers would have to write their code to exploit that thread-level parallelism, implying knowledge of that hardware. But from the programmer view-point writing parallel code correctly and efficiently, for an underlying hardware, has been non-trivial.
The usual library-based approach has been very problematic. In particular, 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.
The presenter took on a challenge: how much could be achieved with a C++ thread library? (Timely, when considering the current C++ standardisation effort relating to threading.) The goals tackled by the author were: To simplify making use of any parallelism by providing not only thread pools and futures, but efficient parallel algorithms. Also to guarantee that race conditions and deadlocks would not be present. That the program would execute an efficient parallel schedule. Moreover, to address the issues of debugging such parallelised programs.
Such a combination might be considered a difficult, possibly unattainable ideal. This presentation describes a library, Parallel Pixie Dust, PPD, written by the presenter, which he contends has largely achieved those aims!
About the Speaker
Since graduating from the University of Bristol, Jason has worked for a number of well known international companies as a technical architect/software developer. He is currently working as a Manager at Barclays Capital where he is a Front Office Senior Developer. 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(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++ standardisation effort.