130 likes | 269 Views
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
E N D
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 - statement level • Is parallel programming really necessary? • Why should I program using MPI (Message Passing Interface) and OpenMP?
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
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
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.
Prerequisites Program Design Data Structures (Helpful) Algorithms (Helpful) Computer Architecture (Helpful) Operating Systems (Helpful) 6
Grading Homework (40%) - Parallel Programming - Hand-written Assignments Final Exam (40%) Final Project (20%) 7
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
Grading criteria for parallel programming • Coding standard (10%) • Correctness (60%) • Performance (Speedup) (30%)
Teaching Assistant 姓名: 陳奇業博士 (助理研究員) Office: 雲平大樓五樓510室(軟體發展實驗室) Email: chency@csie.ncku.edu.tw
Reference 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 Site http://casd.csie.ncku.edu.tw/ 資工系 軟體發展實驗室網頁 12
Demonstration • Finding a shortest path by using ant algorithm - sequential version - parallel version