Parallel Programming with v14.0. Parallel Paths to Parallel Performance 1.Parallel Compiler Research –”Concurrent Dfns Compiler” targets fine-grained.

Slides:



Advertisements
Similar presentations
MPI Message Passing Interface
Advertisements

Parallel Processing with OpenMP
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,
1 CSC 551: Web Programming Spring 2004 client-side programming with JavaScript  scripts vs. programs  JavaScript vs. JScript vs. VBScript  common tasks.
Parallelization and Tuning. Rough Timetable 09:00-09:05 Introduction 09:10-09:50 Dyalog Tuning Tools (Jay Foad) Break 10:00-10:45 Parallel Each (Michael.
1 More on Threads b b A section of code executed independently of other threads written within a single program. b b Java threads can access global data;
1 Lab-1 CSIT-121 Spring 2005 Lab Targets Solving problems on computer Programming in C++ Writing and Running Programs Programming Exercise.
1 Session-I & II CSIT-121 Spring 2006 Session Targets Introducing the VC++.NET Solving problems on computer Programming in C++ Writing and Running Programs.
Programming Languages Structure
Guide To UNIX Using Linux Third Edition
1 Lab-1 CSIT-121 Fall 2004 Lab Targets Solving problems on computer Programming in C++ Writing and Running Programs Programming Exercise.
Fundamentals of Python: From First Programs Through Data Structures
Technical Road Map Morten Kromberg, CTO Back in the UK!
Morten Kromberg CTO, Dyalog Ltd. Technical News from Dyalog SWEDAPL Göteborg April 2015.
Gitte Christensen Welcome. Slide 1 Welcome to record breaking 126 participants.
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
220 FINAL TEST REVIEW SESSION Omar Abdelwahab. INHERITANCE AND POLYMORPHISM Suppose you have a class FunClass with public methods show, tell, and smile.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
1 Programming Languages Tevfik Koşar Lecture - II January 19 th, 2006.
Technical Road Map Update Morten Kromberg, CTO. Show of Hands Workshops Today: –Putting Dyalog’s Latest Features to Use –MiServer 3.0 – A Framework for.
or Reducing Interpreter Overhead Jay Foad Dyalog The Compiler Project.
John Daintree Chief Architect Dyalog Andy Shiers Chief Operations Officer Dyalog RIDE.
Parallel Interactive Computing with PyTrilinos and IPython Bill Spotz, SNL (Brian Granger, Tech-X Corporation) November 8, 2007 Trilinos Users Group Meeting.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
1162 JDK 5.0 Features Christian Kemper Principal Architect Borland.
111 © 2002, Cisco Systems, Inc. All rights reserved.
Technical Road Map Morten Kromberg 0. 1 (Same Old) Focus Areas -Performance -(includes parallel computing) -Portability -(includes user interfaces) -Language.
COMPUTER PROGRAMMING. Iteration structures (loops) There may be a situation when you need to execute a block of code several number of times. In general,
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
Homework Assignment #1 J. H. Wang Oct. 13, Homework #1 Chap.1: 1.24 Chap.2: 2.13 Chap.3: 3.5, 3.13* (or 3.14*) Chap.4: 4.6, 4.12* –(*: optional.
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
CS333 Intro to Operating Systems Jonathan Walpole.
Homework Assignment #1 J. H. Wang Oct. 6, 2011.
Intro to Programming Web Design ½ Shade Adetoro. Programming Slangs IDE - Integrated Development Environment – the software in which you develop an application.
PVM: Parallel Virtual Machine anonymous ftp ftp ftp.netlib.org cd pvm3/book get pvm-book.ps quit
How to Program? -- Part 1 Part 1: Problem Solving –Analyze a problem –Decide what steps need to be taken to solve it. –Take into consideration any special.
New Language Features For Parallel and Asynchronous Execution Morten Kromberg Dyalog LTD Dyalog’13.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Parallel Computing Presented by Justin Reschke
#DYNA16 vecdb The Dyalog Vector Database Workshop W2: Managing Data with Dyalog Morten Kromberg, CXO.
#DYNA16 Dyalog Version 15.0 Highlights Jay Foad, John Daintree Dan Baronet, Brian Becker Morten Kromberg.
Technical Road Map Spring 2016 Morten Kromberg, CXO 0.
Jython Environment For Students (JES) Final Presentation Team 3 David Raines Claire Bailey Jason Ergle Josh Sklare July 16,
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Debugging using By: Samuel Ashby. What is debugging?  A bug is an error in either a program or the hardware itself.  Debugging is first locating and.
Preface IIntroduction Course Objectives I-2 Oracle Complete Solution I-3 Course Agenda I-4 Tables Used in This Course I-5 The Order Entry Schema I-6 The.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Parallel Programming With Futures and Isolates Morten Kromberg, CXO.
Chapter 4 – Thread Concepts
Realizing Concurrency using the thread model
Chapter 4: Multithreaded Programming
(Introducing Conga 3.0) Bjørn Christensen Morten Kromberg
Road Map - The User Experience
Chapter 4 – Thread Concepts
CS399 New Beginnings Jonathan Walpole.
Introduction Enosis Learning.
Hierarchical Architecture
Indexer AKEEL AHMED.
CSCI/CMPE 3334 Systems Programming
Introduction Enosis Learning.
Chapter 4: Threads.
Control Flow.
Webinar # April 2017 Isolates in the Cloud
MPI-Message Passing Interface
Realizing Concurrency using the thread model
Threaded Programming in Python
Chapter 4: Threads & Concurrency
Question 1 How are you going to provide language and/or library (or other?) support in Fortran, C/C++, or another language for massively parallel programming.
Presentation transcript:

Parallel Programming with v14.0

Parallel Paths to Parallel Performance 1.Parallel Compiler Research –”Concurrent Dfns Compiler” targets fine-grained parallelism on massively parallel hardware –Aaron Hsu, U. of Indiana, Tuesday 13:30 2.New Parser / ”Compiler” for Dyalog APL –Some optimisations will go parallel –Nick Nikolov, tomorrow at 14:15 3.V14.0 Futures and Isolates –Coarse-grained parallelism, here and now, on ”typical” hardware –(Me, now) Parallel Programming

Futures and Isolates Goal: Allow the APL user to explicitly express parallelism in a ”natural” way In the interpreter, futures and isolates enable coarse-grained ”task” parallelism –”coarse” = units of ~100ms or more In the Co-Dfns compiler, futures can be used to express fine-grained, or ”data” parallelism Parallel Programming

Isolates in Action Parallel Programming X←1 2 3 X←4 5 X←6 I3←isolate.New¨3 ⍴⊂ '' I3.({(+ ⌿⍵ )÷ ≢⍵ }X) I3.X←(1 2 3)(4 5)

Isolates An Isolate tastes, smells, looks like a Dyalog namespace, except that... Expressions executed in the isolate run in a separate process from the main interpreter thread (”in parallel”) Parallel Programming

Futures The result of an expression executed in an Isolate is a Future Futures can be passed as arguments to functions without blocking Structural functions can work on arrays containing futures without blocking Primitives which need to reference the value will block Parallel Programming

A 2-Core Computer How it Works… Parallel Programming A Dyalog Application Isolate Process 1 Isolate Process 2 Isolate 1 Isolate 2 Dyalog ProcessesNamespaces 1234 Computers Another Computer Isolate Process 1 Isolate Process 2 iss←¤¨4 ⍴⊂⍬ AddServer ' ' TCP Sockets Isolate 3 Isolate 4 StartServer 'ip=10.0.0'

In Dyalog v14.0 Futures are a core language feature –(John Daintree and Jay Foad) Isolates and operators are implemented in APL –(Phil Last and Morten Kromberg) Labelled as ”experimental”, so some things may change in v14.1 –Fundamental ideas not likely to change –Please experiment, help us finalize the design and turn isolates into industrial-strength tools! Parallel Programming

Demos Parallel Programming

The Goal Provide ”deterministic” parallelism in a form which integrates well with APL thinking –Same result with or without use of parallel features –Reason about parallel code without difficulty ”Bang for the buck”, here and now, for ”coarse grained” parallelism Potential to extend to compiled APL for fine- grained data parallel applications Parallel Programming

Future Work Areas How to share code between Isolates & parent? –Memory-mapped shared code? How to share large quantities of DATA –Enhance memory-mapped files? –n-way (or 1:many) shared variables? Left argument to ¤ to specify WHERE to launch –On the cloud, in a cluster, etc (please enter credit card #) Performance: Thread pooling / scheduling, interaction between futures & isolates Error handling / debugging –RIDE ”process manager” project... Full Integration into interpreter (and compiler?) Parallel Programming