Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language Chris Wailes and Graham Price.

Slides:



Advertisements
Similar presentations
What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Advertisements

Microsoft Confidential. An incubation effort to: Support client -> server communication in native code with a modern C++ API design Support writing Azure-based.
lld The LLVM Linker Friday, April 13, 2012
In Review JAVA C++ GUIs - Windows Webopedia.com.
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2009 Potential Languages of the Future Chapel,
Summary Background –Why do we need parallel processing? Applications Introduction in algorithms and applications –Methodology to develop efficient parallel.
Fine-Grain Parallelism MQPs for Hugh C. Lauer MQPs for Fine-Grain Parallelism1.
Reference: Message Passing Fundamentals.
Modern Compiler Internal Representations Silvius Rus 1/23/2002.
DISTRIBUTED AND HIGH-PERFORMANCE COMPUTING CHAPTER 7: SHARED MEMORY PARALLEL PROGRAMMING.
High Performance Fortran (HPF) Source: Chapter 7 of "Designing and building parallel programs“ (Ian Foster, 1995)
Embedded SQL Pertemuan 9 Matakuliah: T0413/Current Popular IT II Tahun: 2007.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Scripting Languages For Virtual Worlds. Outline Necessary Features Classes, Prototypes, and Mixins Static vs. Dynamic Typing Concurrency Versioning Distribution.
1 Programming Languages b Each type of CPU has its own specific machine language b But, writing programs in machine languages is cumbersome (too detailed)
High Performance Fortran (HPF) Source: Chapter 7 of "Designing and building parallel programs“ (Ian Foster, 1995)
Self-Replicating Distributed Virtual Machines Lance R. Williams Dept. of Computer Science University of New Mexico.
Introducing the Common Language Runtime. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution engine.
Introduction to Parallel Processing 3.1 Basic concepts 3.2 Types and levels of parallelism 3.3 Classification of parallel architecture 3.4 Basic parallel.
Intro. to Game Programming Want to program a game?
Lecture 29 Fall 2006 Lecture 29: Parallel Programming Overview.
Parallel Processing LAB NO 1.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
Secure Web Applications via Automatic Partitioning Stephen Chong, Jed Liu, Andrew C. Meyers, Xin Qi, K. Vikram, Lantian Zheng, Xin Zheng. Cornell University.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Multicore Computing Using Erlang Art Gittleman California State University Long Beach
Crossing The Line: Distributed Computing Across Network and Filesystem Boundaries.
SUMA: A Scientific Metacomputer Cardinale, Yudith Figueira, Carlos Hernández, Emilio Baquero, Eduardo Berbín, Luis Bouza, Roberto Gamess, Eric García,
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Java Programming, Second Edition Chapter One Creating Your First Java Program.
Domain Specific Languages in Erlang Dennis Byrne
GPU Architecture and Programming
High Performance Fortran (HPF) Source: Chapter 7 of "Designing and building parallel programs“ (Ian Foster, 1995)
What Is Java? According to Sun in a white paper: Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable,
Spring 2003CSE P5481 Issues in Multiprocessors Which programming model for interprocessor communication shared memory regular loads & stores message passing.
The Cosmic Cube Charles L. Seitz Presented By: Jason D. Robey 2 APR 03.
Summary Background –Why do we need parallel processing? Moore’s law. Applications. Introduction in algorithms and applications –Methodology to develop.
A Multi-platform Co-array Fortran Compiler for High-Performance Computing John Mellor-Crummey, Yuri Dotsenko, Cristian Coarfa {johnmc, dotsenko,
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
1 3. Computing System Fundamentals 3.1 Language Translators.
 Programming - the process of creating computer programs.
By: Cheryl Mok & Sarah Tan. Java is partially interpreted. 1. Programmer writes a program in textual form 2. Runs the compiler, which converts the textual.
Java FilesOops - Mistake Java lingoSyntax
Introduction to OOP CPS235: Introduction.
Getting Started With Java September 22, Java Bytecode  Bytecode : is a highly optimized set of instructions designed to be executed by the Java.
CSCI 212 Object-Oriented Programming in Java. Prerequisite: CSCI 111 variable assignment statement while loop for loop post-increment (i++) strong typing.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
1 HPJAVA I.K.UJJWAL 07M11A1217 Dept. of Information Technology B.S.I.T.
The Functions and Purposes of Translators Translators, Interpreters and Compilers - High Level Languages.
Compilers and Interpreters
نظام المحاضرات الالكترونينظام المحاضرات الالكتروني Computer Software.
DGrid: A Library of Large-Scale Distributed Spatial Data Structures Pieter Hooimeijer,
JAVA PROGRAMMING Buzzwords. Simple: Less complex syntax than C++ Not as easy to design as Visual Basic Small size of interpreter.
Computer System Structures
The Post Windows Operating System
Assembler, Compiler, MIPS simulator
.NET Native & CoreRT.
Visit for more Learning Resources
Introduction to Computers, the Internet and the World Wide Web
Programming Models for SimMillennium
Java programming lecture one
Lecture 1 Runtime environments.
Intel® Parallel Studio and Advisor
Interpreter Style Examples
Summary Background Introduction in algorithms and applications
Programming Languages
Parallel Analytic Systems
Introduction to CUDA.
Lecture 1 Runtime environments.
WG4: Language Integration & Tools
Presentation transcript:

Tangle: A General Purpose, Concurrent, Object Oriented, Actor Based Programming Language Chris Wailes and Graham Price

Buzzword Soup General Purpose o Not designed for a specific application domain or machine architecture Concurrent and Object Oriented o Every object is viewed as being executed concurrently Actor Based o Message passing acts as serialization point

Why a New Language? Concurrency is a new concern for the average programmer o Fortran, C, Java Fighting to add concurrency to a serial paradigm is a loosing battle Concurrency is HARD Execution environment o How many cores do you write your code for?

Current Concurrent Languages Issues Erlang (1986) o Actor model o Functional language tradition Fortress (2008) Chapel (2010) Clik (2009) Orc (2009) Titanium (2005) Kilim (2008) o Extended Java x10 (2004) ZPL (2005) HPF(1993)

Current Concurrent Languages Issues Erlang (1986) o Actor model o Functional language tradition Fortress (2008) Chapel (2010) Clik (2009) Orc (2009) Titanium (2005) Kilim (2008) o Extended Java x10 (2004) ZPL (2005) HPF(1993) 1.Annotations (Death) 2.Concurrency Constructs 3.Limited Parallelism

The Tangle Architecture Tangle To LLVM Bytecode

The Tangle Architecture Runtime to LLVM Bytecode

The Tangle Architecture Clang + Response Closure Linker Pass -> Native Binary

Concurrency in Tangle Parallelism extracted by the runtime environment o Asynchronous message sends o Futures o Hints can be given to the runtime Runtime is smart (or it will be) o Load balancing o Data locality o Can identify hot objects

The Tangle Runtime Environment

Tangle Example class DSApp state :Peer NextPeer end def skip NewPeer = NextPeer get next; get next print (NewPeer get name) transition NextPeer -> NewPeer end

The Only Serial Tangle Program class Serial state end def main end

Future Work Embeded Objects Tail Recursion Optimization Object Clustering Object Load Balancer Compile Time Pattern Matching Standard Library New Type System Interfaces

Conclusion Tangle is a new parallel language o Implicit Parallelism o Runtime Management System o LLVM Compiler Infrastructure Get Involved o Code hosted at o Make your own runtime  Windows  Mac  Cell