Parallelizing Pi Approximation with OpenMP
Nov 14, 2020
OpenMP vs POSIX threads Both are APIs for shared-memory programming. In C, OpenMP is a relatively high-level extension, providing compiler directives for parallelizing many programs with ease while some low-level thread interactions may be difficult to program. Pthreads provide some low-level coordination constructs that are unavailable in OpenMP, making other programs easier to parallelize while requiring explicit specification of the behavior of each thread, which may virtually be any that is conceivable.…
Rediscovering Simple Imagination
Sep 03, 2020
A Simple Problem I was going through a parallel computing example when I encountered the scenario described here. Consider the analysis of patient MRI (Magnetic Resonance Imaging) scans. Assume that a MRI image is processed in three stages, namely initial, intermediate and final, and each stage of processing takes 7 minutes. In this case, there exists a dependency between each stage. In order to perform intermediate processing on the image, we first need to complete initial processing.…
An Introduction to Parallel Computing
Aug 28, 2020
The Case for Going Parallel Ever since the first computer was invented, humans here wanted to increase the speed of these machines. And whenever we speak on performance of computers, we need to talk about the Moore's Law1. It basically states that the number of transistors we are able to fit on a chip will double roughly every 24 months. Theoretically, this implies that the speed will also double2. At the beginning, about the whole task of increasing performance of computers was left for hardware developers–software developers stayed clear of it for the most part.…