This document outlines 4 parallel projects for students to complete involving searching or alphabet counting algorithms using either MPI or CUDA. It provides descriptions of the tasks for each project, which include implementing algorithms to perform searches or counts in parallel, measuring performance and speedup by varying thread/process counts, and plotting results. Students must submit source codes, executables, and a report in PDF format with their name, project name, system overview, and algorithm details.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
45 views2 pages
Parallel Project Section 3
This document outlines 4 parallel projects for students to complete involving searching or alphabet counting algorithms using either MPI or CUDA. It provides descriptions of the tasks for each project, which include implementing algorithms to perform searches or counts in parallel, measuring performance and speedup by varying thread/process counts, and plotting results. Students must submit source codes, executables, and a report in PDF format with their name, project name, system overview, and algorithm details.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2
ITCS443 Parallel and Distributed Systems
Parallel Project for Section 3 (Updated April 24th)
Semester 2/2014 Due Date: May 16th
A group of two to three students is assigned to one project. We have 2 Projects with your choice of MPI or CUDA programming.
1. Performance Evaluation for parallel searching using MPI
Description: a) Implement any choice of the parallel searching algorithm using MPI to collect the numbers of any three keywords in three assigned e-books (No.1-3). We can use our Mahidol clusters as the testbed. b) Measure the performance (execution time) of your implementation by comparing among 1, 2, 4, 8, 16, 32 and 64 processes at least (one keyword with one e-book per graph). c) Measure the speedup of your implementation by comparing among 2, 4, 8, 16, 32 and 64 processes at least (one keyword with one e-book per graph). d) Your program must accept all of “xxx.txt” and can search all of keywords with up to at least 32 characters received from users. e) The keywords for performance and speedup evaluation are “and”, “which”, and “a”
2. Performance Evaluation for parallel searching using CUDA
Description: a) Implement any choice of the parallel searching algorithm using CUDA to collect the number of keywords in an assigned e-book (No.1 and 2). We can use our Mahidol clusters as the testbed or your laptop if it has supported GPU. b) Measure the performance (execution time) of your implementation by comparing among the following scenarios a. 1, 2, 4, 8, 16, 32 and 64 threads using the same block b. 8, 16, 32 and 64 thread-block using multiple blocks (8 blocks per grid at least) c) Plot b.a and b.b in the same graph and plot one e-book per graph. d) Measure the speedup of your implementation by comparing the sequential code and parallel code among the following scenarios a. 2, 4, 8, 16, 32 and 64 threads using the same block b. 16, 32 and 64 thread-block using multiple blocks (8 blocks per grid at least) e) Plot d.a and d.b in the same graph and plot one e-book per graph. f) Your program must accept all of “xxx.txt” and can search all of keywords with up to at least 32 characters received from users. g) The keywords for performance and speedup evaluation are “which” and “a” -2-
3. Performance Evaluation for parallel alphabet counting using MPI
Description: a) Implement any choice of the parallel searching algorithm using MPI to collect the numbers of alphabet a (or A) to z (or Z) in ten assigned e-books (No.1-5). We can use our Mahidol clusters as the testbed. b) Measure the performance (execution time) of your implementation by comparing among 1, 2, 4, 8, 16, 32 and 64 processes at least (one e-book per graph). c) Measure the speedup of your implementation by comparing among 2, 4, 8, 16, 32 and 64 processes at least (one e-book per graph).
4. Performance Evaluation for parallel searching using CUDA
Description: a) Implement any choice of the parallel searching algorithm using CUDA to collect the numbers of alphabet a (or A) to z (or Z) in five assigned e-books (No.1-3). We can use our Mahidol clusters as the testbed or your laptop if it has supported GPU. b) Measure the performance (execution time) of your implementation by comparing among the following scenarios a. 1, 2, 4, 8, 16, 32 and 64 threads using the same block b. 16, 32 and 64 thread-block using multiple blocks (8 blocks per grid at least) c) Plot b.a and b.b in the same graph and plot one e-book per graph. d) Measure the speedup of your implementation by comparing the sequential code and parallel code among the following scenarios a. 2, 4, 8, 16, 32 and 64 threads using the same block b. 16, 32 and 64 thread-block using multiple blocks (8 blocks per grid at least) e) Plot d.a and d.b in the same graph and plot one e-book per graph. Condition: a) You are free to choose any kind of project topic using any algorithm to get the result. b) You have to submit all of your source codes, executable files and configuration files with the manual. All files must be zipped into one file and upload to the ICT e-learning web. c) Your program performance will be compared with the same kind of other group projects. The best one will get the highest score. d) Any kind of copy or sharing other group works; the scores will be divided by the numbers of copies.
Reporting:
A soft copy in PDF format consists of the following information
a) Project name, Name, and ID of all members.
b) The system overview of your work and all features of your work. c) The algorithm/ Structure chart as necessary. d) The list of source code is not needed.