Using a CSP based Programming Model for Reconfigurable Processor Arrays By: Zain-ul-Abdin

Slides:



Advertisements
Similar presentations
Tintu David Joy. Agenda Motivation Better Verification Through Symmetry-basic idea Structural Symmetry and Multiprocessor Systems Mur ϕ verification system.
Advertisements

MPI Message Passing Interface
Programming Languages for End-User Personalization of Cyber-Physical Systems Presented by, Swathi Krishna Kilari.
Programming in Occam-pi: A Tutorial By: Zain-ul-Abdin
Parallel Processing & Parallel Algorithm May 8, 2003 B4 Yuuki Horita.
MP3 Optimization Exploiting Processor Architecture and Using Better Algorithms Mancia Anguita Universidad de Granada J. Manuel Martinez – Lechado Vitelcom.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
University of Michigan Electrical Engineering and Computer Science 1 Polymorphic Pipeline Array: A Flexible Multicore Accelerator with Virtualized Execution.
Introductory Comments Regarding Hardware Description Languages.
Introduction in algorithms and applications Introduction in algorithms and applications Parallel machines and architectures Parallel machines and architectures.
Data Parallel Algorithms Presented By: M.Mohsin Butt
Computer Architecture II 1 Computer architecture II Programming: POSIX Threads OpenMP.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Programming Language Semantics Java Threads and Locks Informal Introduction The Java Specification Language Chapter 17.
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
1 New Architectures Need New Languages A triumph of optimism over experience! Ian Watson 3 rd July 2009.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
5 th Biennial Ptolemy Miniconference Berkeley, CA, May 9, 2003 MESCAL Application Modeling and Mapping: Warpath Andrew Mihal and the MESCAL team UC Berkeley.
Center for Embedded Computer Systems University of California, Irvine and San Diego SPARK: A Parallelizing High-Level Synthesis.
Peter Juszczyk CS 492/493 - ISGS. // Is this C# or Java? class TestApp { static void Main() { int counter = 0; counter++; } } The answer is C# - In C#
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Parallel & Concurrent Programming: Occam Vitaliy Lvin University of Massachusetts.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
CSET 4650 Field Programmable Logic Devices
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
1 The Architectural Design of FRUIT: A Family of Retargetable User Interface Tools Yi Liu, H. Conrad Cunningham and Hui Xiong Computer & Information Science.
Automatic Identification of Concurrency in Handel-C Joseph C Libby, Kenneth B Kent, Farnaz Gharibian Faculty of Computer Science University of New Brunswick.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
An Introduction to Software Architecture
CS 363 Comparative Programming Languages
CCA Common Component Architecture Manoj Krishnan Pacific Northwest National Laboratory MCMD Programming and Implementation Issues.
A RISC ARCHITECTURE EXTENDED BY AN EFFICIENT TIGHTLY COUPLED RECONFIGURABLE UNIT Nikolaos Vassiliadis N. Kavvadias, G. Theodoridis, S. Nikolaidis Section.
Automated Design of Custom Architecture Tulika Mitra
ASIP Architecture for Future Wireless Systems: Flexibility and Customization Joseph Cavallaro and Predrag Radosavljevic Rice University Center for Multimedia.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Master Program (Laurea Magistrale) in Computer Science and Networking High Performance Computing Systems and Enabling Platforms Marco Vanneschi 1. Prerequisites.
Array Synthesis in SystemC Hardware Compilation Authors: J. Ditmar and S. McKeever Oxford University Computing Laboratory, UK Conference: Field Programmable.
Chapter 6 Programming Languages © 2007 Pearson Addison-Wesley. All rights reserved.
Languages for HW and SW Development Ondrej Cevan.
R2D2 team R2D2 team Reconfigurable and Retargetable Digital Devices  Application domains Mobile telecommunications  WCDMA/UMTS (Wideband Code Division.
1 Parallel Programming Aaron Bloomfield CS 415 Fall 2005.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
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.
1 Qualifying ExamWei Chen Unified Parallel C (UPC) and the Berkeley UPC Compiler Wei Chen the Berkeley UPC Group 3/11/07.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
Mapping of Regular Nested Loop Programs to Coarse-grained Reconfigurable Arrays – Constraints and Methodology Presented by: Luis Ortiz Department of Computer.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
A Pattern Language for Parallel Programming Beverly Sanders University of Florida.
3/12/2013Computer Engg, IIT(BHU)1 MPI-1. MESSAGE PASSING INTERFACE A message passing library specification Extended message-passing model Not a language.
Parallel Computing Presented by Justin Reschke
Channels. Models for Communications Synchronous communications – E.g. Telephone call Asynchronous communications – E.g. .
Review A program is… a set of instructions that tell a computer what to do. Programs can also be called… software. Hardware refers to… the physical components.
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
1 ”MCUDA: An efficient implementation of CUDA kernels for multi-core CPUs” John A. Stratton, Sam S. Stone and Wen-mei W. Hwu Presentation for class TDT24,
“Language Mechanism for Synchronization”
Microprocessor and Assembly Language
Parallel Programming By J. H. Wang May 2, 2017.
2. Specification and Modeling
Web Ontology Language for Service (OWL-S)
Process Mobility on the JVM for ProcessJ
Introduction to cosynthesis Rabi Mahapatra CSCE617
MPI-Message Passing Interface
Chapter 1 Introduction.
An Introduction to Software Architecture
Channels.
Channels.
Channels.
Presentation transcript:

Using a CSP based Programming Model for Reconfigurable Processor Arrays By: Zain-ul-Abdin

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 2 Motivation Emergence of new heterogeneous parallel architectures –Increased Performance –Power Efficiency Traditional methods –Automatic parallelization by compilers –Use of Thread model of computation Highly non-deterministic Use of Concurrent Programming Model –Expresses computations in a productive manner by matching it to target hardware –Supported by a compiler for allowing portability

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 3 Array of Processors Consists of heterogenous processors with specialized interconnection netrworks Improved performance by exploiting paralellism rather than scaling clock frequency Flexible due to dynamically reconfigurable interconnection network Energy Efficient –Individual brics can be switched off when not in use –The Clock frequency of brics can be optimized

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 4 Ambric Programming Model Design consists of: –Objects: defines the functionality in either java subset or assembly. –Structured composition described in aStruct

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 5 Ambric-Simple Example Design Toplevel design SimpleDesigntop { Root_IF root_Inst; } interface Root_IF {} binding CompRoot implements Root_IF { simpledesign process1; Vio inOut = {NumSources = 1, NumSinks = 1}; channel c0 = {inOut.out[0], process1.in}; channel c1 = {process1.out, inOut.in[0]}; } Object Structure interface simpledesign { inbound in; outbound out; } binding Javasimpledesign implements simpledesign { implementation "simpledesign.java"; } Object Implementation import ajava.io.InputStream; import ajava.io.OutputStream; public class simpledesign { public void run(InputStream in, OutputStream out) { while (true) { out.writeInt(in.readInt()); }

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 6 Why use Occam-pi? Language level support for concurrency Provides higher order combinators for facilitating composition of re-targetable data parallel descriptions Sematically transparent PAR/SEQ style Explicit control of graularity of parallelism and data locality

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 7 Occam-pi Language Based on ideas of CSP with pi-calculus Abstractions for underlying hardware –Processes –Channels (Unbuffered message passing) Rendezvous behavior of channels –Receiver blocks until the sender wrote the value –Sender continues after the receiver read the value

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 8 Occam-pi Language Primitive actions –Variable assignment –Channel output ! –Channel input ? –PAR –SEQ Variables can only be written by one process in parallel –Likewise, only a single process can read from a channel, and another single process can write to the channel PROC SimpleEx() INT x,y: CHAN OF INT c,d: PAR SEQ c ! 117 d ? x SEQ c ? y d ! 118 :

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 9 Compilation Methodology Implemented a Backend for Ambric in Tock(Translator of Occam to C by Kent) Staged compilation Native SOPL code generation for Ambric –Use of concurrency of Occam-pi –Reduced memory footprint

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 10 Occam-Ambric Compilation

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 11 Ambric-related Transformations Introduction of Channel-end Specifiers Enables use of flat data parallelism Replicators transformations: –SEQ Replicators to For loops –PAR Replicators unrolled to multiple PROCs Emission of aStruct structural interface and binding code for each PROC Emission of aJava class code corresponding to each PROC

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 12 1D-Discrete Cosine Transform

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 13 Performance Results 8-point DCT Implementations NPNP C LFO Throughput Serial DCT1220TSTS Coarse-grained Parallelized DCT 4513T S Fine-grained Parallelized DCT T S

"Using a CSP based Programming Model for Reconfigurable Processor Arrays", Zain-ul-Abdin 14 Conclusions Proposed the use of Occam-pi for programming a coarse-grained processor architecture Raises the abstraction level while not compromising the efficiency To extend the compiler for supporting mobility features of Occam-pi for reconfigurable logic