联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2023-12-03 08:01

CSCN73000 – Lab5

Parallel Data Processing – First MPI Application

Overview

Lab5 has been designed to give you experience implementing your first multi-threaded program using

Microsoft MPI libraries. The main goal of this lab is to get you to implement a prefix sum (again) and

become familiar with the thought process and communication that MPI provides between threads. The

lab provides you with a starting point and then has two components to be implemented.

This lab will be using Visual Studio, C++11 or greater (C++20 is recommended) and Standard MPI (NOT

BOOST).

PART 1: Prefix Sum Review

You implemented a prefix sum in Lab 4 using OpenMP, so you should be familiar with the how to

calculate a prefix sum. If you need a bit of a refresher, I recommend re-watching the following YouTube

video and reviewing your Lab4 solution.

• https://www.youtube.com/watch?v=lavZl_wEbPE&t=2067s

PART 2: Installing the Microsoft MPI Libraries

Before you begin you will need to download and install the Microsoft MPI libraries on your local Laptop/PC. Goto

the following link and click on “download”

• https://www.microsoft.com/en-us/download/details.aspx?id=100593

Once you click on download a dialog should pop up with the choice to download two files

• msmpisetup.exe

• msmpisdk.msi

You will need to download and install BOTH of these files. The first is the MPI runtime environment and the

second is the software development kit your source will need. Just use all the defaults during the installation

process.

PART 3: Getting Started

There is some starting code for you to work with. Download the “Lab5_Startingpoint.cpp” file from eConestoga

and setup a new Visual Studio Solution/Project that contains the starting point code. This code will compile but

does not produce anything. You will notice there are comments stating where your updates need to go.

Just to review, you should notice the code already provides you with the required MPI calls.

• MPI_Init()

• MPI_Finalize()

The code also creates two variables (taskid and numtask), which are populated using the calls MPI_Comm_rank()

and MPI_Comm_size(). This will help you to see that you are correctly running the MPI Environment.

PART 4: Implementation of Default Array

The source code you have been provided contains a default Original_Array of 10 integer numbers (0-9). Using

blocking MPI calls, design a parallel solution that will calculate a prefix sum using the following requirements:

• Your application design shall use 10 threads

• Each thread shall be responsible for 1 entry in the resulting Prefix_Array.

• Each thread shall calculate the prefix sum for its assigned index in the Prefix_Array

When you are ready to test/debug your code, use a windows console terminal and mpiexec.exe to run your

application. Once complete, take a screenshot of your final output (terminal window only) and upload it into the

box below:

(1)

PART 5: Discussion

Answer the following questions in the text boxes provided.

(1) What data did your send from the Master to Worker? Why?

(2) What data did you send from the Worker to the Master? Why?

(3) Summarize the problems you encountered during development and the process you used to

solve/debug your issues.

Rubric

See eConestoga for details.

In Class Requirement

There is no in-class portion to this lab.

What to Hand In

Once you have completed your lab upload the following files INDIVIDUALLY to eConestoga using the

Lab5_Final submission link:

• A copy of this completed PDF form

• A ZIP file containing your entire solution space.

Please make sure you delete all .vs (Hidden), release and debug directories before you compress and

upload your solution.


相关文章

版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp