Introduction: Parallel Processing, Parallel Computers, Shared Memory Multiprocessing, Distributed Parallel Computing, Message Passing, Parallelism, Speedup, Utilizing Temporal Parallelism Utilizing Data Parallelism, Comparison of Temporal and Data Parallel Processing, Data Parallel Processing With Specialized processor Programmability Issues: Hardware support, Multi Processor Environment Operating System

perchorangeSoftware and s/w Development

Dec 1, 2013 (3 years and 6 months ago)

574 views

2CE319 PARALLEL COMPUTING


[ 3 0 2 4]

Introduction: Parallel Processing, Parallel Computers, Shared Memory Multiprocessing,
Distributed Parallel Computing, Message Passing,
Parallelism, Speedup, Utilizing Temporal
Parallelism


Utilizing Data Parallelism, Comparison of Temporal and Data Parallel Processing, Data Parallel
Processing With Specialized processor


Programmability Issues: Hardware support, Multi Processor Environmen
t Operating System
Support, Languages Support


Processes & Shared Memory Programming: Processes, Shared Memory Programming, Forking
for Creating Processes, Joining for Process Termination, Process Model Under UNIX.


Basic Parallel Programming Techniques: L
oop Splitting, Self Scheduling, Contention and
Mutual Exclusion, Introduction of Semaphores and Spin

Lock Implementation.


Barriers and Race Conditions: Race Condition, Barriers, Expression Splitting.

Introduction to scheduling and Nested Loops: Introduct
ion, Variation on Loop Splitting
-
Variation on self scheduling
-
Indirect scheduling
-
Summary.


Overcoming data dependencies: Introduction
-
Induction variable
-
Forward dependencies
-
Block
scheduling
-
Backward dependencies
-
Break out of loop
-
Splitable loops
-
Reorderi
ng loops
-
Special
scheduling.



Scheduling Summary: Loop splitting
-
Expression splitting
-
Self scheduling
-
Indirect scheduling
-
block scheduling
-
Special scheduling.


Linear recurrence relations and backward dependencies: Introduction to Recurrence relations


P
erformance Tuning. Parallel programming and the structure of parallel programs. Positioning
the process
-
fork
-

the effect of the number of processes on overhead
-
using cache effectively


Semaphores and Events: Introduction


Semaphores


Events


Summary


Th
read
-
Based Implementation: Thread Management


Example With Threads


Attributes of
Threads


Mutual Exclusion With Threads


Mutex Usage of Threads


Thread Implementation


Events and Condition Variables


Deviation Computation With Threads


Java Thread
s.


Distributed Computing


I: Message Passing Model: Message Passing Model
-

General Model
-

Programming Model


PVM (Parallel Virtual Machine).


Distributed Computing


II: Remote Procedure Call : Parameter Passing


Locating The Server


Semantics In
The Presence of Failures


Security


Problem Areas


Java Remote Method
Invocation


DCE


Developing Applications In DCE.

Algorithms For Parallel Machines: Models of Computation


Analysis of Parallel Algorithms


Prefix Computation


Histogram Computati
on


Parallel Reduction


Quadrature Problem


Sorting


Searching
-

Matrix Multiplication


Parallel Sorting Algorithms


Solving Linear
Systems


Probabilistic Algorithms.


Introduction to Multi core processors: Graphics Processing Units, Architecture, I
ntroduction to
NVIDIA
-
CUDA, Programming Model, Program Demonstration.

Laboratory Work:

The practical and term work will be based on the topics covered in the syllabus.

Minimum 12 experiments should be carried out.

Texts/References:

1.

Introduction

To Parallel

Programming
-

By Steven Brawer

2.

Introduction To Parallel Processing


By M.Sasikumar, Dinesh Shikhare and P. Ravi Prakash

3.

Parallel Computers


Architecture And Programming


By V. Rajaraman And C. Siva Ram
Murthy