Efficient Associative SIMD Processing for Non-Tabular Data Jalpesh K. Chitalia and Robert A. Walker Computer Science Department Kent State University.

Slides:



Advertisements
Similar presentations
Data Models There are 3 parts to a GIS: GUI Tools
Advertisements

Binary Trees CSC 220. Your Observations (so far data structures) Array –Unordered Add, delete, search –Ordered Linked List –??
Tree Data Structures &Binary Search Tree 1. Trees Data Structures Tree  Nodes  Each node can have 0 or more children  A node can have at most one parent.
Advanced Data Structures
Efficient Representation of Data Structures on Associative Processors Jalpesh K. Chitalia (Advisor Dr. Robert A. Walker) Computer Science Department Kent.
Sabegh Singh Virdi ASC Processor Group Computer Science Department
1 Introduction to Data Parallel Architectures Sima, Fountain and Kacsuk Chapter 10 CSE462.
Lecture - 1 on Data Structures. Prepared by, Jesmin Akhter, Lecturer, IIT,JU Data Type and Data Structure Data type Set of possible values for variables.
Advanced Topics in Algorithms and Data Structures An overview of the lecture 2 Models of parallel computation Characteristics of SIMD models Design issue.
Data Parallel Algorithms Presented By: M.Mohsin Butt
Multithreaded ASC Kevin Schaffer and Robert A. Walker ASC Processor Group Computer Science Department Kent State University.
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
1 B-Trees Disk Storage What is a multiway tree? What is a B-tree? Why B-trees? Comparing B-trees and AVL-trees Searching a B-tree Insertion in a B-tree.
B-Trees and B+-Trees Disk Storage What is a multiway tree?
1 Lecture 3 PRAM Algorithms Parallel Computing Fall 2008.
Important Problem Types and Fundamental Data Structures
Database Models. Flat File The most basic way to organize data is as a flat file. You can think of this as a single table with a large number of records.
Binary Trees Chapter 6.
Chapter 61 Chapter 6 Index Structures for Files. Chapter 62 Indexes Indexes are additional auxiliary access structures with typically provide either faster.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 122 – Data Structures Data Structures Trees.
Trees & Graphs Nell Dale & John Lewis (adaptation by Michael Goldwasser and Erin Chambers)
ECE 526 – Network Processing Systems Design Network Processor Architecture and Scalability Chapter 13,14: D. E. Comer.
Introduction to Data Structures. Definition Data structure is representation of the logical relationship existing between individual elements of data.
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved ADT Implementation:
Basic Communication Operations Based on Chapter 4 of Introduction to Parallel Computing by Ananth Grama, Anshul Gupta, George Karypis and Vipin Kumar These.
Theory and Applications of GF(2 p ) Cellular Automata P. Pal Chaudhuri Department of CST Bengal Engineering College (DU) Shibpur, Howrah India (LOGIC ON.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 122 – Data Structures Templatized Tree.
Computer Science 112 Fundamentals of Programming II Introduction to Graphs.
Chapter 6 Binary Trees. 6.1 Trees, Binary Trees, and Binary Search Trees Linked lists usually are more flexible than arrays, but it is difficult to use.
Data Structure & File Systems Hun Myoung Park, Ph.D., Public Management and Policy Analysis Program Graduate School of International Relations International.
 DATA STRUCTURE DATA STRUCTURE  DATA STRUCTURE OPERATIONS DATA STRUCTURE OPERATIONS  BIG-O NOTATION BIG-O NOTATION  TYPES OF DATA STRUCTURE TYPES.
1 Implementing An Associative Processor on FPGAs.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Data Structures Types of Data Structure Data Structure Operations Examples Choosing Data Structures Data Structures in Alice.
P-Tree Implementation Anne Denton. So far: Logical Definition C.f. Dr. Perrizo’s slides Logical definition Defines node information Representation of.
Elementary Data Organization. Outline  Data, Entity and Information  Primitive data types  Non primitive data Types  Data structure  Definition 
Review 1 Queue Operations on Queues A Dequeue Operation An Enqueue Operation Array Implementation Link list Implementation Examples.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Virtual Memory Hardware.
Vector and symbolic processors
Week 10 - Friday.  What did we talk about last time?  Graph representations  Adjacency matrix  Adjacency lists  Depth first search.
A Heap Implementation Chapter 26 Copyright ©2012 by Pearson Education, Inc. All rights reserved.
Chapter 10: Trees A tree is a connected simple undirected graph with no simple circuits. Properties: There is a unique simple path between any 2 of its.
Operating Systems (CS 340 D) Dr. Abeer Mahmoud Princess Nora University Faculty of Computer & Information Systems Computer science Department.
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,
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
Data Structure and Algorithms
3/12/2013Computer Engg, IIT(BHU)1 PRAM ALGORITHMS-3.
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To introduce the basic concepts of linked lists ❏ To introduce the basic concepts.
CSE 373 Data Structures and Algorithms Lecture 9: Set ADT / Trees.
A Scalable Pipelined Associative SIMD Array With Reconfigurable PE Interconnection Network For Embedded Applications Hong Wang & Robert A. Walker Computer.
Mohammed I DAABO COURSE CODE: CSC 355 COURSE TITLE: Data Structures.
15.1 – Introduction to physical-Query-plan operators
Top 50 Data Structures Interview Questions
Distributed Processors
Data Structure Interview Question and Answers
Operating Systems (CS 340 D)
COMBINED PAGING AND SEGMENTATION
System Programming and administration
COP3530- Data Structures Advanced Lists
Lecture 22 Binary Search Trees Chapter 10 of textbook
Program based on pointers in C.
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
Operating Systems (CS 340 D)
Chapter 1.
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
Introduction to Data Structures
Important Problem Types and Fundamental Data Structures
Presentation transcript:

Efficient Associative SIMD Processing for Non-Tabular Data Jalpesh K. Chitalia and Robert A. Walker Computer Science Department Kent State University

Presentation Outline  ASC Processor Architecture  Associative Features  Structure Codes  Represent Data Structures  Structure Code Operations  Summary and Future Work

The ASC Processor  A scalable design implemented on a million gate Altera FPGA  SIMD-like architecture  Currently, 36 8-bit Processing Elements (PE) available  8-bit Instruction Stream (IS) control unit with 8-bit Instruction and Data addresses, 32-bit instructions

The ASC Architecture

 Each PE listens to the IS through the broadcast and reduction network  PEs can communicate amongst themselves using the PE Network  PE may either execute or ignore the microcode instruction broadcast by IS under the control of the Mask Stack

The ASC Features  Associative Search Each PE can search its local memory for a key under the control of IS  Responder Resolution A special circuit signals if ‘at least one’ record was found  Masked Operation Local Mask Stacks can turn on or off the execution of instruction from IS

The ASC Example Select * from Students where Grade > 90

The ASC Features  Constant Time Associative Operations Associative Search Finding minimum or maximum in a field  Ideal for Database processing Data is organized in tabular format Each tuple in a table can be processed by one PE  PE Network Many parallel algorithms require all PEs to move contents in a regular pattern E.g.: Image Convolution, Matrix Multiplication

Non Tabular Data Structures  Many applications use linked list based data structures For example, plain HTML parsing can be done using tree-structure Similarly, XML or Object-relational databases can be represented using trees only Game programming uses tree-based algorithms, and demand much of processing power Complier construction uses directed acyclic graphs and tree structures

Data Structure Codes  A unique coding scheme Allows representation of any data structure into a tabular format Tabular format allows division of data amongst the PEs Also known as “structure code”  Different coding schemes for different data structures  Uses Associative Search feature of the ASC Processor

Simple List-based Structures  The left figure shows a possible representation of 1D and 2D arrays. Representations of this kind should be particularly useful for adjacency matrix or sparse matrix  The right figure represents stack and queue, depending on the use of appropriate functions

Complex List-based Structures Each digit-position indicates the level of a tree Each value in that position indicates the position of that child from the left Discussions henceforth are confined to trees Graphs are read in a slightly different manner

Structure Code Operations  Two sets of constant-time operations: scalar and parallel  Scalar Instructions are simple mathematic operations Search parent, child or root Finds value of structure code for next or previous nodes  Parallel Instructions use complex associative operations Finds code for next, previous or both siblings ‘Locates’ the required node for further processing

Scalar Operations fstcd: leftmost child nxtcd: right sibling prvcd: left sibling trncd: truncate (parent) node trnacd: truncate all (root) node  Can be used to allocate a new node Limited use in searching records

Parallel Operations  Index instructions: Flags a node of the result to ease further processing nxtdex (next or right), prvdex (previous or left) and sibdex (siblings or both left and right)  Value instructions: Returns the exact structure code of the result nxtval (next or right) and prvval (previous or left)  Can be used to ‘locate’ nodes in any tree  Uses parallel and associative hardware resources

Summary  SIMD-based computers are more suited for database processing  ASC processor with its associative operations makes them more efficient  Structure codes translate non-tabular data structures into a tabular format Tree and Graphs can be represented and evenly divided like records in a table  Object-relational databases, XML databases, plain HTML processing Stacks, Queues, multi-dimensional arrays can be represented  Structure codes not required for even division

Future Work  Efforts are in place to clean the architecture To allow multiplier/divider on each PE To accommodate RISC instruction set  Unpacked bytes are used to support variable-length structure code Can be avoid with an efficient divider unit  Developing applications that use structure codes

Questions? Thank You!