parallel programming in c for multiprocessor 多處理機平行程式設計

13
Parallel Programming in C Parallel Programming in C for Multiprocessor for Multiprocessor 多多多多多多多多多多 多多多多多多多多多多 多多多 多多多多多多多多多

Upload: magda

Post on 20-Jan-2016

59 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

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

Web SiteWeb Site

12

http://casd.csie.ncku.edu.tw/

資工系 軟體發展實驗室網頁

DemonstrationDemonstration

Finding a shortest path by using ant algorithm

- sequential version - parallel version