Assignment title: Information
COMP1680
(2015/16) Clouds, Grids and Virtualisation (RESIT) Header ID
228048
Course Leader
Dr Avgoustinos Filippoupolitis Release Date
Wednesday 18/05/2016 Deadline Date
Sunday 17/07/2016
This coursework should take an average student who is up-to-date with tutorial work approximately 30 hours
Feedback and grades are normally made available within 15 working days of the coursework deadline
Learning Outcomes:
Characterise and critically evaluate high performance computing based architectures and their suitability for given applications.
Implement and execute applications using shared and distributed memory programming paradigms.
Describe and critically discuss the roles and applications of cloud and grid computing.
Plagiarism is presenting somebody else's work as your own. It includes: copying information directly from the Web or books without referencing the material; submitting joint coursework as an individual effort; copying another student's coursework; stealing coursework from another student and submitting it as your own work. Suspected plagiarism will be investigated and if found to have occurred will be dealt with according to the procedures set down by the University. Please see your student handbook for further details of what is / isn't plagiarism. Details are also on the Student Intranet.
All material copied or amended from any source (e.g. internet, books) must be referenced correctly according to the reference style you are using.
Your work will be submitted for plagiarism checking. Any attempt to bypass our plagiarism detection systems will be treated as a severe Assessment Offence.
Coursework Submission Requirements
• An electronic copy of your work for this coursework must be fully uploaded by midnight on the Deadline Date of Sunday 17/07/2016 using the link on the coursework Teachmat page for COMP1680.
• For this coursework you must submit a single Acrobat PDF document.
In general, any text in the document must not be an image (ie must not be scanned) and would normally be generated from other documents (eg MS Office using "Save As .. PDF"). More details are on the IT Support pages . An exception to this is hand written mathematical notation, but when scanning do ensure the file size is not excessive.
• For this coursework you must also upload a single ZIP file containing supporting evidence.
• There are limits on the file size (current values are on TeachMat and the Student Intranet).
• Make sure that any files you upload are virus-free and not protected by a password or corrupted otherwise they will be treated as null submissions.
• Your work will not be printed in colour. Please ensure that any pages with colour are acceptable when printed in Black and White.
• You must NOT submit a paper copy of this coursework, or include the Banner header sheet.
• All courseworks must be submitted as above. Under no circumstances can they be accepted by academic staff
The University website has details of the current Coursework Regulations, including details of penalties for late submission, procedures for Extenuating Circumstances, and penalties for Assessment Offences. See http://www2.gre.ac.uk/current-students/regs
Detailed Specification
This coursework is to be completed individually.
To complete this assignment you will need the source code provided at the following URL.
https://cms1.gre.ac.uk/teachmat1314/COMP1680/course/nbody.zip
The classical N-body problem simulates the dynamics of a group or system of N bodies. A body may be smaller than an atom or larger than a planet. The forces exerted on each body arise from its interaction with all the other bodies in the system. N-body algorithms have numerous applications in areas such as astrophysics, molecular dynamics and plasma physics. The simulation proceeds over steps in time delta t, at each time step the net force on every body is calculated to a specified tolerance and this in turn updates its position and other attributes. If all pair-wise forces are computed directly, this requires O(N2) operations at each time step.
The code you have been provided (called nbody.c) is a simplified version of an N-body
simulation that illustrates the above theory. The code can be compiled, linked and an executable file called nbodycreated by using the following command.
gcc –lm nbody.c –o nbody
To run the executable an example data input file called input is provided as a starting
point. The serial code can be executed using the following command which takes a few
seconds to run to completion.
nbody< input
As you implement each of the following 4 steps make sure that you retain and do not
overwrite previous versions of your solutions.
Step 1
A breakdown of the application code looking at potential parallelism, making use of
dependence analysis where appropriate, and discussing anticipated parallel performance.
Record the run-time of your code under a range of problem sizes and using different levels of compiler optimization. This code is potentially unstable for some problems. You will need to do some experimentation to establish stable test cases with sufficiently long run times to enable meaningful measurements.
Step 2
You are to modify the application that you created in step 1 to produce a basic parallel
version of the code using OpenMP. The following command will compile your parallel
version on a platform that has OpenMP installed.
gcc -fopenmp –lm nbodyStep2.c –o nbodyStep2
This version must be tested to establish correct operation using 1, 2, 3, 4, 5, 6, 7 and 8 threads. Using the test cases you developed in step 1, you should compare the results of the serial code in Step 1 to those of the basic parallel version produced in Step 2.
Step 3
You are to modify the application that you created in step 2 to include timers to report the parallel run-time of the code. Using the cms-grid machines you are to run OpenMP
performance tests and provide speedup results using 1, 2, 4 and 8 threads with the test cases you developed in step 1.
Step 4
You are to further modify your OpenMP application with a view to improving the parallel performance. You are expected to provide results that permit comparison with those you obtained in step 3.
Deliverables
• A PDF file with your report
• A ZIP file with the source code for your solutions.
Your report is required to provide details of your implementation of steps 1 to 4 as described above.
The report should include discussion of your solutions and provide a clear description of; the code changes you have implemented, your compilation and execution processes and your test cases.
For steps 3 and 4 you are expected to provide tabular and graphical results.
Your zip file should provide suitably named source code files for each of your implementations.
Assessment Criteria
The indicative marks are 25% per step.
Grading Criteria
To achieve a pass mark it is expected that an outline solution will be provided in which at least a basic attempt is evident with some progress.
To achieve a mark in the merit range it is expected that a good solution is provided in which there is clear evidence of progress and understanding.
To achieve a distinctive mark it is expected that high quality solutions and reports are provided in which there is clear evidence of competence in practical, theoretical and presentation skills.
If you are unsure about any of these instructions then please email your tutor or make an appointment to see your tutor as soon as possible.