parallel programming in c for multiprocessor 多處理機平行程式設計
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Parallel Programming in C for Parallel Programming in C for MultiprocessorMultiprocessor多處理機平行程式設計多處理機平行程式設計
朱治平
成功大學資訊工程系
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?
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
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
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.
6
PrerequisitesPrerequisites
Program DesignData Structures (Helpful)Algorithms (Helpful)Computer Architecture (Helpful)Operating Systems (Helpful)
7
GradingGrading
Homework (40%) - Parallel Programming - Hand-written Assignments
Final Exam (40%)Final Project (20%)
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
Grading criteria for parallel Grading criteria for parallel programmingprogramming
Coding standard (10%)Correctness (60%)Performance (Speedup) (30%)
Teaching AssistantTeaching Assistant
姓名 : 陳奇業博士 ( 助理研究員 )Office: 雲平大樓五樓 510 室 ( 軟體發展實驗室 )Email: [email protected]
Reference BooksReference Books
1. Introduction to Parallel Programming Peter Pacheco Morgan Kaufmann Publishers
2. Parallel Programming in C with MPI and OpenMP Michael J. Quinn McGraw Hill Company