BlockLib: A Skeleton Library for Cell Broadband Engine
2008 (English)In: Proceedings - International Conference on Software Engineering, New York, USA: ACM , 2008, 7-14 p.Conference paper (Refereed)
Cell Broadband Engine is a heterogeneous multicore processor for high-performance computing and gaming. Its architecture allows for an impressive peak performance but, at the same time, makes it very hard to write efficient code. The need to simultaneously exploit SIMD instructions, coordinate parallel execution of the slave processors, overlap DMA memory traffic with computation, keep data properly aligned in memory, and explicitly manage the very small on-chip memory buffers of the slave processors, leads to very complex code. In this work, we adopt the skeleton programming approach to abstract from much of the complexity of Cell programming while maintaining high performance. The abstraction is achieved through a library of parallel generic building blocks, called BlockLib. Macro-based generative programming is used to reduce the overhead of genericity in skeleton functions and control code size expansion. We demonstrate the library usage with a parallel ODE solver application. Our experimental results show that BlockLib code achieves performance close to hand-written code and even outperforms the native IBM BLAS library in cases where several slave processors are used.
Place, publisher, year, edition, pages
New York, USA: ACM , 2008. 7-14 p.
generic parallel programming, parallel computing, generative programming, software library, multicore processor, software components
IdentifiersURN: urn:nbn:se:liu:diva-43692DOI: 10.1145/1370082.1370088Local ID: 74556ISBN: 978-1-60558-031-9OAI: oai:DiVA.org:liu-43692DiVA: diva2:264552
30th International Conference on Software Engineering, ICSE 2008 Co-located Workshops - 1st International Workshop on Multicore Software Engineering, IWMSE