Parallel Programming

Drag to rearrange sections
Rich text content

Background

For this module, I learned about parallel programming where I covered its main concepts before studying two main parallel programming models: shared memory and message passing. For this assessment, I applied my knowledge to parallelise code using the OpenMP and MPI library while focusing on performance estimation and optimisation.

This assignment required me to work with external code where I would apply these parallel techniques, as well as develop on to add most of the functionality and logic into the program, where the requirements were based on the assignment brief.

To achieve a 90% score, I provided multiple implementations to demonstrate each model and an extra one where I sought to use both models to complement each other. I also followed with a report to explain my work (concepts, optimisation techniques, etc.) and to analyse code performance and from conclusions.

Assignment Overview

"This assignment asks you to implement serial and parallel versions of a prey/predator simulation using cellular automata and provide performance and behaviour analysis.

In this project, visual output can be generated using ascii characters. If you want to provide a more advanced graphical output, it is up to you.
Code of the ‘Game of Life’ studied during the class is provided and can be used as a starting point for your implementation.
You are required to hand in all of your source code and to use C/C++ and visual studio."

Skills Developed

  • C++
  • OpenMP and MPI libraries (knowledge and application)
  • Parallel programming concepts and practical use
  • Efficiently debug and troubleshoot code
  • Determine code performance, through monitoring and measuring
  • Improve code performance, through low and high level optimisation
  • Documentation
  • Research
  • Working to develop on external code
  • Fulfilling requirements from a brief using problem solving

 

Attached Files

The attached zip includes a very detailed report on the work complete as well as the code files reflecting each implementation using various techniques learned. 

rich_text    
Drag to rearrange sections
Module submission
submission   4529782
Drag to rearrange sections
Rich text content
rich_text    

Page comments