Parallel Computer for Data Mining Using MPI or OpenMP or GPU

2021 COE Engineering Design Project (NM01)


Faculty Lab Coordinator

Nagi Mekhiel

Topic Category

Software Systems

Preamble

Parallel Computers are now available at low cost and are used to run applications that need more computing power. There are important applications in Science as weather prediction, or Engineering as crash test for new cars, CAD to design VLSI, Medicine to develop new Vaccines, search huge data base, and multimedia as animation Data mining applications for Healthcare to Discover the relationships between diseases and the effectiveness of treatments The project will enable students to build a parallel computer using available off shelves computers then select an application that needs the power of parallel computer. Students will learn also how to write efficient parallel code that targets the specific parallel computer model they built and measure the performance improvements and know how to deal with performance limitations

Objective

To build a real parallel computer, then write efficient parallel code that improves the performance of an application that requires significant computing power. The system scalability will be measured and optimized and must give performance improvements proportional to the number of parallel nodes used. Also the performance bottleneck and limitation must be explained and identified.

Partial Specifications

-Parallel computer must use more than 4 processors
-The application must be time consuming to run in a single processor
-For MPI it must be connected to a fast network with known parameters
-Use windows or UNIX OS
-Use C, C++

Suggested Approach

-MPI USING WINDOWS FOR PARALLEL APPLICATIONS
Download MPI required Software to run a parallel application under windows OS.
Your project must use a compiler C or Fortran to compile a parallel application, and Run it on multiple processors . Evaluate performance gain from using parallel processing and find the effect of communication, synchronization and other overhead used to support parallel computing on performance.

-MPI USING UNIX/LINUX FOR PARALLEL APPLICATIONS
Download MPI required Software to run a parallel application under UNIX/LINUX OS.
Your project must use a compiler C or Fortran to compile a parallel application, and Run it on multiple processors . Evaluate performance gain from using parallel processing and find the effect of communication, synchronization and other overhead used to support parallel computing on performance.


-OPENMP USING WINDOWS FOR PARALLEL APPLICATIONS
Download OPENMP required Software to run a parallel application under windows OS.
Your project must use a compiler C or Fortran to compile a parallel application, and Run it on multiple processors . Evaluate performance gain from using parallel processing and find the effect of communication, synchronization and other overhead used to support parallel computing on performance.

-GPU-accelerated computing is the use of a graphics processing unit (GPU) together with a CPU to accelerate scientific, analytics, engineering.

Useful Links:
http://www.mcs.anl.gov/research/projects/mpich2/
http://openmp.org/wp/
http://www.cygwin.com/
http://phase.hpcc.jp/Omni/ http://boinc.berkeley.edu/wiki/GPU_computing
http://www.eecg.toronto.edu/~moshovos/CUDA08/doku.php?id=project_presentations_reports_source_code
http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#axzz4JoOkC2j9

Group Responsibilities

The group is responsible to work to achieve the following:-
-Selecting the Application that requires parallel computing power
-Read all references related about the application and why it requires the parallel computer
-Select a suitable parallel computer model (MPI, or OpenMP or GPU or combination)
-Select OS to be used
-Install software for the Model
-Write efficient parallel code for application that uses the selected model
-Define performance issues, bottleneck and try to eliminate it
-Try to change the algorithm used for application to be suitable for parallelism
-Evaluate and measure performance gain and scalability of system
-write report of the findings and procedures for this project

Student A Responsibilities

Reading about the application and collecting references about methods used to run it
-Define sequential code used to run the application
-define the size and scope of application and expected performance when using parallel computing

Student B Responsibilities

Student B Responsibilities
Student B Responsibilities
-Identify a suitable parallel programming model to be used
-Install software and test the model
-Convert sequential code to parallel code and compile then run on parallel computer

Student C Responsibilities

-Define suitable algorithm for parallel code and optimize the code
-measure performance of parallel application and identify limitations and bottlenecks
-Write report to explain project and achievement gained

Student D Responsibilities

Optimize the performance of algorithm and parallel code compared to sequential code

Course Co-requisites

To ALL EDP Students

Due to COVID-19 pandemic, in the event University is not open for in-class/in-lab activities during the Winter term, your EDP topic specifications, requirements, implementations, and assessment methods will be adjusted by your FLCs at their discretion.

 


NM01: Parallel Computer for Data Mining Using MPI or OpenMP or GPU | Nagi Mekhiel | Thursday September 9th 2021 at 04:00 PM