This document is for Coventry University students for their own use in completing their
assessed work for this module and should not be passed to third parties or posted on any
website. Any infringements of this rule should be reported to
XXXXXXXXXX.
Faculty of Engineering, Environment and Computing
6004CEM Parallel and Distributed Programming
Assignment Brief 2021/22
Module Title
Parallel and Distributed Programming
Individual Cohort - Sept Module Code
370CT
Coursework Title (e.g. CWK1)
Resit-Defe
al Portfolio
Hand out date:
May 2022
Lecturers
Dr Carey Pridgeon/ Dr Norlaily Yaacob
Due date:
4th July 2022 by 18:00
BST
Coursework type
Practical work
% of Module Mark
70%
Module Learning Outcomes Met by this assessment
1. Demonstrate good knowledge of the concepts of parallel computing and its use
in both commercial and scientific environment.
2. Apply and evaluate parallelism techniques to several practical problems.
3. Compare and contrast Distributed and Parallel Computing.
4. Apply above knowledge and skills to solve a distributed architecture problem.
Portfolio
This is Portfolio has two elements, covering both Parallelism
and Distribution.
This is marked out of 100, and represents 70% of the marks for
this Module. Each portfolio element will be graded separately
using a Ru
ic, and the results from this will be used to decide
your final grade. The minimum passing grade for this portfolio
is 40%.
This Portfolio has two main parts, One for Parallel Computing,
and one for Distributed Computing.
These Portfolio elements are split into several tasks to give you
the opportunity to stop at a definite finish point if you reach the
limit of your abilities, but they will all be graded together in
This document is for Coventry University students for their own use in completing their
assessed work for this module and should not be passed to third parties or posted on any
website. Any infringements of this rule should be reported to
XXXXXXXXXX.
their respective ru
ics. Failing to complete all aspects will
impact the final grade awarded.
Parallel Element Contribution – 50% of portfolio grade.
Part A Contribution – 5% of portfolio grade.
Part B Contribution – 20% of portfolio grade.
Part C Contribution – 25% of portfolio grade.
Parallel Programming Portfolio Element
Module Learning Outcomes Met by this Portfolio Element:
4. Apply Parallelism to several problems.
Preamble
To have the best chance of a good grade in this element you are strongly advised to
complete the exercises for Parallelism. Every aspect must be written in C++ and
make use of OpenMP.
Parts A, B, and C Must be submitted as SEPARATE programs, if they are combined
you will lose marks.
Part A - 5% of portfolio grade.
Write a simple program with the following properties:
A parallel region that sets one of the available schedule types.
A variable with its type specified in the omp pragma instruction which is used by the
parallelised code.
It doesn’t matter if this program produces any output of significance, provided it
meets those specifications and can be seen using the variable when it runs.
As part of your submission for this you will need a screenshot of the program
unning under your own user account on the server, to demonstrate that it is your
own work.
If this screenshot is not present, you will lose marks.
This document is for Coventry University students for their own use in completing their
assessed work for this module and should not be passed to third parties or posted on any
website. Any infringements of this rule should be reported to
XXXXXXXXXX.
Part B – 20% of portfolio grade.
Using what you have and these ten vectors, create a new parallel application using
OpenMP that loads the following ten sets of three integers into a fixed length A
ay
of Vectors.
5 14 10
XXXXXXXXXX
-2 9 8
15 -6 3
12 4 -5
4 20 17
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
-16 7 4
Assume then each of the ten three number sets is a particle in a Three Dimensional
Cartesian co-ordinate system.
Then create another Integer so these particles can be moved. Call it PPA (Particle
Position Alteration variable).
You will be using this when moving the particles, since they have no means to store
velocity themselves (no X,Y,Z values for this).
I’ve omitted them as they’re not required for the assignment. We are not studying
any specific type of parallel modelling.
Set your PPE variable to 2 initially
Each particle in the system should have its position altered on all three axis, x, y and
z, separately, on each step, with each being either incremented or decremented
(Whether it is positive or negative should be the result of a random selection) using
This document is for Coventry University students for their own use in completing their
assessed work for this module and should not be passed to third parties or posted on any
website. Any infringements of this rule should be reported to
XXXXXXXXXX.
your PPE variable. This PPE itself should remain as a positive value. It doesn’t matter
if the individual axis values go into negative values (you’ll notice many of the ones
you’ve been given start with at least one already being negative), since these are
moving in three-dimensional space.
Increase the PPE by any integer value from one to five on each iteration. This
increase should also be the result of a random selection.
Your program should, as a minimum, print the original state, their state at twenty
five steps, then their state at the fifty step point.
Comments in your code are a good idea, as easy to read code is more likely to raise
the amount of marks you are assigned
As part of your submission for this you will need at least one screenshot of the
program running under your own user account on the server, to demonstrate that it
is your own work.
If screenshots of your program running on the server are not present, you will lose
marks.
This document is for Coventry University students for their own use in completing their
assessed work for this module and should not be passed to third parties or posted on any
website. Any infringements of this rule should be reported to
XXXXXXXXXX.
Part C – 25% of portfolio grade.
This MUST be a separate program, not combined with Part B, if you combine it
with part B you will lose marks.
Use the code and results from Part B as a starting point for this task.
This does mean you will need to preserve your results from Part B, I leave it to you
to decide how, since there are so many options.
Locate the centre for the set of particles you had from Part B (the point around
which they are all grouped).
For another fifty steps, move them all towards this point by using the same method
as before, after setting the PPA variable back to 2, and increasing it as before.
Again your program should print their starting state, their state at twenty five steps,
then their state at the fifty step point. You can show more states, this is the
minimum required.
Print both the final distance between all the particles and this central point and their
original distance from it.
Move the particles back towards this central point you’ve identified using the PPA
This document is for Coventry University students for their own use in completing their
assessed work for this module and should not be passed to third parties or posted on any
website. Any infringements of this rule should be reported to
XXXXXXXXXX.
You don’t have to succeed at moving the particles physically to the centre, although
it can be done.
The point is to try to do it, have the particles moving in towards each other, then
demonstrate this movement in the work you submit.
How you demonstrate it is up to you, I recommend a method which makes the
eduction in distance between the particle whose data are being displayed and the
calculated destination (the central point) obvious.
If your selected demonstration method means showing their states at more points
than the assignment specifies, this is perfectly acceptable.
Comments in your code are a good idea, as easy to read code is more likely to raise
the amount of marks you are assigned
As part of your submission for this you will need at least one screenshot of the
program running under your own user account on the server, to demonstrate that it
is your own work.
If screenshots of your program running on the server are not present, you will lose
marks.
This document is for Coventry University students for their own use in completing their
assessed work for this module and should not be passed to third parties or posted on any
website. Any infringements of this rule should be reported to
XXXXXXXXXX.
Marking Ru
ic
Program functionality
Adherence to
assignment specification
Code Quality
First
≥70
Code exceeds
expectations and always
uns successfully.
Demonstration of
program running
included in submission.
Meets and may exceed
all assignment
specifications, design
matches requirements.
Uses OpenMP.
Code quality is excellent,
has comments and
proper layout.
All indenting is co
ect.
First
≥70
Upper
Second
60-69
Code is complete and
always runs successfully,
Demonstration of
program running
included in submission.
Meets most assignment
specifications, design