MPI · parallel computing · Uncategorized

MPI debugging

MPI programs are more difficult to debug than other programs because of their parallel nature. The MPI programming model follows the single program multiple data paradigm or the multiple program multiple data paradigm. Debugging MPI programs is complicated by the following characteristics: Several processes run in parallel in a coordinated way. These processes may all… Continue reading MPI debugging

image processing · numerical methods · Python · Software

From numbers to images – Raw image processing with Python

Modern digital system cameras and also some digital compact cameras allow to create and to store images in a so-called raw format. A raw image contains the minimally pre-processed sensor data, meta-data about the picture such as camera model, lens model and camera settings under which the picture has been taken and possibly a fully… Continue reading From numbers to images – Raw image processing with Python

C++ · Software

FizzBuzz or the beauty of compile-time calculations in C++17

FizzBuzz is a popular test that is commonly used in job interviews for software developers. In this test one is asked to write a function that prints the numbers from 1 to 100. But for multiples of three “Fizz” has to be printed instead of the number and for the multiples of five the word… Continue reading FizzBuzz or the beauty of compile-time calculations in C++17

C++

C++11/14 for scientific computing VI

Floating-point exceptions During a numerical calculation various kinds of run-time errors may occur. In C++, such an error may be indicated via floating-point exceptions or via the (global but thread-local) variable errno. Floating-point exceptions are completely unrelated to C++ exceptions. When an floating-point exception is raised by an erroneous operation, the exception is simply noted… Continue reading C++11/14 for scientific computing VI

Performance

Boosting NumPy with MKL

The Intel Math Kernel Library (MKL) contains a collection of highly optimized numerical functions.  Among others, it provides implementations of Blas functions and Lapack functions for various linear algebra problems. A program, which is dynamically linked against the standard Blas and Lapack libraries, can easily benefit from alternative optimized implementations by replacing libblas.so and liblapack.so… Continue reading Boosting NumPy with MKL

C++

Revisiting the named parameter idiom in C++14

Some programming languages have functions with named parameters. Named parameters let the programmer pass the parameters to a function in any order and they are distinguished by a name. So the programmer can explicitly pass all the needed parameters and default values without worrying about the order used in the function declaration. In C++, however,… Continue reading Revisiting the named parameter idiom in C++14