ParallelPrograming-1

here for website

  • Author: Yiqing Ma (Hongkong University of Science and Technology )
  • Deep Learning , Course


Course info

Instructor:

  • Dr. Qiong luo
  • Friday 10:30-11:30 am RM3511

Project:

  • shared-memory programming models
  • message passing programming models
  • used for cluster computing;
  • data-parallel programming models for GPUs

Reference Book 1:

Lab :

  • RM 4214 Cuda gpu
  • Friday Lecture

Grade:

  • Programming Assignments - 50%
  • Final examination - 50%
  • Honor code obserbed
  • 30 A 5 A- 4 A+ 5 B 1 B-

Course

  • Parallel Computer Architectures
  • Review on OS and Computer Architectures
  • Principles of parallel algorithm design
  • 1.Shared-memory programming models:
    • Pthreads
    • OpenMP
  • 2.Message passing programming models
    • MPI: the Message Passing Interface
  • 3.Data-parallel programming models for gpu
    • NVIDIA GPU architecture and CUDA C
    • opencl
  • An intelligent solutions
  • Now it’s up to the programmers
  • Why we need ever-increasing performance
  • Protein folding
  • Drug discovery Energy Climate model (computing)
  • Why we’re building parallel systems
  • Problem
    • Denser transistors -> faster processors
    • Faster processors -> increased power consumption
    • Increased power consumption -> increased heat
    • Increased heat -> unreliable processors
    • core = central processing unit(cpu)
  • Why we need to write parallel programmers
  • Approaches to the serial problem
    • rewrite serial programs so that they’re parallel
    • write translation programs that automatically convert serial programs into parallel programs (sucess has been limited due to hardness)
  • More problems about translation
    • Rewrite serial programs so that they’re parallel
  • Example
  • Coordination
  • Terminology
    • Concurrent computing in progress
      • in a program multiple tasks can be in progress at any instant.
    • Parallel computing
      • in a program multiple taks cooperate closely to solve a problem
    • Distributed computing
      • a program may need to cooperate with other programs to solve a problem
  • Concluding remarks