In the second article of the series on latest best practices in parallel programming in C with the OpenMP standard, we focus our attention on source code rewriting rules that more clearly exhibit the parallelism available in the sequential source code. The idea is simple: match the programming pattern in your source code and rewrite […]
Technical
Latest best practices in parallel programming in C with OpenMP (part 1)
In the first article of the series on latest best practises in parallel programming in C, we pay attention to current features and limitations of compilers that support the OpenMP standard. We present the following two case studies. First, we suggest to declare program variables at the beginning of the smallest loop scope, instead of declaring them at the […]
Latest best practices in parallel programming in C with OpenMP
Parallel programming is a complex, time-consuming and error-prone undertaking even for experienced programmers. Software tools that help the programmer in the development and manteinance of parallel codes are extremely sensitive to syntactical variations in the implementation of an algorithm. In particular, the C programming language poses a difficult challenge due to its syntax and to […]
Acceleration 5x of computational electromagnetics MOM Codes with Parallelware
One fundamental goal behind Computational Electromagnetics (CEM) is to reliably simulate the behavior of electromagnetic devices before they are actually built. For this purpose, many powerful numerical analysis techniques have been developed in the field of CEM in the last decades. Some of the most commonly used methods today are Finite Difference Time Domain (FDTD), […]
Parallelization with Parallelware
What’s Parallelware? 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 […]
A key algebraic code: Parallel matrix matrix multiplication
In this article we will discuss the parallel matrix product, a simple yet efficient parallel algorithm for the product of two matrices. This algorithm is used a lot so its a good idea to make it parallel. Here we can see the code: 1 2 3 4 5 6 7 8 9 10 11 12 13 […]
A widely-used algebraic code: Parallel computation of matrix-vector product
In this article, we will discuss the code to multiply a vector and a matrix. This is a widely-used code in a variety of scientific fields, so it is good to analyze how to make it parallel. This code is a little bit more complex than the parallel computation of PI analyzed previously in this blog. The main reason for […]
A very simple simulation program: Parallel computation of PI
Do you really know the importance of parallelization? Does a parallelized code imply a reduction in your execution time? Are all parallelizations equally good? This article talks about these questions and using the calculation of the number pi tries to answer these questions. Calculation of PI The code shown below is the calculation of pi […]
OpenMP guided parallelization with Parallelware
Our first technical articles will focus on the guided parallelization of simulation programs on multicore computers using the OpenMP standard. This is the first of a series of four articles where we will introduce key parallelization concepts by examples. In each article, we will present a case study, we will explain its parallelization using OpenMP, and […]