Hank Childs, University of Oregon Jan. 30 th, 2014 CIS 610: Vector Models for Data-Parallel Computing.

Slides:



Advertisements
Similar presentations
MEMORY popo.
Advertisements

Models of Computation Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke University Analysis of Algorithms Week 1, Lecture 2.
CSE 160 – Lecture 9 Speed-up, Amdahl’s Law, Gustafson’s Law, efficiency, basic performance metrics.
Prepared 7/28/2011 by T. O’Neil for 3460:677, Fall 2011, The University of Akron.
Complexity Theory Lecture 1 Lecturer: Moni Naor. Computational Complexity Theory Study the resources needed to solve computational problems –Computer.
Theory of Computing Lecture 1 MAS 714 Hartmut Klauck.
Tuan Tran. What is CISC? CISC stands for Complex Instruction Set Computer. CISC are chips that are easy to program and which make efficient use of memory.
Lecture 8 – Collective Pattern Collectives Pattern Parallel Computing CIS 410/510 Department of Computer and Information Science.
Advanced Topics in Algorithms and Data Structures
March 11, 2015CS21 Lecture 271 CS21 Decidability and Tractability Lecture 27 March 11, 2015.
Data Parallel Algorithms Presented By: M.Mohsin Butt
Computability and Complexity 32-1 Computability and Complexity Andrei Bulatov Boolean Circuits.
CSE 830: Design and Theory of Algorithms
CS1001 Lecture 3. Overview Computer Science; Algorithms Computer Science; Algorithms Multidisciplinary Heritage Multidisciplinary Heritage Evolution of.
11/11/05ELEC CISC (Complex Instruction Set Computer) Veeraraghavan Ramamurthy ELEC 6200 Computer Architecture and Design Fall 2005.
CS 376b Introduction to Computer Vision 03 / 04 / 2008 Instructor: Michael Eckmann.
CS21 Decidability and Tractability
Design and Analysis of Algorithms
Computer Science Science of Computation Omer Reingold.
An Introduction to Programming Using Alice Object-Oriented Programming.
COMP313A Programming Languages Introduction. More Housekeeping Stuff Reading Material Textbook –Programming Languages: Principles and Practice by Kenneth.
Tools make jobs easier to do -A computer is a tool used by many professions A computer can do many different jobs because they are programmable - Machine.
Studies in Big Data 4 Weng-Long Chang Athanasios V. Vasilakos MolecularComputing Towards a Novel Computing Architecture for Complex Problem Solving.
1.1 1 Introduction Foundations of Computer Science  Cengage Learning.
By: Er. Sukhwinder kaur.  Computation Computation  Algorithm Algorithm  Objectives Objectives  What do we study in Theory of Computation ? What do.
1 Lecture 2: Parallel computational models. 2  Turing machine  RAM (Figure )  Logic circuit model RAM (Random Access Machine) Operations supposed to.
CSCI 2670 Introduction to Theory of Computing November 10, 2005.
COT 4600 Operating Systems Spring 2011 Dan C. Marinescu Office: HEC 304 Office hours: Tu-Th 5:00 – 6:00 PM.
ECE 259 / CPS 221 Advanced Computer Architecture II (Parallel Computer Architecture) Novel Architectures Copyright 2004 Daniel J. Sorin Duke University.
Object-Oriented Programming. An algorithm is a step-by-step process. A computer program is a step-by-step set of instructions for a computer. Every computer.
1 Chapter 1 Parallel Machines and Computations (Fundamentals of Parallel Processing) Dr. Ranette Halverson.
Parallel Algorithms Sorting and more. Keep hardware in mind When considering ‘parallel’ algorithms, – We have to have an understanding of the hardware.
Overview of Computing. Computer Science What is computer science? The systematic study of computing systems and computation. Contains theories for understanding.
Elements of Computing Systems, Nisan & Schocken, MIT Press, 2005, Chapter 11: Compiler II: Code Generation slide 1www.idc.ac.il/tecs.
CS 345: Chapter 10 Parallelism, Concurrency, and Alternative Models Or, Getting Lots of Stuff Done at Once.
-1.1- Chapter 2 Abstract Machine Models Lectured by: Nguyễn Đức Thái Prepared by: Thoại Nam.
Lecture 6 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
Programming Parallel Algorithms - NESL Guy E. Blelloch Presented by: Michael Sirivianos Barbara Theodorides.
10.Introduction to Data-Parallel architectures TECH Computer Science SIMD {Single Instruction Multiple Data} 10.1 Introduction 10.2 Connectivity 10.3 Alternative.
Chapter 1 — Computer Abstractions and Technology — 1 The Computer Revolution Progress in computer technology – Underpinned by Moore’s Law Makes novel applications.
ELEN 033 Lecture #1 Tokunbo Ogunfunmi Santa Clara University.
Welcome to Enter Welcome to our school!. Our School Day Morning Our Lessons Our Buildings After School Lunchtime Our work Welcome to our school, please.
Lecture 7: 9/17/2002CS149D Fall CS149D Elements of Computer Science Ayman Abdel-Hamid Department of Computer Science Old Dominion University Lecture.
Parallel computation Section 10.5 Giorgi Japaridze Theory of Computability.
Radix Sort and Hash-Join for Vector Computers Ripal Nathuji 6.893: Advanced VLSI Computer Architecture 10/12/00.
Computer Organization and Design Wrap Up! Montek Singh Wed, Dec 4, 2013.
Vector and symbolic processors
The Instruction Set Architecture. Hardware – Software boundary Java Program C Program Ada Program Compiler Instruction Set Architecture Microcode Hardware.
Chapter 5 Computer Systems Organization. Levels of Abstraction – Figure 5.1e The Concept of Abstraction.
Data Structures and Algorithms in Parallel Computing Lecture 8.
3/12/2013Computer Engg, IIT(BHU)1 CONCEPTS-1. Pipelining Pipelining is used to increase the speed of processing It uses temporal parallelism In pipelining,
Jan. 5, 2000Systems Architecture II1 Machine Organization (CS 570) Lecture 1: Overview of High Performance Processors * Jeremy R. Johnson Wed. Sept. 27,
CSCI 2670 Introduction to Theory of Computing November 15, 2005.
Information Processing
What Do Computers Do? A computer system is
Vector projections (resolutes)
Lecture 2: Parallel computational models
MCC 2093 Advanced Theoretical Computer Science
Array Processor.
CSC Classes Required for TCC CS Degree
Computer Organization
CS 140 Lecture Notes: Virtual Machines
CSE838 Lecture notes copy right: Moon Jung Chung
© 2012 Elsevier, Inc. All rights reserved.
Linear Algebra Lecture 40.
Addressing mode summary
CSCI 2670 Introduction to Theory of Computing
Design and Analysis of Algorithms
Design and Analysis of Algorithms
Presentation transcript:

Hank Childs, University of Oregon Jan. 30 th, 2014 CIS 610: Vector Models for Data-Parallel Computing

Class Organization Who will lecture next week? Alternate ideas for organizing lectures?

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

History Lesson via Google Scholar

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

Parallel Vector Models

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? What is Step Complexity? What is Element Complexity?

Some New Vector Instructions…

Scan Instruction

Segmented Instructions It is a little fuzzy to me how to do this in practice…

Quicksort

Quicksort pseudo-code OK, let’s try to do quicksort.

Rest of Book