Parallelware is a software tool for guided parallelization which in just a click, will convert your sequential code into a parallel code. The target audience are programmers, software developers, researchers, engineers and scientists from industry and academy that use compute-intensive simulations in their application areas.
How to use Parallelware?
In previous posts we saw how to do a manual parallelization of “pi”, “matrix-vector product” and “matrix-matrix product”. In this article we are going to explain how to parallelize these codes with Parallelware. The next question is, how to use Parallelware? Parallelware is used from command line in your bash shell as follows:
parallware -t OpenMP -o output.c input.c
Parallelware has multiple options for more complex codes, but for a simple execution we just need the “-t” option to specify the target of parallelization. In this case the target is OpenMP. In the example above we also use the option “-o” to set a name for the output file and the name of the input code.
Guided paralelization with Parallelware
Here are the output codes of Parallelware for pi, matvec and matmul only using the previous command.
The output of Parallelware for pi algorithm:
The output of Parallelware for the multiplication matrix-vector:
The output of Parallelware for the matrix-matrix multiplication:
We can see that the code is reconstructed as closely as possible to the original sequential code and, of course, Parallelware guarantees correction in the output parallel code.
Performance on comparison with manual parallel versions
Until now we are evaluated how to use Parallelware and thecorrectness of the output parallel code. But what about performance with respect to a manual parallelization of the code. The figure below shows speedups meassured on a quad-core computer with hyperthreading.
We can see that the performance of the generated OpenMP-enabled parallel code is like the performance of the parallel code written manually.
These codes are just to show how Parallelware works. Actually Parallelware works with more complex codes. If we use the scale TRL (Technology Readiness Level) to measure the maturity of the technology we can see that actually Parallelware is in a level six.
Parallelware generates parallel-equivalent source code annotated with OpenMP compiler directives so you can focus on your business. No need to learn any new languages. You can develop sequential codes and run them in parallel. You don’t need any expertise in parallel programming or HPC techniques. Do not wait to try Parallelware to see how it can help you to make your parallel programming easier!
Make Code Parallel
Parallelware Trainer is an interactive, real-time code editor with features that facilitate the learning, usage, and implementation of parallel programming by understanding how and why sections of code can be parallelized.