CIS 610: Vector Models for Data-Parallel Computing
-
Upload
hilda-glover -
Category
Documents
-
view
41 -
download
0
description
Transcript of CIS 610: Vector Models for Data-Parallel Computing
Material for Today’s Lecture
A.K.A, “Data Parallel Bible” according to Chris Sewell
Material & figures in this lecture almost
uniformly come from this dissertation
Machine Models
• Machine models you likely know about– Random access machine (RAM) model– Turing machine model
• This thesis defines a new model: parallel vector model – Defined in terms of machine architecture
Machine specifics
• V-RAM = S-RAM + vector memory & vector processor
• Each instruction of the vector processor operates on– Fixed number of vectors from the vector memory– Possibly scalars from scalar memory
• Example vector instruction: sum the elements of two vectors
Premise
• Claim: parallel vector models are the right abstraction to connect theory, languages, and architecture
• Specifically:– Can be mapped onto a broad variety of architectures– Can serve as algorithmic models to analyze
complexity– Can serve as instruction sets for virtual machine for
higher-level programming languages
Complexity
• Two main notions of complexity– Step complexity• # of steps executed by a program
– Element complexity• Sum over all steps of the lengths of all vectors
manipulated in each step
• Important: all data-parallel primitives considered have to finish in O(log N) time for N elements.
Complexity Example
• Step #1:– Sum two vectors of size 10
• Step #2:– Square vector of length 100
What is Step Complexity?What is Element Complexity?
2120