Vector Fabrics Introduces Pareon for Multicore Software Optimization
While multicore systems have become widely available even in mobile devices, it is inherently hard to leverage their multicore capabilities within software applications. In addition, writing multicore code is tedious and error-prone, as the MIT lectures by Prof. Saman Amarasinghe and Dr. Rodric Rabbah show.
To ease the burden, Pareon’s toolset comprises tools such as
- An analysis tool that tries to detect threading bugs, and,
- a hardware modelling engine that prevents developers from introducing performance bottlenecks or slowdowns.
Pareon uses the following process to optimize multicore software:
1. Insight: Pareon thoroughly analyzes and runs the program on a model of the multicore hardware, and then presents intuitive program visualizations that give the developer keen insight into the program’s execution, internal dependencies, and memory behaviour. This allows developers to focus on memory bottlenecks and compute bottlenecks right from the start.
2. Investigate: Using a point-and-click interface, the developer quickly adds parallelism where it has the biggest impact on performance. Code constructs that prevent parallelism are quickly identified so that they can be removed. Pareon immediately shows the impact of the parallelization on program performance, taking into account the multiple processors, memory and cache bottlenecks, synchronization and communication and even thread scheduling overhead.
3. Implement: After selecting the best parallelization strategy in the investigation phase, Pareon outlines detailed and straightforward code refactoring steps that implement the parallel constructs. This keeps the developer in control of the parallel code while eliminating the risk of introducing hard-to-detect and correct bugs.
Engineers interested in trying out the tool and checking whether it can live up to its expectations might register at the product web site.
Brandon Holt, Preston Briggs, Luis Ceze, Mark Oskin May 21, 2015