No Title

Background

As modern computing resources are increasingly geared towards the parallel execution of multiple programs. Nowadays, computing resources can be classified according to the level at which the hardware supports parallelism, with multi-core and multi-processor computers having multiple processing elements within a single machine, while clusters and clouds use multiple computers to work on the same task. Developing skills to write parallel programs becomes essential to exploit the available computing power.