Parallel Programming in C for Multiprocessor 多處理機平行程式設計
-
Upload
aretha-anthony -
Category
Documents
-
view
79 -
download
1
description
Transcript of Parallel Programming in C for Multiprocessor 多處理機平行程式設計
![Page 1: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/1.jpg)
Parallel Programming in C for Parallel Programming in C for MultiprocessorMultiprocessor多處理機平行程式設計多處理機平行程式設計
朱治平
成功大學資訊工程系
![Page 2: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/2.jpg)
QuestionsQuestionsWhat is parallel computing?What is a parallel computer? - multicomputers - centralized multiprocessors (symmetrical
multiprocessor or SMP)What is parallel programming? - algorithm level - statement levelIs parallel programming really necessary?Why should I program using MPI (Message
Passing Interface) and OpenMP?
![Page 3: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/3.jpg)
Areas with complex scientific Areas with complex scientific problemsproblemsQuantum chemistry, statistical
mechanics, and relativistic physicsCosmology and astrophysicsComputational fluid dynamics and
turbulenceMaterial design and superconductivityBiology, Pharmacology, genome
sequencing, genetic engineering, protein folding, enzyme activity, cell modeling
Medicine, and modeling of human organsGlobal weather and environmental
modeling
![Page 4: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/4.jpg)
Other state-of-the-art parallel Other state-of-the-art parallel programming modelsprogramming models
Cuda (proposed by Nvidia) - in GPGPU environment - C and C-extended syntax
MapReduce (proposed by Google) - for data set specific parallel
applications
![Page 5: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/5.jpg)
Course ObjectiveCourse 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.
![Page 6: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/6.jpg)
6
PrerequisitesPrerequisites
Program DesignData Structures (Helpful)Algorithms (Helpful)Computer Architecture (Helpful)Operating Systems (Helpful)
![Page 7: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/7.jpg)
7
GradingGrading
Homework (50%) - Parallel Programming - Hand-written Assignments
Final Exam (30%)Final Project (20%)
![Page 8: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/8.jpg)
Lab ExercisesLab Exercises1. Building a cluster (2 persons/team)2. Distributed memory programming in MPI - Algorithm-level parallel programming - Statement-level parallel programming - Transforming a sequential program into a
parallel program3. Shared memory programming with OpenMP4. Parallel programming with hybrid
MPI/OpenMP5. Learning the use of parallel tools to analyze sequential program
![Page 9: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/9.jpg)
Grading criteria for parallel Grading criteria for parallel programmingprogramming
Coding standard (30%)Correctness (40%)Performance (Speedup) (30%)
![Page 10: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/10.jpg)
Teaching AssistantTeaching Assistant
姓名 : 朱嘉葦 ( 碩二 )Office: 雲平大樓五樓 510 室 ( 軟體發展實驗室 )Email: [email protected]
![Page 11: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/11.jpg)
Reference BooksReference Books1. 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
![Page 12: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/12.jpg)
Web SiteWeb Site
12
http://casd.csie.ncku.edu.tw/
資工系 軟體發展實驗室網頁
![Page 13: Parallel Programming in C for Multiprocessor 多處理機平行程式設計](https://reader033.fdocuments.net/reader033/viewer/2022061518/5681309c550346895d968271/html5/thumbnails/13.jpg)
DemonstrationDemonstration
Finding a shortest path by using ant algorithm
- sequential version - parallel version