CSC2/458 Parallel and Distributed Systems Introduction Sreepathi - - PowerPoint PPT Presentation

csc2 458 parallel and distributed systems introduction
SMART_READER_LITE
LIVE PREVIEW

CSC2/458 Parallel and Distributed Systems Introduction Sreepathi - - PowerPoint PPT Presentation

CSC2/458 Parallel and Distributed Systems Introduction Sreepathi Pai January 18, 2018 URCS Outline Administrivia Parallel Computing Distributed Computing Outline Administrivia Parallel Computing Distributed Computing People


slide-1
SLIDE 1

CSC2/458 Parallel and Distributed Systems Introduction

Sreepathi Pai January 18, 2018

URCS

slide-2
SLIDE 2

Outline

Administrivia Parallel Computing Distributed Computing

slide-3
SLIDE 3

Outline

Administrivia Parallel Computing Distributed Computing

slide-4
SLIDE 4

People

  • Instructor: Dr. Sreepathi Pai
  • E-mail: sree@cs.rochester.edu
  • Office: Wegmans 3409
  • Office Hours: By appointment, but I have an open door policy

(10AM–5PM)

  • TA: Haichuan Yang
  • Will join us early February.
slide-5
SLIDE 5

Places

  • Class: CSB 209
  • T,R 1525–1640
  • Course Website
  • https://cs.rochester.edu/~sree/courses/csc-258/

spring-2018/

  • Blackboard
  • Announcements, Assignments, etc.
  • Piazza
  • ?
slide-6
SLIDE 6

Pre-requisites

  • CSC 256: Operating Systems
  • Processes, Threads, Scheduling
  • Synchronization: Mutexes, Semaphores
  • Interprocess Communication
  • CSC 254: Programming Language Design and Implementation
  • Parallel Programming Constructs
  • Concurrency

This is a non-exhaustive list.

slide-7
SLIDE 7

References

  • No required textbooks for this class
  • But a lot of reading!
  • Books and materials have been placed on reserve
  • Some online, some in Carlson Library
  • See Blackboard for information on accessing Reserves
slide-8
SLIDE 8

Grading

  • Homeworks: 15%
  • Assignments: 60% (6)
  • Project: 25% (up to 2 person teams)

There is no fixed grading curve. See course website for late submissions policy.

slide-9
SLIDE 9

Project Expectations

  • Depends on number of people in team
  • May put up a list of projects as suggestions
  • You’re free to do your own project
  • Project report
  • Project presentation
slide-10
SLIDE 10

Academic Honesty

  • Unless otherwise stated, you may not show your code to other

students

  • You may discuss, brainstorm, etc. with your fellow students

but all submitted work must be your own

  • All help received must be acknowledged in writing when

submitting your assignments and homeworks

  • All external code you use must be clearly marked as such in

your submission

  • Use a comment and provide URL if appropriate
  • If in doubt, ask the instructor

All violations of academic honesty will be dealt with strictly as per UR’s Academic Honesty Policy.

slide-11
SLIDE 11

Outline

Administrivia Parallel Computing Distributed Computing

slide-12
SLIDE 12

Parallel Machines are Everywhere

  • Starting 2004, all desktop CPUs have multiple “cores”
  • Even most mobile phones have multiple CPUs!
  • Why?
slide-13
SLIDE 13

Performance Equation

T = W × t P

  • T: Total time
  • W : Amount of Work (e.g. operations)
  • t: Average time per work
  • P: Average parallelism in work
slide-14
SLIDE 14

Exercise

10 34 342 20 71 123 101 589

slide-15
SLIDE 15

Performance Issues in Parallelism

  • Goal of parallel programming is scalability.
  • N processors will make program N times faster (compared to 1

processor)

  • Serialization inhibits scalability
  • May be inherent to workload
  • May result from machine
  • Usually manifests as load imbalance or underutilization
slide-16
SLIDE 16

Correctness Issues in Parallelism

  • Why can we do the addition in parallel?
slide-17
SLIDE 17

Correctness Issues in Parallelism

  • Ordering in Serial programs
  • How do you debug serial programs?
  • Ordering in Parallel programs
  • How do you debug parallel programs?
slide-18
SLIDE 18

Outline

Administrivia Parallel Computing Distributed Computing

slide-19
SLIDE 19

Distributed Computation

Can we break up a program so its parts run on different computers? Each part communicates with the others using messages.

slide-20
SLIDE 20

Why distribute?

  • To parallelize
  • Problem can be solved by one computer, but you want it faster
  • To scale
  • Problem can be solved by one computer, but there are lots of

problem instances to be solved

  • Too big a problem for one computer
  • Inherently distributed
slide-21
SLIDE 21

Implications of Distribution

  • Location
  • Distributed State
slide-22
SLIDE 22

Distributed Systems in Real Life

slide-23
SLIDE 23

Distributed Systems in Real Life: Somewhat obvious

  • The telephone system
  • The Internet
  • The banking system
  • The traffic system
  • ...
slide-24
SLIDE 24

Distributed Systems in Real Life: Not so obvious

  • Cellular systems
  • Plants
  • Animals
  • Fungi
slide-25
SLIDE 25

Challenges in Distributed Systems

  • Correctness
  • Termination

In the presence of:

  • Delays
  • Failures