Parallware 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 Parallware?
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 automaticaly parallelization with Parallware. The next question is, how to use Parallware? Parallware is used from command line in your bash shell as follows:
parallware -t OpenMP -o output.c input.c
Parallware 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.
Automatic paralelization with Parallware
Here are the output codes of Parallware for pi, matvec and matmul only using the previous command.
The output of Parallware for pi algorithm:
The output of Parallware for the multiplication matrix-vector:
The output of Parallware 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, Parallware guarantees correction in the output parallel code.
Performance on comparison with manual parallel versions
Until now we are evaluated how to use Parallware 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 automatically generated OpenMP-enabled parallel code is like the performance of the parallel code written manually.
These codes are just to show how Parallware works. Actually Parallware 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 Parallware is in a level six.
Parallware 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 Parallware to see how it can help you to make your parallel programming easier!