Keshav Pingali The University of Texas at Austin Specialization is for dodos.

Slides:



Advertisements
Similar presentations
1 Parallelizing Irregular Applications through the Exploitation of Amorphous Data-parallelism Keshav Pingali (UT, Austin) Mario Mendez-Lojo (UT, Austin)
Advertisements

CSE 332: C++ STL iterators What is an Iterator? An iterator must be able to do 2 main things –Point to the start of a range of elements (in a container)
Adapted from Scott, Chapter 6:: Control Flow Programming Language Pragmatics Michael L. Scott.
Natural Selection, Adaptation, and Evolution
GPGPU Introduction Alan Gray EPCC The University of Edinburgh.
Parallel Inclusion-based Points-to Analysis Mario Méndez-Lojo Augustine Mathew Keshav Pingali The University of Texas at Austin (USA) 1.
Advanced Information Security 4 Field Arithmetic
Structure-driven Optimizations for Amorphous Data-parallel Programs 1 Mario Méndez-Lojo 1 Donald Nguyen 1 Dimitrios Prountzos 1 Xin Sui 1 M. Amber Hassaan.
The of Parallelism in Algorithms Keshav Pingali The University of Texas at Austin Joint work with D.Nguyen, M.Kulkarni, M.Burtscher, A.Hassaan, R.Kaleem,
“THREADS CANNOT BE IMPLEMENTED AS A LIBRARY” HANS-J. BOEHM, HP LABS Presented by Seema Saijpaul CS-510.
Languages and Compilers for High Performance Computing Kathy Yelick EECS Department U.C. Berkeley.
1/18 CS 693/793 Lecture 09 Special Topics in Domain Specific Languages CS 693/793-1C Spring 2004 Mo, We, Fr 10:10 – 11:00 CH 430.
A CONTROL INSTRUMENTS COMPANY The Effectiveness of T-way Test Data Generation or Data Driven Testing Michael Ellims.
Arrays. 2 The array data structure An array is an indexed sequence of components Typically, the array occupies sequential storage locations The length.
Chapter 16 Programming and Languages: Telling the Computer What to Do.
Chapter 3 Program translation1 Chapt. 3 Language Translation Syntax and Semantics Translation phases Formal translation models.
CS510 Concurrent Systems Class 5 Threads Cannot Be Implemented As a Library.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Lesson 1-4 Example Example 1 Graph the even whole numbers between 9 and Locate 9 and 19 on the number line. Circle them to remind yourself.
A Lightweight Infrastructure for Graph Analytics Donald Nguyen Andrew Lenharth and Keshav Pingali The University of Texas at Austin.
CS 331, Principles of Programming Languages Introduction.
STE 6239 Simulering Monday, Week 2: 6. Object-oriented / template- based Programming Implementation in C++
Programming Languages
Keshav Pingali The University of Texas at Austin Parallel Program = Operator + Schedule + Parallel data structure SAMOS XV Keynote.
Programming Languages Introduction. Overview Motivation Why study programming languages? Some key concepts.
The mystery of language evolution. Tinbergen's four questions Proximate view How an individual organism's structures function: Ontogeny: Developmental.
Data Structures Winter What is a Data Structure? A data structure is a method of organizing data. The study of data structures is particularly important.
Data Structures and Abstract Data Types "Get your data structures correct first, and the rest of the program will write itself." - David Jones.
COMPUTER PROGRAMMING I SUMMER 2011 Programming Languages.
1 Programming Languages Introduction. 2 Overview Motivation Why study programming languages? Some key concepts.
Analytic Models and Empirical Search: A Hybrid Approach to Code Optimization A. Epshteyn 1, M. Garzaran 1, G. DeJong 1, D. Padua 1, G. Ren 1, X. Li 1,
A GPU Implementation of Inclusion-based Points-to Analysis Mario Méndez-Lojo (AMD) Martin Burtscher (Texas State University, USA) Keshav Pingali (U.T.
The Theory of Natural Selection Adaptation – a beneficial trait that allows an individual to survive better than others Adaptations may help individuals.
SJSU SPRING 2011 PARALLEL COMPUTING Parallel Computing CS 147: Computer Architecture Instructor: Professor Sin-Min Lee Spring 2011 By: Alice Cotti.
Arctic Hare Wolf And It’s Habitat. TUNDRA
Spiral: an empirical search system for program generation and optimization David Padua Department of Computer Science University of Illinois at Urbana-
1 Keshav Pingali University of Texas, Austin Introduction to parallelism in irregular algorithms.
The C# language fundamentals ( II ) Po Feng, Tsai.
6 th OOPSLA Workshop on Domain-Specific Modeling /10/221 The Practice of Deploying DSM Report from a Japanese Appliance Maker Trenches
Specialized systems are  Inevitable  Already the norm  Practical.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
Starting Your Paper. An Introduction Should… 1. Grab the reader's attention. 2. State your thesis clearly and concisely. 3. Provide any necessary background.
Programming in R SQL in R. Running SQL in R In this session I will show you how to: Run basic SQL commands within R.
Interactive Supercomputing Update IDC HPC User’s Forum, September 2008.
ISCA Panel June 7, 2005 Wen-mei W. Hwu —University of Illinois at Urbana-Champaign 1 Future mass apps reflect a concurrent world u Exciting applications.
GPUs: Overview of Architecture and Programming Options Lee Barford firstname dot lastname at gmail dot com.
Introduction to MATLAB 7 MATLAB Programming for Engineer Hassan Migdadi Spring 2013.
CS 331, Principles of Programming Languages Chapter 1.
MATLAB – PT1 The purpose of this workshop is to get you started and to have fun with MATLAB! Let’s talk a little and decide on what we will be covering.
Slide 1 Simple, Flexible Programming of Data Movement Paths using Algorithmic Policies PIs: Y. Richard Yang, Robert Bjornson, Andrew Sherman Architect:
Introduction to Compilers Jianlin Feng School of Software SUN YAT-SEN UNIVERSITY.
Data Design and Implementation. Definitions Atomic or primitive type A data type whose elements are single, non-decomposable data items Composite type.
Beginning Fortran Introduction 13 October 2009 *Black text on white background provided for easy printing.
A Language for the Compact Representation of Multiple Program Versions Sébastien Donadio 1,2, James Brodman 3, Thomas Roeder 4, Kamen Yotov 4, Denis Barthou.
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
Roman Manevich Rashid Kaleem Keshav Pingali University of Texas at Austin Synthesizing Concurrent Graph Data Structures: a Case Study.
DSLs: The Good, the Bad, and the Ugly Charles Consel INRIA / University of Bordeaux.
FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
Question 1 Which of the following requires object database technology? A. Storing employee picture on disk B. Retrieving an employee picture C. Retrieving.
Bean Bunny Evolution CREST March 15, 2016.
As a general rule you should be using multiple languages these days (except for Java)
Hadoop Javad Azimi May What is Hadoop? Software platform that lets one easily write and run applications that process vast amounts of data. It includes:
Lecture 14: Iteration and Recursion (Section 6.5 – 6.6)
Roshan Dathathri          Gurbinder Gill          Loc Hoang
Threads and Memory Models Hal Perkins Autumn 2009
HIGH LEVEL SYNTHESIS.
Data-centric view of algorithms displayed in the ACES Vislab
Fifty Years of Parallel Programming: Ieri, Oggi, Domani
Domain & Range Algebra 1, Unit 3, Lesson 3.
Presentation transcript:

Keshav Pingali The University of Texas at Austin Specialization is for dodos

Lesson from natural world Brown bears –Adapted to live in temperate forests Polar bears –Adapted to live above Arctic Circle Polar bears evolved from brown bears Specialization –Driven by struggle for survival Specialization

Lesson from Salt Lake City : –Mormons were mostly white –Very specialized 1978: –Church elders have divine revelation Today: –Mormons are very diverse Generalization: –Driven by struggle for survival Generalization

Main take-away Struggle for survival can lead to both specialization and generalization Specialization –Useful when there are mutually exclusive alternatives Generalization –Useful if you can adapt to diverse environments –(eg) human beings of all races now live all over the world What are the lessons for programming languages?

Specialized languages = DSLs DSLs usually evolve into general-purpose languages –To deal with diverse data types –To grow market share MATLAB –Began with dense matrices and vectors to use EISPACK and LINPACK w/o writing FORTRAN code –Today: sparse matrices, objects, ADT’s, etc. –APL: dodo of array languages SQL –Focus on structured data aka relations –Today: evolving to deal with unstructured data Erlang –Began as a way to write telephony apps –Today: has evolved to a general functional language

Two claims for DSLs Claim I: productivity –Programmers can code with domain abstractions –(eg) relations, groups, fields, etc. Claim II: performance –Compilers for DSLs can use domain-specific information to optimize programs –(eg) optimization in SQL Counter-point: –Can be implemented easily in general-purpose languages ADTs + semantic information about methods

Anecdotal Evidence Graph analytics Many DSLs: –GraphLab, PowerGraph, Ligra, SociaLite.. Galois: –General-purpose programming model implemented in sequential C++ SOSP 2014: Nguyen et al –Galois programs run ,000 times faster than GraphLab programs –Shim for GraphLab on top of Galois in about 200 lines of code

Generalization Specialization