Parallel Programming in C for Multiprocessor 多處理機平行程式設計
-
Upload
aretha-anthony -
Category
Documents
-
view
73 -
download
1
description
Transcript of Parallel Programming in C for Multiprocessor 多處理機平行程式設計
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 (50%) - Parallel Programming - Hand-written Assignments
Final Exam (30%)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 (30%)Correctness (40%)Performance (Speedup) (30%)
Teaching AssistantTeaching Assistant
姓名 : 朱嘉葦 ( 碩二 )Office: 雲平大樓五樓 510 室 ( 軟體發展實驗室 )Email: [email protected]
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
Web SiteWeb Site
12
http://casd.csie.ncku.edu.tw/
資工系 軟體發展實驗室網頁
DemonstrationDemonstration
Finding a shortest path by using ant algorithm
- sequential version - parallel version