The Parallelware Technology
BRINGING YOU AND HIGH PERFORMANCE COMPUTING TOGETHER
Parallelware understands your application by analyzing the source code using the unique hierarchical static analysis. Using the Parallelware analysis engine our products help you make your code parallel.
HOW DOES PARALLELWARE HELP YOU PARALLEL PROGRAMMING?
The use of multiple cores is now ubiquitous. From the fastest supercomputers in the world to mobile phones, multi-core hardware is now available for everyone to use. We are also increasingly seeing the use of accelerators to provide additional computational power. However, the difficulty comes in utilizing the hardware that is available.
Parallel programming is hard. In an ideal world, writing software that scales to many cores and accelerators should be as easy as writing sequential code. Unfortunately this is not the case, limiting the number of applications that can maximise their use of HPC and parallel computing. If we can use HPC we reduce the time to solution and enable the use of larger computations that would be impossible with one thread on one CPU. However, the reality is that a developer needs to analyze the existing software, identify areas for parallelism and then implement the parallelism manually. This is a very complex, time-consuming task.
At Appentra our mission is to change this!
The core Parallelware Technology is built to help you identify and then implement correct, optimal parallelism into your code, bridging the gap between applications developed by programmers and the hardware.
Fig. 1. An extension of the parallel bridge of Berkeley’s view of the parallel computing landscape. The new tower Code inserted between Applications and parallel Hardware highlights the impact of the program code in the productivity of the parallelization process.
THE PARALLELWARE ENGINE
Parallelware analyzes your code to understand the exact behaviour of an application, and is unique in its ability to understand where and how to parallelize.
Underneath all of the Parallelware products, is a hierarchical static analysis that discovers parallel patterns in sequential code. By using our tools you can develop a full understanding of the potential of your code quickly and efficiently, learn about parallel programming, or if you are an expert, use our upcoming development tools to speed up the development of parallel software. By using LLVM, Parallelware is able to build a complete description of your code, including an understanding of data flow, memory access patterns, and the data scoping of variables that is necessary to add parallelism to code.
We currently support the analysis of C and C++ source code for implementation of directives from the OpenMP 4.5 and OpenACC 2.5 standards. Full support for Fortran codes is in development.
SUBSCRIBE TO OUR NEWSLETTER AND GET ALL OUR UPDATES