Energy Consumption of Parallel Patterns

For a very long time, the main goal of parallel computing techniques was to improve performance of parallel applications, delivering better speedups without consideration for possibly massively increased power consumption. However, the energy footprint of high-performance servers has become unacceptably high recently, resulting in demand for greener computing and for exploring tradeoffs between application performance […]

Continue reading

Multilevel Parallel Patterns

Parallel patterns represent an important high-level abstraction for programming complex parallel hardware systems and they have been endorsed by several top IT companies that offer their own pattern libraries (e.g. Intel Thread Building Blocks, Microsoft PPL). However, most of these pattern libraries are tailored to shared- memory multicore processors with the “flat” architecture of cores. […]

Continue reading

Safety Assurances of Refactorings

A refactoring should transform code such that it maintains functional correctness. In languages such as C++ it can be difficult to the refactoring developer to ensure that their refactoring can be applied safely. This is particularly important when the refactoring transforms the internal behaviour of the program, such as the introduction of parallelism. This project […]

Continue reading

Refactoring Heterogeneous Systems

ParaFormance allows C/C++ developers on x86 and ARM to expose, diagnose and introduce multi-core code into their applications. Discover the multi-core opportunities by running our hot spot discovery, refactor your application to introduce openMP and TBB calls automatically, and check the parallelised code for thready safety issues, such as race conditions, deadlocks, variable collisions and […]

Continue reading