Skip to content

C++ technical assessment: performing parallelisation on nested loops

Notifications You must be signed in to change notification settings

MikeO89/OptimalSlopeParallelisation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Optimal Slope - Technical Task - Parallelisation

Part 1 - Theory

Description

Suppose you have a monolithic process which performs five million identical, calculation-intensive and time-consuming operations, each of which is totally encapsulated and independent from the others.

Each of the five million operations receives 10kB of input data, can take between 5microsecond and 50 millisecond to complete, and returns one floating point result.

How would you structure its implementation in order that the whole process completes in the minimum total elapsed time?

Discuss implementation and make recommendations for each of these target platforms:

  1. A simple multicored desktop PC
  2. An AWS instance with a large number of cores
  3. A PC equipped with a GPU

Part 2 - Coding Task

Description

3.1.	Please write a program in C++, which illustrates an example of parallelizing nested loops: 
    3.1.a.	Initialise variables with a desired data of your choice. 
    3.1.b.	Replace logic inside if conditions to perform any task you would like, e.g., evaluation of some analytical expression or specific algorithm.  
    3.1.c.	Use any C++ libraries or frameworks to implement your solution, and comment on their benefits. 

3.2.	For comparison, evaluate execution times and results using a sequential implementation approach and the parallelized version.

3.3.	Please comment on implementation details and why a selected parallel processing/execution model is the most suitable for your data types, hardware architecture or implemented algorithm? 

Requirements

Source code or any output files should be delivered by email preferably in a .zip file.

About

C++ technical assessment: performing parallelisation on nested loops

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages