University | National University of Singapore (NUS) |
Subject | TIC4005: Parallel and Distributed Software Engineering |
TIC4005 project 2 – MPI, Measurement
Project 2: This project is not a software-development one. Instead, you will measure, reflect, and write up the behavior of various programs as the problem size scales. I expect this write-up to take no more than 10-20 pages. You can download the project programs from
1 Part 1: the first program – Matrix Multiply
The first program is a simple matrix multiply program, which you will be timing and observing. Consider the following points…
1. The program adopts the master/worker paradigm.
2. Using -np 2 will start up two tasks, one being the master task, and one the worker. So -np 8 will mean that there are 7 workers, and a master doing NOTHING as usual.
3. You are sharing the cluster with other students. If you time some runs of a program, should you use the shortest time? The average time? The longest time?
Take some time to look at the source code of the program (mm.c), and observe how it is supposed to work.
Note that you can edit the program to change the size of the arrays/matrices that it works on. The initial program is for 512×512 arrays.
Step1: Compile and run the program with different numbers of tasks on a single processor, recording the times of the runs.
Step2: Compile and run the program with different numbers of tasks on multiple processors, recording the times of the runs.
Step3: Compile and run the program with different sizes of arrays (512 × 512…4096 × 4096…), and different numbers of tasks on multiple processors, recording the times of the runs.
2 Part 2: the second program – heat 3d
The second program is a program which attempts to model heat (energy flow) in a 3-dimensional space.
This code was originally from https://github.com/fabien-dournac/parallel-heat3d-c, but I have made some small modifications. Note the following…
1. The directory includes a Makefile, and the command make will compile the program, with score profiling.
2. The directory includes a run script ./run_performance_heat3d which will automatically run and record various tests on different sized 3D worlds. Cumulative results are put in the file performance.txt.
You may want to modify this and the machinefile to explore more deeply.
3. The directory includes a MATLAB script ./plot_performance_heat3d.m which will automatically graph (some) results from performance.txt. You will have to do this on your own machine using MATLAB. You can of course also use gnuplot, or excel, or grapher, or…
Take some time to look at the source code of the program, and observe how it is supposed to work.
Step1: Compile and run the program (initially) with the unchanged script.
Step2: (Later) modify the script to record as well any other readings you wish to make.
From these recordings, you should be able to graph what is happening for your sets of runs.
Buy Custom Answer of This Assessment & Raise Your Grades
Avail of the engineering assignment help on TIC4005: Parallel and Distributed Software Engineering from Singapore Assignment Help. Our experts are highly talented to prepare all types of solutions related to civil engineering assignments, industrial engineering assignments, environmental engineering assignments, etc at a low-cost price.
Looking for Plagiarism free Answers for your college/ university Assignments.
- ECE210 Advocacy and Collaborations with Families Assignment: Supporting Young Children Through Grief and Family-Centered Partnerships
- ACC707 Accounting and Finance Assignment: Evaluating Investment Decisions, Budgeting Strategies, and Financial Performance Analysis
- NCO201 Learn to Learn, Learn for Life TMA-01: Developing Self-Directed Learning Through the Journey of Mastering Public Speaking
- PSS219 Public Safety and Security in Singapore Group-Based Assignment: Strengthening National Resilience Through Policy Responses from the 2025 Committee of Supply Debate
- MTH240 Engineering Mathematics I Assignment: Heat Transfer, Chemical Balancing, Circuit Analysis, Signal Processing, and Matrix Theory
- Engaging Youth with IBM Skills Build Assignment: Designing Innovative Strategies for Skill Development and Career Growth
- BUS368 Innovation Management and Digital Transformation Assignment: Managing Innovation in Foldable, Trifold, and Stretchable Display Technologies
- BUS366 Assignment: Process Improvement and Recruitment Optimization Using Lean Six Sigma Methodology
- HBC203 Statistics and Data Analysis for the Social and Behavioural Sciences TMA-01: A Comparative Analysis of Workplace Wellbeing Interventions and Their Impact on Employee Productivity
- BCAF003 Business Accounting Assignment: A Comprehensive Study on Bank Reconciliation, Cash Controls, Inventory Valuation, and Financial Analysis