1 / 13

Parallel Programming in C for Multiprocessor 多處理機平行程式設計

Parallel Programming in C for Multiprocessor 多處理機平行程式設計. 朱治平 成功大學資訊工程系. Questions. What is parallel computing? What is a parallel computer? - multicomputers - centralized multiprocessors (symmetrical multiprocessor or SMP) What is parallel programming? - algorithm level

Download Presentation

Parallel Programming in C for Multiprocessor 多處理機平行程式設計

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Parallel Programming in C for Multiprocessor多處理機平行程式設計 朱治平 成功大學資訊工程系

  2. Questions • What is parallel computing? • What is a parallel computer? - multicomputers - centralized multiprocessors (symmetrical multiprocessor or SMP) • What is parallel programming? - algorithm level - statement level • Is parallel programming really necessary? • Why should I program using MPI (Message Passing Interface) and OpenMP?

  3. Areas with complex scientific problems • Quantum chemistry, statistical mechanics, and relativistic physics • Cosmology and astrophysics • Computational fluid dynamics and turbulence • Material design and superconductivity • Biology, Pharmacology, genome sequencing, genetic engineering, protein folding, enzyme activity, cell modeling • Medicine, and modeling of human organs • Global weather and environmental modeling

  4. Other state-of-the-art parallel programming models • Cuda (proposed by Nvidia) - in GPGPU environment - C and C-extended syntax • MapReduce (proposed by Google) - for data set specific parallel applications

  5. Course Objective To train a student to be with the capability of (1) building a cluster of computers supporting parallel execution of program, and (2) programming parallel computers based on parallel algorithms and/or parallel statements in order to solve time-consuming scientific problems.

  6. Prerequisites Program Design Data Structures (Helpful) Algorithms (Helpful) Computer Architecture (Helpful) Operating Systems (Helpful) 6

  7. Grading Homework (50%) - Parallel Programming - Hand-written Assignments Final Exam (30%) Final Project (20%) 7

  8. Lab Exercises • Building a cluster (2 persons/team) • Distributed memory programming in MPI - Algorithm-level parallel programming - Statement-level parallel programming - Transforming a sequential program into a parallel program • Shared memory programming with OpenMP • Parallel programming with hybrid MPI/OpenMP • Learning the use of parallel tools to analyze sequential program

  9. Grading criteria for parallel programming • Coding standard (30%) • Correctness (40%) • Performance (Speedup) (30%)

  10. Teaching Assistant 姓名: 朱嘉葦 (碩二) Office: 雲平大樓五樓510室(軟體發展實驗室) Email: chiaweishine@gmail.com

  11. Reference Books 1. Parallel Programming in C with MPI and OpenMP Michael J. Quinn Mc Graw Hill Company 2. Using OpenMP: Portable Shared Memory Parallel Programming Barbara Chapman, Gabriele Jost, Ruud van der Pas The MIT Press

  12. Web Site http://casd.csie.ncku.edu.tw/ 資工系  軟體發展實驗室網頁 12

  13. Demonstration • Finding a shortest path by using ant algorithm - sequential version - parallel version

More Related