Concurrent Software Applications

Introduction

The world is parallel


 

The Parallel Programming Problem:
 


 

The primary goal of this course is:

to learn to model, design, construct, and verify  concurrent programs

model-driven

shared memory (shared variables)

distributed memory (disjoint variables)

 

Primary programming languages and tools for this course:


Levels of Parallelism in Computing
Level Executed,    Object,             Example System
 

A. program,         job or task,             multitasking OS

B. procedure,     process or thread,     MIMD

C. expression,     instruction,             SIMD

D. bit                 within instr.,           Von Neuman

A. Multiple terminal windows on a time-sharing system

B. Multiple processes running simultaneously on independent processors

C. Matrix A + Matrix B - pairwise parallel addition

D. Parallel "and" operation on bits in an instruction
 
 

Designing Concurrent Software