EECE5640 High Performance Computing Homework 1 solution

$30.00

Original Work ?

Download Details:

  • Name: Homework1-sgcyu6.zip
  • Type: zip
  • Size: 1.72 MB

Category: You will Instantly receive a download link upon Payment||Click Original Work Button for Custom work

Description

5/5 - (1 vote)

1. (30) In this problem, you are to select a set of 3 single-threaded benchmark
programs. Try to provide some diversity in the set of workloads you have
chosen (e.g., floating point, integer, memory intensive, sparse). Then
complete the following experiments using these benchmarks. Make sure to
provide as many details as possible about the systems you are using, and
where you obtained the source code for these benchmarks.

a. Compile and run these 3 benchmarks on a Linux-based system of your
choosing (you can also use either the COE systems or the Discovery
systems). Provide detailed information about the platform you chose,
including the model and frequency of the CPU, number of cores, the
memory size, and the operating system version.

You should record
the execution time, averaged over 10 runs of the program. Is any run
of the program faster than another? If so, comment on any difference
you observe in your write-up, providing some justification for the
differences.

b. Next, explore the compiler optimizations available with the compiler
on your system (e.g., gcc or g++), and report on the performance
improvements found for the 3 workloads. Describe the optimization
you applied, and provide insight why each of your benchmarks
benefitted from the specific compiler optimization applied.

c. Assume that you were going to rewrite these applications using
pthreads. Describe how you would use pthreads to obtain additional
speedup by running your benchmark on multiple cores.

*Answers to this question should be included in your homework 1 write-up
in pdf format.

2. (30) In this problem, you will start by selecting a sorting algorithm to sort
7,500 random integers with values 1-1,000,000. We will use pthreads in the
problem to generate a parallel version of your sorting algorithm. If you
select code from the web (and you are encouraged to do so), make sure to
cite the source of where you obtained the code.

You are also welcome to
write your own code from scratch. You will also need to generate the 7,500
random integers (do not time this part of your program). Make sure to print
out the final results of the sorted integers to demonstrate that your code
works (do not include a printout of the 7,500 numbers). Provide your source
code in your submission on Canvas.

a. Run your program with 1, 2, 4 and 8 threads on any system of your
choosing. The system should have at least 4 cores for you to run your
program on. Report the performance of your program.

b. Describe some of the challenges faced when performing sorting with
multiple threads.

c. Evaluate both the weak scaling and strong scaling properties of your
sorting implementation.

*You should include your C/C++ program for this problem. Also include
your written answers to questions 2 (a-c) in your homework 1 write-up.

3. (10) Select a node on the Discovery Cluster and report the following
information about that node: (please do not ask the system admins for this
information)

a. The CPU model
b. The cache memory hierarchy, including the size and associativity.
c. The main memory size of this node.
d. The version of Linux installed.

*Answers to this question should be included in your homework 1 write-up
in pdf format.

4. (15) Find the current listing (58th) for the Top500 list for November 2021.
Review the system architecture for each of the top 10 systems on this list.
Provide a summary of trends that you find and discuss what kind of system
you would design in the future so that it could be included in this impressive
list.

Make sure to provide a diagram of the architecture you would develop,
and include details of the CPUs, memory and interconnect used.
*Answers to this question should be included in your homework 1 write-up
in pdf format.

5. (15) Find the current listing (18th) for the Green500 list for November 2021.
Review the system architecture for each of the top 10 systems on this list.

Discuss the differences that you see from this list and the list for the Top500
you found in question 4. Also compare it to the 17th Green500 list for June
2021.

*Answers to this question should be included in your homework 1 write-up
in pdf format.

**This question is worth 15 extra credit quiz points for undergraduate and
Plus-One students.