Automatic Identification of Concurrency in Handel-C Joseph C Libby, Kenneth B Kent, Farnaz Gharibian Faculty of Computer Science University of New Brunswick.

Slides:



Advertisements
Similar presentations
Introduction to the BinX Library eDIKT project team Ted Wen Robert Carroll
Advertisements

Exploiting Execution Order and Parallelism from Processing Flow Applying Pipeline-based Programming Method on Manycore Accelerators Shinichi Yamagiwa University.
Database Management Using Microsoft Access Xinhua Chen, Ph.D. Chinese Association of Professionals in Science and Technology March 23, 2003.
Intermediate Code Generation
Digital Library Service – An overview Introduction System Architecture Components and their functionalities Experimental Results.
By Daniela Floresu Donald Kossmann
TIE Extensions for Cryptographic Acceleration Charles-Henri Gros Alan Keefer Ankur Singla.
Vector Processing. Vector Processors Combine vector operands (inputs) element by element to produce an output vector. Typical array-oriented operations.
AUTOMATIC GENERATION OF CODE OPTIMIZERS FROM FORMAL SPECIFICATIONS Vineeth Kumar Paleri Regional Engineering College, calicut Kerala, India. (Currently,
Commutativity Analysis: A New Analysis Technique for Parallelizing Compilers Martin C. Rinard Pedro C. Diniz April 7 th, 2010 Youngjoon Jo.
A Handel-C Implementation of a Computationally Intensive Problem in GF(3) Joey C. Libby, Jonathan P. Lutes, and Kenneth B. Kent The Handel-C Language Handel-C.
Bitmap Index Buddhika Madduma 22/03/2010 Web and Document Databases - ACS-7102.
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
Using a CSP based Programming Model for Reconfigurable Processor Arrays By: Zain-ul-Abdin
System Design and Analysis
Commutativity Analysis: A New Analysis Framework for Parallelizing Compilers Martin C. Rinard Pedro C. Diniz
Programming Languages Structure
Topic 6 -Code Generation Dr. William A. Maniatty Assistant Prof. Dept. of Computer Science University At Albany CSI 511 Programming Languages and Systems.
SMIILE Finaly COBOL! and what else is new Gordana Rakić, Zoran Budimac.
Compiler Construction A Compulsory Module for Students in Computer Science Department Faculty of IT / Al – Al Bayt University Second Semester 2008/2009.
Automatic Generation of Parallel OpenGL Programs Robert Hero CMPS 203 December 2, 2004.
Using Use Case Scenarios and Operational Variables for Generating Test Objectives Javier J. Gutiérrez María José Escalona Manuel Mejías Arturo H. Torres.
Database Management Systems (DBMS)
Introduction to Systems Analysis and Design Trisha Cummings.
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
ITEC 380 Organization of programming languages Dr. Andrew Ray.
Overview of a Database Management System
CS240 Computer Science II Introduction to Unix Based on “UNIX for Programmers and Users” by G.Class and K. Ables.
ECE 2372 Modern Digital System Design
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
A Metadata Based Approach For Supporting Subsetting Queries Over Parallel HDF5 Datasets Vignesh Santhanagopalan Graduate Student Department Of CSE.
UNIT - 1Topic - 3. Computer software is a program that tells a computer what to do. Computer software, or just software, is any set of machine-readable.
Transparent Grid Enablement Using Transparent Shaping and GRID superscalar I. Description and Motivation II. Background Information: Transparent Shaping.
A Framework for Elastic Execution of Existing MPI Programs Aarthi Raveendran Tekin Bicer Gagan Agrawal 1.
The Generic Gaming Engine Andrew Burke Advisor: Prof. Aaron Cass Abstract Games have long been a source of fascination. Their inherent complexity has challenged.
A Framework for Elastic Execution of Existing MPI Programs Aarthi Raveendran Graduate Student Department Of CSE 1.
CST320 - Lec 11 Why study compilers? n n Ties lots of things you know together: –Theory (finite automata, grammars) –Data structures –Modularization –Utilization.
CSC 230: C and Software Tools Rudra Dutta Computer Science Department Course Introduction.
Hardware Implementation of a Memetic Algorithm for VLSI Circuit Layout Stephen Coe MSc Engineering Candidate Advisors: Dr. Shawki Areibi Dr. Medhat Moussa.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
StreamX10: A Stream Programming Framework on X10 Haitao Wei School of Computer Science at Huazhong University of Sci&Tech.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Service Composition for GIS Sai Ma, Minruo Li, Weichang Du Faculty of Computer Science, University of New Brunswick, Canada 2008 IEEE Congress on Services.
E-portfolio assessment system architecture Milen Petrov Adelina Aleksieva-Petrova 5th TENCompetence Open Workshop, Sofia October 30-31, 2008.
The course. Description Computer systems programming using the C language – And possibly a little C++ Translation of C into assembly language Introduction.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
Overview of Previous Lesson(s) Over View  A program must be translated into a form in which it can be executed by a computer.  The software systems.
Evaluating and Improving an OpenMP-based Circuit Design Tool Tim Beatty, Dr. Ken Kent, Dr. Eric Aubanel Faculty of Computer Science University of New Brunswick.
Ronny Krashinsky Erik Machnicki Software Cache Coherent Shared Memory under Split-C.
Chapter 1 Introduction Major Data Structures in Compiler
Gordana Rakić, Zoran Budimac
A New Operating Tool for Coding in Lossless Image Compression Radu Rădescu University POLITEHNICA of Bucharest, Faculty of Electronics, Telecommunications.
1 Enhancing Program Comprehension with recovered State Models Stéphane S. Somé Timothy C. Lethbridge SITE, University of Ottawa.
Lecture 02. Java Virtual Machine(JVM) –set of computer software programs and data structures that use a virtual machine model for the execution of other.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
SWE 4743 Abstraction Richard Gesick. CSE Abstraction the mechanism and practice of abstraction reduces and factors out details so that one can.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
A Design Flow for Optimal Circuit Design Using Resource and Timing Estimation Farnaz Gharibian and Kenneth B. Kent {f.gharibian, unb.ca Faculty.
Project 1 : Phase 1 22C:021 CS II Data Structures.
A DFA with Extended Character-Set for Fast Deep Packet Inspection
Introduction to Computers
DHT Routing Geometries and Chord
Computer Programming Machine and Assembly.
Introduction to Systems Analysis and Design
Analysis models and design models
Automation of Control System Configuration TAC 18
Design principles for packet parsers
Presentation transcript:

Automatic Identification of Concurrency in Handel-C Joseph C Libby, Kenneth B Kent, Farnaz Gharibian Faculty of Computer Science University of New Brunswick Introduction The goal of this project was to implement a compiler framework capable of identifying concurrency within a Handel C hardware description. Background Hardware systems are inherently concurrent systems. Multiple components of a hardware system can perform their computations at the same time. Handel C is a hardware description language based on the ANSI C specification. Handel C does not implement the entire ANSI C specification, but adds some hardware specific support. Dependence analysis is the process by which data and control dependencies between statements in a software program or hardware description are identified. Motivation High level hardware description languages were created in order to simplify hardware design and make it accessible to software developers. One major issue with software developers transitioning to hardware design is the identification of concurrency in systems. Many software developers have little to no training or experience in concurrent systems. A system capable of identifying concurrency in a hardware description would allow hardware developers to take full advantage of hardware platforms even without the necessary skills or experience. System Flow Description Parse Tree Generation: Java CC is used to generate a parse tree of the Handel C description. Parse Tree Processing: The parse tree is searched for variable instantiation, variable assignments, variable types and variable widths. Array index expressions and control flow data is also extracted. This data is stored in lookup tables for the next stage. Control Data Flow Graph Generation: Using the variable assignment and array index data, a control data flow graph is generated. Variable and control dependencies are computed using the lookup table and array dependencies are computed pair wise using array indices. Concurrency Extraction: Using the completed control dataflow graph concurrency is extracted. Nodes with no dependencies are combined into groups that can be performed concurrently. End User Reporting: A report is generated showing the required modifications to the Handel C source file to exploit the identified concurrency. The end user report can be seen below. Results BenchmarkPar Blocks Manual Par Blocks Automatic Percentage Found AES % LZ % Benchmark Results Conclusions Source Line#SourceAction *Par {Add 1Statement 1None 2Statement 2None 3Statement 3None 7Statement 6Move - 8Statement 7Move – *}Add 4While Move + 5Statement 4Move + 6Statement 5 Move + 9Statement 8Move + End User Report Experimental Results Based on the results gathered from running the tool on the benchmark applications it can be said that the tool performs well. The tool is capable of automatically identifying a large portion of available concurrency in a given Handel-C file, which was the initial goal of the project. The tool provides valuable feedback for designers that are not well versed in creating Handel-C designs that exploit concurrency and may possibly become a valuable tool in a learning setting. The tool could be used to facilitate teaching how to best design hardware by exploiting concurrency that is inherent in the design. BenchmarkResource Freq. (Mhz) Throughput (Mbits) FF’sMem (Bits) AES+LZ77 (Original) AES+LZ77 (Optimized)