The George Washington University

Slides:



Advertisements
Similar presentations
Optimizing Compilers for Modern Architectures Syllabus Allen and Kennedy, Preface Optimizing Compilers for Modern Architectures.
Advertisements

Chapter 2 Machine Language.
Autonomic Systems Justin Moles, Winter 2006 Enabling autonomic behavior in systems software with hot swapping Paper by: J. Appavoo, et al. Presentation.
Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
University of Houston So What’s Exascale Again?. University of Houston The Architects Did Their Best… Scale of parallelism Multiple kinds of parallelism.
Summary Background –Why do we need parallel processing? Applications Introduction in algorithms and applications –Methodology to develop efficient parallel.
1 Distributed Computing Algorithms CSCI Distributed Computing: everything not centralized many processors.
Introduction CS 524 – High-Performance Computing.
DISTRIBUTED AND HIGH-PERFORMANCE COMPUTING CHAPTER 7: SHARED MEMORY PARALLEL PROGRAMMING.
ECE669 L11: Static Routing Architectures March 4, 2004 ECE 669 Parallel Computer Architecture Lecture 11 Static Routing Architectures.
1 Breakout thoughts (compiled with N. Carter): Where will RAMP be in 3-5 Years (What is RAMP, where is it going?) Is it still RAMP if it is mapping onto.
1 New Architectures Need New Languages A triumph of optimism over experience! Ian Watson 3 rd July 2009.
Seven Minute Madness: Reconfigurable Computing Dr. Jason D. Bakos.
HW/SW Co-Synthesis of Dynamically Reconfigurable Embedded Systems HW/SW Partitioning and Scheduling Algorithms.
CS 101 Problem Solving and Structured Programming in C Sami Rollins Spring 2003.
ECE669 L23: Parallel Compilation April 29, 2004 ECE 669 Parallel Computer Architecture Lecture 23 Parallel Compilation.
Contemporary Languages in Parallel Computing Raymond Hummel.
 Introduction Introduction  Definition of Operating System Definition of Operating System  Abstract View of OperatingSystem Abstract View of OperatingSystem.
12005 MAPLDBOF-H-2 BOF-H-2 Programming Tools for General Purpose High Performance Reconfigurable Computers BOF hosted by Douglas Fouts & Alan Hunsberger.
 What is an operating system? What is an operating system?  Where does the OS fit in? Where does the OS fit in?  Services provided by an OS Services.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
1 Advance Computer Architecture CSE 8383 Ranya Alawadhi.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
Reconfigurable Computing Using Content Addressable Memory (CAM) for Improved Performance and Resource Usage Group Members: Anderson Raid Marie Beltrao.
PARALLEL APPLICATIONS EE 524/CS 561 Kishore Dhaveji 01/09/2000.
Summary Background –Why do we need parallel processing? Moore’s law. Applications. Introduction in algorithms and applications –Methodology to develop.
Task Graph Scheduling for RTR Paper Review By Gregor Scott.
© 2009 IBM Corporation Parallel Programming with X10/APGAS IBM UPC and X10 teams  Through languages –Asynchronous Co-Array Fortran –extension of CAF with.
FPL Sept. 2, 2003 Software Decelerators Eric Keller, Gordon Brebner and Phil James-Roxby Xilinx Research Labs.
Contemporary Languages in Parallel Computing Raymond Hummel.
An Operating System for Reconfigurable Computers Brandon Hamilton Department of Electrical Engineering University of Cape Town Brandon Hamilton Department.
… begin …. Parallel Computing: What is it good for? William M. Jones, Ph.D. Assistant Professor Computer Science Department Coastal Carolina University.
LOGO Parallel computing technique for EM modeling makai 天津大学电子信息工程学院 School of Electronic Information Engineering.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
Parallel Computing Presented by Justin Reschke
Benchmarking and Applications. Purpose of Our Benchmarking Effort Reveal compiler (and run-time systems) weak points and lack of adequate automatic optimizations.
KERRY BARNES WILLIAM LUNDGREN JAMES STEED
Lecture 5: Lecturer: Simon Winberg Review of paper: Temporal Partitioning Algorithm for a Coarse-grained Reconfigurable Computing Architecture by Chongyong.
Geoffrey Fox Panel Talk: February
Computer Organization and Architecture Lecture 1 : Introduction
These slides are based on the book:
Topics to be covered Instruction Execution Characteristics
Compiler Design (40-414) Main Text Book:
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
Distributed and Parallel Processing
Dynamo: A Runtime Codesign Environment
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
Lecture 5: GPU Compute Architecture
CSE-591 Compilers for Embedded Systems Code transformations and compile time data management techniques for application mapping onto SIMD-style Coarse-grained.
Many-core Software Development Platforms
Elliptic Curve Cryptography over GF(2m) on a Reconfigurable Computer:
Compiler Back End Panel
Summary Background Introduction in algorithms and applications
Simulation of computer system
COMPUTER SOFT WARE Software is a set of electronic instructions that tells the computer how to do certain tasks. A set of instructions is often called.
Compiler Back End Panel
Q: What Does the Future Hold for “Parallel” Languages?
Alternative Processor Panel Results 2008
Star Bridge Systems, Inc.
Distributed Computing:
EE 4xx: Computer Architecture and Performance Programming
CISC 7120X Programming Languages and Compilers
Compiler Construction
NetPerL Seminar Hardware/Software Co-Design
HPC User Forum: Back-End Compiler Technology Panel
An Orchestration Language for Parallel Objects
Compiler Structures 1. Overview Objective
Rohan Yadav and Charles Yuan (rohany) (chenhuiy)
DMP: Deterministic Shared Memory Multiprocessing
Presentation transcript:

The George Washington University High-Level Programming of High-Performance Reconfigurable Computers: MAPLD BOF-H2 Panel Tarek El-Ghazawi The George Washington University tarek@gwu.edu http://www.seas.gwu.edu/~tarek

The Question and My Answer "Can we develop a software-level programming approach (e.g., a C language compiler) for FPGAs that spans the needs of the high performance reconfigurable computing community with a multitude of FPGA-based HPC systems and also the needs of the electronic design automation community with a multitude of FPGA board designs? My Answer: You Bet!

HOW? Abstraction Design a rich programming model for high-performance reconfigurable machines Extend a standard sequential language to conform to the programming model view Compilers to address common architectural features Run-time systems to tune to specific machine features

Programming Models for Parallel Computers Process/Thread Address Space Data Parallel e.g. HPF, C* Message Passing Shared Memory DSM/PGAS Ex: MPI[e.g. +C] Ex: OpenMP[e.g.+C] Ex: UPC

How cont.! Avoid the hype! Need to know that it is hard, will take enormous time and resources, but REALLY WORTH IT! Needed Efforts Need abstract programming model(s) to express fine grain data parallelism and coarse grain functional parallelism multiple levels of locality Need automatic H.W./S.W partitioning and scheduling algorithms Need compilers to address automatically general hardware optimizations and use reconfiguration to achieve them Need run-time systems to support further machine specific tunings Need H.W./S.W. debuggers and performance analysis tools And a lot more!!! But the good news are: There are solid intermediate steps There are works in related areas that can be leveraged