COMP1680 Clouds, Grids and Virtualisation Coursework 2024 - 25 | UOG

Published: 06 Feb, 2025
Category Coursework Subject Computer Science
University University Of Greenwich Module Title COMP1680 Clouds, Grids and Virtualisation

Detailed Specification

This Coursework is to be completed individually

Part 1: Parallel processing using cloud computing (40 marks)

A company you work for is considering whether to use Cloud Computing or an onsite HPC for parallel codes. Make a recommendation to which you think they should use and why. Assume the company is a small consultancy with 30 consultants using around 1400 CPU hours each a month.

Your recommendation should include:

  1. An analysis of the advantages and disadvantages of the different commercial providers (e.g. Azure, AWS, Google Cloud) over an onsite HPC and compared to each other for multicore workloads using batch processing. Your answer should include referenced examples.
  2. A comparison of the financial cost of an onsite HPC vs using cloud storage. You should include numerical examples in your comparison
  3. Your recommendations to the company. This should include what platform you think they should use and why. You must justify this using the information in parts 1 and 2.
  4. A reference list, please use Harvard Style Referencing, you should reference everything including where you got your costs from. 

(https://www.scribbr.co.uk/referencing/harvard-style/)

Step 1

You are required to compute a temperature distribution for a rectangular 2D problem with boundary conditions set at top 15°C, bottom 60°C, left 47°C and right 100°C with a range of problem sizes. To do this you are required to modify the codes to:

  • reflect the boundary conditions described above
  • report the execution time Record the run-time of your code under a range of problem sizes greater than 100x100 using different levels of compiler optimization.

Be advised that:

  • it is possible that aggressive optimization will break the code
  • you will need to stop the results from printing if you are to obtain realistic measurements of the execution time.

Step 2 

You are then required to modify the applications you created in step 1 to produce a basic parallel version of the codes using OpenMP. The following commands will compile your parallel version on a platform that has OpenMP installed:

gcc -fopenmp jacobiOpenmp.c –o jacobiOpenmp

The parallel codes must include timers to report the parallel run-time of the code. This version must be tested to establish correct operation using 1, 2, 4 and 8 threads/processors, regardless of performance. (These versions may run on any platform you choose as performance is not an issue at this stage.)

Include in your report, the result for a 20x20 problem size for 1,2,4 and 8 processors to demonstrate the code works correctly. This should be as a screen shot of the outputted grid.

Step 3 

Using the HPC and the SLURM queue you are to run performance tests with the OpenMP implementation you created in step 2. This will require that you remove most of the print output from the code and increase the problem size to provide sufficient work to demonstrate useful speedup. You are expected to provide speedup results:

  • for a range of problem sizes, you are unlikely to see much speedup for small domains, use the same problem size as step 1
  • for a range of number of threads (from 2 up to 8 threads) In calculating the speedup of your parallel code you should use the optimized single processor version of your code you produced in step 1 and compare to this. You will need to apply similar compiler optimizations to your parallel code. Please list your runtimes in a suitable unit.

This section is required to provide details of your implementation of steps 1 to 3 as described above. You should include discussion of your solutions and provide a clear description of; the code changes you have implemented including code snippets, your compilation and execution processes and your test cases. For step 3 you are expected to provide tabular and graphical results. Your zip file should provide suitably named source code files for each of your implementations (e.g. step 1, step 2, step 3).

Are you struggling with your COMP1680 Cloud, Grid, and Virtualization coursework? You can now be stress-free as our assignment help online service is there to guide you every step of the way. With expert coursework helpers, we ensure high-quality, plagiarism-free solutions tailored to your academic needs. Need some help to get started? Explore our free samples for insight and inspiration. Trust us to make your coursework stress-free and help you achieve excellent grades!

Online Assignment Help in UK