Vector Fabrics recently announced the launch of its new development tool, Pareon.
Pareon allows software developers to optimize their applications for multicore systems in hours or days, a task that typically takes weeks or months to complete. The tool’s analysis engine prevents hard-to-find and hard-to-reproduce threading bugs, while its hardware modelling engine prevents the developer from writing code that introduces performance bottlenecks or even causes slowdowns. Pareon helps developers address the consumer’s demand for fast, high-quality, and responsive applications.
Mike Beunder, CEO of Vector Fabrics, says, “All recent mobile phones, tablets, laptops and desktops have multicore architectures inside. However, optimizing apps for multicore architectures is hard, error prone, and takes lots of time. As a result, a lot of software isn’t optimized yet and dual-core or quad-core devices provide minimal speed-ups. Pareon assists developers in truly optimizing their software for multicore, allowing them to close this gap and removing the barrier to increase the performance of their applications. We see typical speed-ups of 1.7x on dual-core and 3.5x on quad-core processors.”
Pareon combines the features of Vector Fabrics’ previous vfEmbedded and vfThreaded-X86 parallelization tools into one product. In addition, Pareon incorporates over 50 new features, including bus and shared cache contention modelling, support for C/C++, ARM Neon, and recognizing many more parallel code patterns. Whereas Vector Fabrics’ previous tools were cloud-based and ran in the user’s web browser, Pareon runs locally on a workstation, integrating more closely with typical development workflows that include complex build mechanisms, and targets large applications that rely heavily on calling routines inside binary libraries.
Pareon follows a three-step process that turns a sequential program into a parallelized, faster implementation:
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.
• Optimizes software for smartphones, tablets and consumer electronics
• Supports C and C++ programs and binary libraries
• Analyzes and optimizes large applications with millions of lines of code
• Optimizes apps for ARM-based or x86 multicore systems
• Swiftly guides the developer to optimizing his application for multicore
• Correct-by-construction approach avoids hard-to-fix bugs
Processor modelling engine
Fully optimizing software requires a deep understanding of the underlying processor hardware architecture. Vector Fabrics works closely with the processor vendors to develop models for their multicore hardware. Pareon then runs your application on this model, allowing it to provide key insight into the for example the effects of cache hit/miss rates or memory bottlenecks on parallel application performance.
Pareon is available starting June 18th. A fully functioning 15-day evaluation copy can be downloaded from the Vector Fabrics website after registration. Pricing starts at USD 1900 for a single-user license.