Microsoft Research Cambridge

Size: px
Start display at page:

Download "Microsoft Research Cambridge"

Transcription

1 Microsoft Research Cambridge Satnam Singh Researcher 18 November 2008

2 Overview Why Microsoft Research? Worldwide Cambridge (MSRC) What are we doing? Research Directions Selected Projects

3 Overview Microsoft Research Worldwide Cambridge (MSRC) What are we doing Research Directions Selected Projects

4 Cambridge Worldwide Microsoft Research Labs Researchers External Research Groups Technology Learning Labs Collaborative Institutes and Centers

5 Microsoft Research Mission Advance the state of the art in our chosen areas of computer science Making computers easier to use Reducing the cost of computing Making software developers more productive Transfer the resulting technology to Microsoft businesses Ensure Microsoft has a future Provide corporate agility - rapid response to change New technologies New competitors New business models Reservoir of technology Pool of expertise and smart people And for MSR Cambridge be Microsoft s leading technical asset in the region

6 Inventing the Future Computing Platform Trustworthy Software Data and Documents User Interfaces and Social Computing Science and Computing Intelligent Computing Operating Systems Languages Databases Multi-modal Interfaces Bioinformatics Machine Learning Networking Security Search Collaboration Quantum Computing Artificial Intelligence Mobile Devices Compilers Media Social Networks Highperformance Computing Data Analysis

7 Microsoft Research Cambridge The Leadership Team Founded in 1997 as first non-us based Microsoft Andrew Herbert Managing Director Research lab Chris Bishop Chief Research Scientist Partnership with leading European Universities Ken Wood Deputy Managing Director Partners with innovation centres in Aachen Andrew Blake(EMIC) Deputy Managing & Cairo Director (CMIC)

8 MSR Cambridge in Numbers 110 researchers 140 total staff 80 interns per year Plus 10 R&D staff from other Microsoft R&D groups Plus 12 Visiting Researchers per year Over 150 day visitors, seminar speakers per year Staff 1 Turing Award winner 1 Kyoto prize winner 2 Marr prize winners 2 ACM Fellows 1 IEEE Fellow 3 Royal Society Fellows 1 Royal Society of Edinburgh Fellow 4 Royal Academy of Engineering Fellows Honours 70+ top tier publications per year 65+ patents filed per year Outputs

9 Overview Why Microsoft Research? Worldwide Cambridge (MSRC) What are we doing? Research Directions Selected Projects

10 Research Directions Microsoft Research Cambridge Programming Principles and Tools Operating Systems, Networking, Distributed Systems Computer Mediated Living Machine Learning and Perception Computational Science

11 Research Directions Microsoft Research Cambridge Programming Principles and Tools Operating Systems, Networking, Distributed Systems Computer Mediated Living Machine Learning and Perception Computational Science

12 Programming Principles and Tools: F# Functional Objects.NET Tools Strong Typing.NET OO Model Visual Studio F# Compiler Succinct Libraries F# Interactive Type Inference Data Types and Patterns Interoperable Tools Visual Studio Integration 1 st Class Functions Meta-Programming Compact type-inferred classes Concurrency LINQ Extensible Plotting Lex and Yacc

13 OCaml F# C#/.NET Similar core language Similar object model

14 F#: Binding and Type Inference Type inference. The safety of C# with the succinctness of a scripting language Bind a static value Bind a static function Bind a local value let data = (1,2,3) let f (a,b,c) = let sum = a + b + c let g (x) = sum + x*x g(a), g(b), g(c) Bind a local function

15 To the point //F# open System let a = 2 Console.WriteLine a //C# using System; namespace ConsoleApplication1 { class Program { static int a() { return 2; } static void Main(string[] args) { Console.WriteLine(a); } } }

16 More Code! //F# open System let a = 2 Console.WriteLine a a 2 Console.WriteLine a More Noise Than Signal!

17 Pleasure // Use first-order functions as commands type Command = Command of (Rover -> unit) let BreakCommand = Command(fun rover -> rover.accelerate(-1.0)) let TurnLeftCommand = Command(fun rover -> rover.rotate(-5.0<degs>)) Pain abstract class Command { public virtual void Execute(); } abstract class MarsRoverCommand : Command { protected MarsRover Rover { get; private set; } public MarsRoverCommand(MarsRover rover) { this.rover = rover; } } class BreakCommand : MarsRoverCommand { public BreakCommand(MarsRover rover) : base(rover) { } public override void Execute() { Rover.Rotate(-5.0); } } class TurnLeftCommand : MarsRoverCommand { public TurnLeftCommand(MarsRover rover) : base(rover) { } public override void Execute() { Rover.Rotate(-5.0); } }

18 let rotate(x,y,z) = (z,x,y) let reduce f (x,y,z) = f x + f y + f z Tuple<V,T,U> Rotate(Tuple<T,U,V> t) { return new Tuple<V,T,U>(t.Item3,t.Item1,t.Item2); } int Reduce(Func<T,int> f,tuple<t,t,t> t) { return f(t.item1) + f(t.item2) + f (t.item3); }

19

20

21 Single-slide Solution: Unit-checking by Type-checking Declare base units measure kg, m, s and derived units measure N = kg m / s^2 Parameterize numeric types (float, double, etc) on units. Constants are annotated with units e.g. let gravity = 9.81<m/s^2> Compiler checks units Compiler automatically infers generic types for functions Programmer can parameterize own types on units (e.g. complex, matrix, Gaussian) Zero performance penalty all checking at compile-time!

22

23 Research Directions Microsoft Research Cambridge Programming Principles and Tools Operating Systems, Networking, Distributed Systems Computer Mediated Living Machine Learning and Perception Computational Science

24 Systems and Networking: Constellation Problem Complex network applications Dynamic dependencies between services and servers Existing tools are insufficient and require experts Approach Monitor the network to discover dependencies between services and hosts Machine learning to learn local correlations Express global correlations as graphs Applications Troubleshooting Configuration planning Fault detection and prediction Root cause analysis

25 A Constellation from Microsoft s corporate network

26 Research Directions Microsoft Research Cambridge Programming Principles and Tools Operating Systems, Networking, Distributed Systems Computer Mediated Living Machine Learning and Perception Computational Science

27 Computer Mediated Living: SenseCam Idea Automatically capture visual scenes from a person s life Use sensors to determine when interesting pictures can be taken Artificially enhance people s visual memory (Alzheimer disease) Technology 1 GB flash memory for 30,000 VGA images Light-intensity and light-colour sensors Passive infrared (body heat) detector and temperature sensor Multiple-axis accelerometer SenseCam Data Pictures from fish-eye wide-angle lens Time stamps Time series of sensory data

28 SenseCam Footage

29 Research Directions Microsoft Research Cambridge Programming Principles and Tools Operating Systems, Networking, Distributed Systems Computer Mediated Living Machine Learning and Perception Computational Science

30 3D Object Insertion into Video Insert 3D objects into video with a single click Interactively position them using simple 2D tools Depth at each pixel is computed on the GPU Partial occlusion possible

31 3D Object Insertion into Video (ctd.)

32 Research Directions Microsoft Research Cambridge Programming Principles and Tools Operating Systems, Networking, Distributed Systems Computer Mediated Living Machine Learning and Perception Computational Science

33 Stochastic Π-Calculus for Systems Biology Idea Use formalism for concurrency in computer science to describe biological systems Biological systems run their software on a different hardware Technology π-calculus for describing concurrent systems Modify to account for stochasticity Large scale simulations in silico Applications Cell dynamics Immune system Library of genes

34 Computational Science Activities Computational Biology Computational Ecology Environmental Science Natural Computation 2020 Science Report Policy engagements: national academies, funding agencies, government ministers and officials Conference & Project funding INRIA, France - Software Security and Scientific Information Interaction University of Trento, Italy - Systems Biology Barcelona Super Computer Centre, Spain Multi core systems programming Internships PhD scholarships Post Doc Fellowships Summer schools European Science Prize Inspire programme Collaborative Research Programme Scientific Leadership Joint Laboratories Intellectual Capital Development

35 External Research Advanced Research Tools and Services Computer Science Earth, Energy and Environment Education and Scholarly Communication Health and Wellbeing Community, Intellectual Capital Development

36 The Future is Heterogeneous

37 The free lunch is over Transparent CPU perf increase Homogeneous multi-core Heterogeneous multi-core

38 Using multi-cores: space scheduling Partition resources between concurrent apps or VMs Machine consolidation Preserve responsiveness VMs for stronger isolation

39 Using multi-cores: control parallelism Find control-parallelism within an app Multiple threads in a shared address space Handle different clients GC, indexing, etc concurrent with application work

40 Using multi-cores: data parallelism Exploit data parallelism in large computations OpenMP Nested dataparallelism

41 Welcome to deadlock, races, livelock Locks and condition variables (a) are hard to use and (b) do not compose Library Hardware

42 Multi-Core and Parallelism To exploit multi-core processors: Automatically parallelize sequential programs. Modify existing programs to add hints about how to parallelize them. Write new implicitly parallel programs. Write new explicitly parallel programs.

43 Major Multi-Core Issues Difficult to make legacy software exploit multicore processors Some promising work at Princeton (Liberty group) In general it is too hard to implicitly parallelsim

44 Major Multi-Core Issues Difficult to get good granularity of parallelism Many embarrassingly parallel algorithms do not work out because tiny amounts of work cannot be efficiently scheduled across multiple threads or processors.

45 Major Multi-Core Issues Some explicitly parallel programs are nondeterministic Serious verification problem. Requires further advances in static analysis.

46 Major Multi-Core Issues Many existing system level concurrency constructs are not suitable for parallel application development and lack composability: locks monitors condition variables

47 Example: double-ended queue PushLeft / PopLeft work on the left hand end Make it thread-safe by adding a lock Needlessly serializes operations One lock for each end? PushRight / PopRight work on the right hand end Much more complex e.g. lots of lost-wake-up problems Risk of deadlock when queue nearly empty Still not composable Still won t scale up

48 Transactional Memory atomic A.withdraw(3) B.deposit(3) end Steal ideas from the database community atomic does what it says on the tin Directly supports what the programmer is trying to do: an atomic transaction against memory Write the simple sequential code, and wrap atomic around it.

49 How does it work? atomic <body> Optimistic concurrency Execute <body> without taking any locks Each read and write in <body> is logged to a threadlocal transaction log Writes go to the log only, not to memory At the end, the transaction tries to commit to memory Commit may fail; then transaction is re-run

50 Transactional memory No races: no locks, so you can t forget to take one No lock-induced deadlock, because no locks No lost wake-ups, because no wake-up calls to forget [due to retry] Error recovery trivial: an exception inside atomic aborts the transaction Simple code is scalable

51 STM monad; impoverished version of IO atomically is a function, not a syntactic construct atomically :: STM a -> IO a newtvar :: a -> STM (TVar a) readtvar :: TVar a -> STM a writetvar :: TVar a -> a -> STM () incr :: TVar Int -> STM () incr r = do { v <- readtvar r ; writetvar r (v+1) } Transactional variable main = do { r <- atomically (newtvar 0) ; fork (atomically (incr r)) ; atomically (incr r) ;... }

52 STM in Haskell atomically :: STM a -> IO a newtvar :: a -> STM (TVar a) readtvar :: TVar a -> STM a writetvar :: TVar a -> a -> STM () Can t fiddle with TVars outside atomic block [good] Can t do IO inside atomic block *sad, but also good]

53

54

55

56

57

58

59

60

61

62

63

64 Join Patterns Channel A Channel B Channel C Channel D A(x) join pattern & B(y) -> print x+y handler A(x) & C(y) & D(z) -> print x-y+z A(x) & D(y) -> print x-y x=6, y=2, output = 4

65 using System ; Comega asynchronous methods public class MainProgram { public class ArraySummer { public async sumarray (int[] intarray) { int sum = 0 ; foreach (int value in intarray) sum += value ; Console.WriteLine ("Sum = " + sum) ; } } } static void Main() { Summer = new ArraySummer () ; Summer.sumArray (new int[] {1, 0, 6, 6, 1, 9, 6, 6}) ; Summer.sumArray (new int[] {3, 1, 4, 1, 5, 9, 2, 6}) ; Console.WriteLine ("Main method done.") ; } 76

66 Comega chords using System ; public class MainProgram { public class Buffer { public async Put (int value) ; public int Get () & Put(int value) { return value ; } } } static void Main() { buf = new Buffer () ; buf.put (42) ; buf.put (66) ; Console.WriteLine (buf.get() + " " + buf.get()) ; } 77

67 Join Patterns C-Omega language Robotics DSK as a C# library Join Java Perhaps a good model for XMOS?

68 Data parallelism Nested Data Parallelism Do the same thing, in parallel, to every element of a large collection of values Advantages Everything remains purely functional Granularity: one thread per processor Locality: data physically partitioned across processors

69 Flat data parallel e.g. Fortran(s), *C The brand leader: widely used, well MPI, understood, map/reduce well supported foreach i in 1..N {...do something to A[i]... } BUT: something is sequential Single point of concurrency Easy to implement: use chunking Good cost model P1 P2 P3 1,000,000 s of (small) work items

70 Nested data parallel Main idea: allow something to be parallel foreach i in 1..N {...do something to A[i]... } Now the parallelism structure is recursive, and un-balanced Still good cost model Hard to implement! Still 1,000,000 s of (small) work items

71 Barnes-Hut Depth of data parallel nesting determined dynamically. More complex data structure: elements of a parallel array come from a recursive and user-defined algebraic type Barnes-Hut n-body problem

72 p3 p1 p2 p7 p6 p4 Barnes Hut p8 p9 p5

73 p 3 p1 p2 p7 p6 p4 p8 p9 p5

74

75

76

77 XD2000i FPGA in-socket accelerator for Intel FSB XD2000F FPGA in-socket XD1000 FPGA co-proces accelerator for AMD socket F module for socket 940

78

79

80

81 public static int[] SequentialFIRFunction(int[] weights, int[] input) { int[] window = new int[size]; int[] result = new int[input.length]; // Clear to window of x values to all zero. for (int w = 0; w < size; w++) window[w] = 0; // For each sample... for (int i = 0; i < input.length; i++) { // Shift in the new x value for (int j = size - 1; j > 0; j--) window[j] = window[j - 1]; window[0] = input[i]; // Compute the result value int sum = 0; for (int z = 0; z < size; z++) sum += weights[z] * window[z]; result[i] = sum; } return result; }

82 Transposed Filter

83 static void Tap(int i, byte w, Kiwi.Channel<byte> xin, Kiwi.Channel<int> yin, Kiwi.Channel<int> yout) { byte x; int y; while(true) { y = yin.read(); x = xin.read(); yout.write(x * w + y); } }

84 Inter-thread Communication and Synchronization // Create the channels to link together the taps for (int c = 0; c < size; c++) { Xchannels[c] = new Kiwi.Channel<byte>(); Ychannels[c] = new Kiwi.Channel<int>(); Ychannels[c].Write(0); // Pre-populate y-channel registers with zeros }

85 // Connect up the taps for a transposed filter for (int i = 0; i < size; i++) { int j = i; // Quiz: why do we need the local j? Thread tapthread = new Thread(delegate() { Tap(j, weights[j], Xchannels[j], Ychannels[j], Ychannels[j+1]); }); tapthread.start(); }

86 Resources Toward 2020 Science Report Being Human: Human Computer Interaction in the Year 2020 Report Research publications Research prototype software

Simon Peyton Jones (Microsoft Research) Tokyo Haskell Users Group April 2010

Simon Peyton Jones (Microsoft Research) Tokyo Haskell Users Group April 2010 Simon Peyton Jones (Microsoft Research) Tokyo Haskell Users Group April 2010 Geeks Practitioners 1,000,000 10,000 100 1 The quick death 1yr 5yr 10yr 15yr Geeks Practitioners 1,000,000 10,000 100 The slow

More information

CSE 230. Concurrency: STM. Slides due to: Kathleen Fisher, Simon Peyton Jones, Satnam Singh, Don Stewart

CSE 230. Concurrency: STM. Slides due to: Kathleen Fisher, Simon Peyton Jones, Satnam Singh, Don Stewart CSE 230 Concurrency: STM Slides due to: Kathleen Fisher, Simon Peyton Jones, Satnam Singh, Don Stewart The Grand Challenge How to properly use multi-cores? Need new programming models! Parallelism vs Concurrency

More information

F# Succinct, Expressive, Functional. The F# Team Microsoft Developer Division Microsoft Research

F# Succinct, Expressive, Functional. The F# Team Microsoft Developer Division Microsoft Research F# Succinct, Expressive, Functional The F# Team Microsoft Developer Division Microsoft Research Topics What is F# about? Some Simple F# Programming A Taste of Parallel/Reactive with F# What is F# about?

More information

Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming

Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming Nicolas Bettenburg 1 Universitaet des Saarlandes, D-66041 Saarbruecken, nicbet@studcs.uni-sb.de Abstract. As traditional

More information

A Pragmatic Case For. Static Typing

A Pragmatic Case For. Static Typing A Pragmatic Case For Static Typing Slides available from github at: https://github.com/bhurt/presentations/blob/master /statictyping.odp Please Hold your Comments, Criticisms, Objections, Etc. To the end

More information

!!"!#"$%& Atomic Blocks! Atomic blocks! 3 primitives: atomically, retry, orelse!

!!!#$%& Atomic Blocks! Atomic blocks! 3 primitives: atomically, retry, orelse! cs242! Kathleen Fisher!! Multi-cores are coming!! - For 50 years, hardware designers delivered 40-50% increases per year in sequential program speed.! - Around 2004, this pattern failed because power and

More information

Composable Shared Memory Transactions Lecture 20-2

Composable Shared Memory Transactions Lecture 20-2 Composable Shared Memory Transactions Lecture 20-2 April 3, 2008 This was actually the 21st lecture of the class, but I messed up the naming of subsequent notes files so I ll just call this one 20-2. This

More information

Advances in Programming Languages

Advances in Programming Languages O T Y H Advances in Programming Languages APL5: Further language concurrency mechanisms David Aspinall (including slides by Ian Stark) School of Informatics The University of Edinburgh Tuesday 5th October

More information

MPI and OpenMP (Lecture 25, cs262a) Ion Stoica, UC Berkeley November 19, 2016

MPI and OpenMP (Lecture 25, cs262a) Ion Stoica, UC Berkeley November 19, 2016 MPI and OpenMP (Lecture 25, cs262a) Ion Stoica, UC Berkeley November 19, 2016 Message passing vs. Shared memory Client Client Client Client send(msg) recv(msg) send(msg) recv(msg) MSG MSG MSG IPC Shared

More information

Higher Order Combinators for Join Patterns using STM

Higher Order Combinators for Join Patterns using STM Higher Order Combinators for Join Patterns using STM Satnam Singh Microsoft One Microsoft Way Redmond WA 98052, USA +1 425 705 8208 satnams@microsoft.com http://research.microsoft.com/~satnams ABSTRACT

More information

COMP3151/9151 Foundations of Concurrency Lecture 8

COMP3151/9151 Foundations of Concurrency Lecture 8 1 COMP3151/9151 Foundations of Concurrency Lecture 8 Transactional Memory Liam O Connor CSE, UNSW (and data61) 8 Sept 2017 2 The Problem with Locks Problem Write a procedure to transfer money from one

More information

Functional-first Programming in an Information-Rich World. Dr Kenji Takeda Microsoft Research Connections

Functional-first Programming in an Information-Rich World. Dr Kenji Takeda Microsoft Research Connections Functional-first Programming in an Information-Rich World Dr Kenji Takeda Microsoft Research Connections Functional-first programming Informationrich programming Recurring Problems in Software Getting

More information

Concurrency: what, why, how

Concurrency: what, why, how Concurrency: what, why, how May 28, 2009 1 / 33 Lecture about everything and nothing Explain basic idea (pseudo) vs. Give reasons for using Present briefly different classifications approaches models and

More information

Concurrency: what, why, how

Concurrency: what, why, how Concurrency: what, why, how Oleg Batrashev February 10, 2014 what this course is about? additional experience with try out some language concepts and techniques Grading java.util.concurrent.future? agents,

More information

HP environmental messaging

HP environmental messaging HP environmental messaging Promise Definition Designing for the environment As a technology industry environmental leader for decades, HP is making a difference with a comprehensive Design for the Environment

More information

Software Transactional Memory

Software Transactional Memory Software Transactional Memory Madhavan Mukund Chennai Mathematical Institute http://www.cmi.ac.in/ madhavan Formal Methods Update Meeting TRDDC, Pune 19 July 2008 The challenge of concurrent programming

More information

Trends and Challenges in Multicore Programming

Trends and Challenges in Multicore Programming Trends and Challenges in Multicore Programming Eva Burrows Bergen Language Design Laboratory (BLDL) Department of Informatics, University of Bergen Bergen, March 17, 2010 Outline The Roadmap of Multicores

More information

IBM Zurich Research laboratory Overview

IBM Zurich Research laboratory Overview IBM Zurich Research laboratory Overview Bologna, 2008 June 18 Philippe Janson Program Manager Asset Transformation IBM Research Worldwide 3000 Researchers in eight labs around the world IBM Research Disciplines

More information

Monitors; Software Transactional Memory

Monitors; Software Transactional Memory Monitors; Software Transactional Memory Parallel and Distributed Computing Department of Computer Science and Engineering (DEI) Instituto Superior Técnico October 18, 2012 CPD (DEI / IST) Parallel and

More information

CSCI-GA Multicore Processors: Architecture & Programming Lecture 10: Heterogeneous Multicore

CSCI-GA Multicore Processors: Architecture & Programming Lecture 10: Heterogeneous Multicore CSCI-GA.3033-012 Multicore Processors: Architecture & Programming Lecture 10: Heterogeneous Multicore Mohamed Zahran (aka Z) mzahran@cs.nyu.edu http://www.mzahran.com Status Quo Previously, CPU vendors

More information

Tackling Concurrency With STM. Mark Volkmann 10/22/09

Tackling Concurrency With STM. Mark Volkmann 10/22/09 Tackling Concurrency With Mark Volkmann mark@ociweb.com 10/22/09 Two Flavors of Concurrency Divide and conquer divide data into subsets and process it by running the same code on each subset concurrently

More information

Tackling Concurrency With STM

Tackling Concurrency With STM Tackling Concurrency With Mark Volkmann mark@ociweb.com 10/22/09 Two Flavors of Concurrency Divide and conquer divide data into subsets and process it by running the same code on each subset concurrently

More information

Performance Tools for Technical Computing

Performance Tools for Technical Computing Christian Terboven terboven@rz.rwth-aachen.de Center for Computing and Communication RWTH Aachen University Intel Software Conference 2010 April 13th, Barcelona, Spain Agenda o Motivation and Methodology

More information

7 Things ISVs Must Know About Virtualization

7 Things ISVs Must Know About Virtualization 7 Things ISVs Must Know About Virtualization July 2010 VIRTUALIZATION BENEFITS REPORT Table of Contents Executive Summary...1 Introduction...1 1. Applications just run!...2 2. Performance is excellent...2

More information

COS 326 David Walker. Thanks to Kathleen Fisher and recursively to Simon Peyton Jones for much of the content of these slides.

COS 326 David Walker. Thanks to Kathleen Fisher and recursively to Simon Peyton Jones for much of the content of these slides. COS 326 David Walker Thanks to Kathleen Fisher and recursively to Simon Peyton Jones for much of the content of these slides. Optional Reading: Beautiful Concurrency, The Transactional Memory / Garbage

More information

Revisiting the Past 25 Years: Lessons for the Future. Guri Sohi University of Wisconsin-Madison

Revisiting the Past 25 Years: Lessons for the Future. Guri Sohi University of Wisconsin-Madison Revisiting the Past 25 Years: Lessons for the Future Guri Sohi University of Wisconsin-Madison Outline VLIW OOO Superscalar Enhancing Superscalar And the future 2 Beyond pipelining to ILP Late 1980s to

More information

Improving STM Performance with Transactional Structs 1

Improving STM Performance with Transactional Structs 1 Improving STM Performance with Transactional Structs 1 Ryan Yates and Michael L. Scott University of Rochester IFL, 8-31-2016 1 This work was funded in part by the National Science Foundation under grants

More information

Efficiently Introduce Threading using Intel TBB

Efficiently Introduce Threading using Intel TBB Introduction This guide will illustrate how to efficiently introduce threading using Intel Threading Building Blocks (Intel TBB), part of Intel Parallel Studio XE. It is a widely used, award-winning C++

More information

6.189 IAP Lecture 5. Parallel Programming Concepts. Dr. Rodric Rabbah, IBM IAP 2007 MIT

6.189 IAP Lecture 5. Parallel Programming Concepts. Dr. Rodric Rabbah, IBM IAP 2007 MIT 6.189 IAP 2007 Lecture 5 Parallel Programming Concepts 1 6.189 IAP 2007 MIT Recap Two primary patterns of multicore architecture design Shared memory Ex: Intel Core 2 Duo/Quad One copy of data shared among

More information

Behavioral Simulations in MapReduce

Behavioral Simulations in MapReduce Behavioral Simulations in MapReduce Guozhang Wang, Cornell University with Marcos Vaz Salles, Benjamin Sowell, Xun Wang, Tuan Cao, Alan Demers, Johannes Gehrke, and Walker White MSR DMX August 20, 2010

More information

David R. Mackay, Ph.D. Libraries play an important role in threading software to run faster on Intel multi-core platforms.

David R. Mackay, Ph.D. Libraries play an important role in threading software to run faster on Intel multi-core platforms. Whitepaper Introduction A Library Based Approach to Threading for Performance David R. Mackay, Ph.D. Libraries play an important role in threading software to run faster on Intel multi-core platforms.

More information

The Art of Parallel Processing

The Art of Parallel Processing The Art of Parallel Processing Ahmad Siavashi April 2017 The Software Crisis As long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a

More information

Multithreading and Interactive Programs

Multithreading and Interactive Programs Multithreading and Interactive Programs CS160: User Interfaces John Canny. Last time Model-View-Controller Break up a component into Model of the data supporting the App View determining the look of the

More information

An Update on Haskell H/STM 1

An Update on Haskell H/STM 1 An Update on Haskell H/STM 1 Ryan Yates and Michael L. Scott University of Rochester TRANSACT 10, 6-15-2015 1 This work was funded in part by the National Science Foundation under grants CCR-0963759, CCF-1116055,

More information

Locks and Threads and Monads OOo My. Stephan Bergmann StarOffice/OpenOffice.org Sun Microsystems

Locks and Threads and Monads OOo My. Stephan Bergmann StarOffice/OpenOffice.org Sun Microsystems Locks and Threads and Monads OOo My Stephan Bergmann StarOffice/OpenOffice.org Sun Microsystems Locks and Threads and Monads OOo My 1 - Tomorrow's hardware... 2 -...and today's software 3 - Stateful vs.

More information

Supercomputing and Mass Market Desktops

Supercomputing and Mass Market Desktops Supercomputing and Mass Market Desktops John Manferdelli Microsoft Corporation This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

More information

Programming Language Concepts: Lecture 13

Programming Language Concepts: Lecture 13 Programming Language Concepts: Lecture 13 Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in http://www.cmi.ac.in/~madhavan/courses/pl2009 PLC 2009, Lecture 13, 09 March 2009 An exercise

More information

Threaded Programming. Lecture 9: Alternatives to OpenMP

Threaded Programming. Lecture 9: Alternatives to OpenMP Threaded Programming Lecture 9: Alternatives to OpenMP What s wrong with OpenMP? OpenMP is designed for programs where you want a fixed number of threads, and you always want the threads to be consuming

More information

Software Transactional Memory Pure functional approach

Software Transactional Memory Pure functional approach Software Transactional Memory Pure functional approach Alexander Granin graninas@gmail.com C++ Russia 2018, Saint Petersburg struct Presentation Introduction1 Functional programming in C++ Introduction2

More information

Overview of research activities Toward portability of performance

Overview of research activities Toward portability of performance Overview of research activities Toward portability of performance Do dynamically what can t be done statically Understand evolution of architectures Enable new programming models Put intelligence into

More information

Design and Implementation of Modern Programming Languages (Seminar)

Design and Implementation of Modern Programming Languages (Seminar) Design and Implementation of Modern Programming Languages (Seminar) Outline Administrivia Intro Schedule Topics GENERAL INFORMATION Intro Introduce students to the core techniques of scientific work Give

More information

HSA Foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017!

HSA Foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017! Advanced Topics on Heterogeneous System Architectures HSA Foundation! Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017! Antonio R. Miele! Marco D. Santambrogio! Politecnico di Milano! 2

More information

Parallel Programming Environments. Presented By: Anand Saoji Yogesh Patel

Parallel Programming Environments. Presented By: Anand Saoji Yogesh Patel Parallel Programming Environments Presented By: Anand Saoji Yogesh Patel Outline Introduction How? Parallel Architectures Parallel Programming Models Conclusion References Introduction Recent advancements

More information

Monitors; Software Transactional Memory

Monitors; Software Transactional Memory Monitors; Software Transactional Memory Parallel and Distributed Computing Department of Computer Science and Engineering (DEI) Instituto Superior Técnico March 17, 2016 CPD (DEI / IST) Parallel and Distributed

More information

Programming Safe Agents in Blueprint. Alex Muscar University of Craiova

Programming Safe Agents in Blueprint. Alex Muscar University of Craiova Programming Safe Agents in Blueprint Alex Muscar University of Craiova Programmers are craftsmen, and, as such, they are only as productive as theirs tools allow them to be Introduction Agent Oriented

More information

RandomOps. Pseudo-Random Number Generator Source-Code Library for C# The Manual First Edition

RandomOps. Pseudo-Random Number Generator Source-Code Library for C# The Manual First Edition Pseudo-Random Number Generator Source-Code Library for C# The Manual First Edition By Magnus Erik Hvass Pedersen September 2009 Copyright 2009, all rights reserved by the author. Please see page 3 for

More information

Multicore programming in Haskell. Simon Marlow Microsoft Research

Multicore programming in Haskell. Simon Marlow Microsoft Research Multicore programming in Haskell Simon Marlow Microsoft Research A concurrent web server server :: Socket -> IO () server sock = forever (do acc

More information

Programming Models for Supercomputing in the Era of Multicore

Programming Models for Supercomputing in the Era of Multicore Programming Models for Supercomputing in the Era of Multicore Marc Snir MULTI-CORE CHALLENGES 1 Moore s Law Reinterpreted Number of cores per chip doubles every two years, while clock speed decreases Need

More information

Chí Cao Minh 28 May 2008

Chí Cao Minh 28 May 2008 Chí Cao Minh 28 May 2008 Uniprocessor systems hitting limits Design complexity overwhelming Power consumption increasing dramatically Instruction-level parallelism exhausted Solution is multiprocessor

More information

Big Data Retos y Oportunidades

Big Data Retos y Oportunidades Big Data Retos y Oportunidades Raúl Ramos Pollán Líder Big Data & Large Scale Machine Learning Laboratorio de Supercomputación y Cálculo Científico Universidad Industrial de Santander Bucaramanga, Colombia

More information

A brief introduction to OpenMP

A brief introduction to OpenMP A brief introduction to OpenMP Alejandro Duran Barcelona Supercomputing Center Outline 1 Introduction 2 Writing OpenMP programs 3 Data-sharing attributes 4 Synchronization 5 Worksharings 6 Task parallelism

More information

Transactifying Apache s Cache Module

Transactifying Apache s Cache Module H. Eran O. Lutzky Z. Guz I. Keidar Department of Electrical Engineering Technion Israel Institute of Technology SYSTOR 2009 The Israeli Experimental Systems Conference Outline 1 Why legacy applications

More information

Jukka Julku Multicore programming: Low-level libraries. Outline. Processes and threads TBB MPI UPC. Examples

Jukka Julku Multicore programming: Low-level libraries. Outline. Processes and threads TBB MPI UPC. Examples Multicore Jukka Julku 19.2.2009 1 2 3 4 5 6 Disclaimer There are several low-level, languages and directive based approaches But no silver bullets This presentation only covers some examples of them is

More information

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Poor co-ordination that exists in threads on JVM is bottleneck

More information

SCAD Wraps up Events Marking the World Statistics Day

SCAD Wraps up Events Marking the World Statistics Day Press release Date 23/10/2010 SCAD Wraps up Events Marking the World Statistics Day Statistics Centre - Abu Dhabi (SCAD) yesterday concluded its celebration of the World Statistics Day, in which the centre

More information

Department of Homeland Security Science & Technology

Department of Homeland Security Science & Technology Department of Homeland Security Science & Technology Overview to the US National Committee on Theoretical and Applied Mechanics, April 22, 2016, Washington DC Dr. Kevin L. Brown Chief Scientist, DHS/S&T

More information

Problems with Concurrency. February 19, 2014

Problems with Concurrency. February 19, 2014 with Concurrency February 19, 2014 s with concurrency interleavings race conditions dead GUI source of s non-determinism deterministic execution model 2 / 30 General ideas Shared variable Access interleavings

More information

SMART. Investing in urban innovation

SMART. Investing in urban innovation SMART Investing in urban innovation What Smart Belfast? Belfast has ambitious plans for the future. Building on our economic revival, we want to make our city an outstanding place to live, work and invest.

More information

Why is Microsoft investing in Functional Programming?

Why is Microsoft investing in Functional Programming? Why is Microsoft investing in Functional Programming? Don Syme With thanks to Leon Bambrick, Chris Smith and the puppies All opinions are those of the author and not necessarily those of Microsoft Simplicity

More information

Multi-core Parallelization in Clojure - a Case Study

Multi-core Parallelization in Clojure - a Case Study Multi-core Parallelization in Clojure - a Case Study Johann M. Kraus and Hans A. Kestler AG Bioinformatics and Systems Biology Institute of Neural Information Processing University of Ulm 29.06.2009 Outline

More information

<Insert Picture Here> OpenMP on Solaris

<Insert Picture Here> OpenMP on Solaris 1 OpenMP on Solaris Wenlong Zhang Senior Sales Consultant Agenda What s OpenMP Why OpenMP OpenMP on Solaris 3 What s OpenMP Why OpenMP OpenMP on Solaris

More information

Predictable Timing Analysis of x86 Multicores using High-Level Parallel Patterns

Predictable Timing Analysis of x86 Multicores using High-Level Parallel Patterns Predictable Timing Analysis of x86 Multicores using High-Level Parallel Patterns Kevin Hammond, Susmit Sarkar and Chris Brown University of St Andrews, UK T: @paraphrase_fp7 E: kh@cs.st-andrews.ac.uk W:

More information

Shared memory programming model OpenMP TMA4280 Introduction to Supercomputing

Shared memory programming model OpenMP TMA4280 Introduction to Supercomputing Shared memory programming model OpenMP TMA4280 Introduction to Supercomputing NTNU, IMF February 16. 2018 1 Recap: Distributed memory programming model Parallelism with MPI. An MPI execution is started

More information

About. Established 1 September 2016 Engagement platform for cross-sector interaction and collaboration. Cybersecurity Consortium

About. Established 1 September 2016 Engagement platform for cross-sector interaction and collaboration. Cybersecurity Consortium Supported by About Established 1 September 2016 Engagement platform for cross-sector interaction and collaboration Industry Academia Cybersecurity Consortium Public Agencies National Cybersecurity R&D

More information

Software Engineering

Software Engineering Software Engineering chap 4. Software Reuse 1 SuJin Choi, PhD. Sogang University Email: sujinchoi@sogang.ac.kr Slides modified, based on original slides by Ian Sommerville (Software Engineering 10 th Edition)

More information

Particle-in-Cell Simulations on Modern Computing Platforms. Viktor K. Decyk and Tajendra V. Singh UCLA

Particle-in-Cell Simulations on Modern Computing Platforms. Viktor K. Decyk and Tajendra V. Singh UCLA Particle-in-Cell Simulations on Modern Computing Platforms Viktor K. Decyk and Tajendra V. Singh UCLA Outline of Presentation Abstraction of future computer hardware PIC on GPUs OpenCL and Cuda Fortran

More information

Intel Many Integrated Core (MIC) Architecture

Intel Many Integrated Core (MIC) Architecture Intel Many Integrated Core (MIC) Architecture Karl Solchenbach Director European Exascale Labs BMW2011, November 3, 2011 1 Notice and Disclaimers Notice: This document contains information on products

More information

Lecture 12 Transactional Memory

Lecture 12 Transactional Memory CSCI-UA.0480-010 Special Topics: Multicore Programming Lecture 12 Transactional Memory Christopher Mitchell, Ph.D. cmitchell@cs.nyu.edu http://z80.me Database Background Databases have successfully exploited

More information

Intel Parallel Studio 2011

Intel Parallel Studio 2011 THE ULTIMATE ALL-IN-ONE PERFORMANCE TOOLKIT Studio 2011 Product Brief Studio 2011 Accelerate Development of Reliable, High-Performance Serial and Threaded Applications for Multicore Studio 2011 is a comprehensive

More information

Massimiliano Ghilardi

Massimiliano Ghilardi 7 th European Lisp Symposium Massimiliano Ghilardi May 5-6, 2014 IRCAM, Paris, France High performance concurrency in Common Lisp hybrid transactional memory with STMX 2 Beautiful and fast concurrency

More information

Earth Observation, Climate and Space for Smarter Government

Earth Observation, Climate and Space for Smarter Government Earth Observation, Climate and Space for Smarter Government Beth Greenaway, Head of Earth Observation 30 March 2015 http://www.bis.gov.uk/ukspaceagency Overview UK Space Agency EO Importance and priorities

More information

Windows Compute Cluster Server 2003 allows MATLAB users to quickly and easily get up and running with distributed computing tools.

Windows Compute Cluster Server 2003 allows MATLAB users to quickly and easily get up and running with distributed computing tools. Microsoft Windows Compute Cluster Server 2003 Partner Solution Brief Image courtesy of The MathWorks Technical Computing Tools Combined with Cluster Computing Deliver High-Performance Solutions Microsoft

More information

Multithreading in C with OpenMP

Multithreading in C with OpenMP Multithreading in C with OpenMP ICS432 - Spring 2017 Concurrent and High-Performance Programming Henri Casanova (henric@hawaii.edu) Pthreads are good and bad! Multi-threaded programming in C with Pthreads

More information

The Problem with Treads

The Problem with Treads The Problem with Treads Edward A. Lee Programming Technology Lecture 2 11/09/08 Background on Edward A. Lee Bachelors degree (Yale University) (1979) Master degree (MIT) (1981) Ph.D. (U. C. Berkeley) (1986)

More information

OUR VISION To be a global leader of computing research in identified areas that will bring positive impact to the lives of citizens and society.

OUR VISION To be a global leader of computing research in identified areas that will bring positive impact to the lives of citizens and society. Join the Innovation Qatar Computing Research Institute (QCRI) is a national research institute established in 2010 by Qatar Foundation for Education, Science and Community Development. As a primary constituent

More information

Introducing the Administrative Data Research Network. Melanie Wright Administrative Data Service

Introducing the Administrative Data Research Network. Melanie Wright Administrative Data Service Introducing the Administrative Data Research Network Melanie Wright Administrative Data Service Our Structure Four Administrative Data Research Centres (ADRCs), one in each UK country England led by University

More information

Introduction to OpenMP. OpenMP basics OpenMP directives, clauses, and library routines

Introduction to OpenMP. OpenMP basics OpenMP directives, clauses, and library routines Introduction to OpenMP Introduction OpenMP basics OpenMP directives, clauses, and library routines What is OpenMP? What does OpenMP stands for? What does OpenMP stands for? Open specifications for Multi

More information

PARALLEL AND CONCURRENT PROGRAMMING IN HASKELL

PARALLEL AND CONCURRENT PROGRAMMING IN HASKELL Introduction Concurrent Haskell Data Parallel Haskell Miscellenous References PARALLEL AND CONCURRENT PROGRAMMING IN HASKELL AN OVERVIEW Eva Burrows BLDL-Talks Department of Informatics, University of

More information

Threads and Parallelism in Java

Threads and Parallelism in Java Threads and Parallelism in Java Java is one of the few main stream programming languages to explicitly provide for user-programmed parallelism in the form of threads. A Java programmer may organize a program

More information

in Action Fujitsu High Performance Computing Ecosystem Human Centric Innovation Innovation Flexibility Simplicity

in Action Fujitsu High Performance Computing Ecosystem Human Centric Innovation Innovation Flexibility Simplicity Fujitsu High Performance Computing Ecosystem Human Centric Innovation in Action Dr. Pierre Lagier Chief Technology Officer Fujitsu Systems Europe Innovation Flexibility Simplicity INTERNAL USE ONLY 0 Copyright

More information

Note by the Secretary-General CANDIDACY FOR THE POST OF DEPUTY SECRETARY-GENERAL

Note by the Secretary-General CANDIDACY FOR THE POST OF DEPUTY SECRETARY-GENERAL Plenipotentiary Conference (PP-18) Dubai, 29 October 16 November 2018 PLENARY MEETING Document 21-E 12 March 2018 Original: Arabic/Chinese/ English/French/Spanish/ Russian Note by the Secretary-General

More information

Introduction to parallel computers and parallel programming. Introduction to parallel computersand parallel programming p. 1

Introduction to parallel computers and parallel programming. Introduction to parallel computersand parallel programming p. 1 Introduction to parallel computers and parallel programming Introduction to parallel computersand parallel programming p. 1 Content A quick overview of morden parallel hardware Parallelism within a chip

More information

Smart Manufacturing in the Food & Beverage Industry

Smart Manufacturing in the Food & Beverage Industry Smart Manufacturing in the Food & Beverage Industry PUBLIC Copyright 2016 Rockwell Automation, Inc. All Rights Reserved. 1 Rockwell Automation at a Glance $5.9B FISCAL 2016 SALES 22,000 EMPLOYEES 80+ COUNTRIES

More information

Processor speed. Concurrency Structure and Interpretation of Computer Programs. Multiple processors. Processor speed. Mike Phillips <mpp>

Processor speed. Concurrency Structure and Interpretation of Computer Programs. Multiple processors. Processor speed. Mike Phillips <mpp> Processor speed 6.037 - Structure and Interpretation of Computer Programs Mike Phillips Massachusetts Institute of Technology http://en.wikipedia.org/wiki/file:transistor_count_and_moore%27s_law_-

More information

Scheduling Transactions in Replicated Distributed Transactional Memory

Scheduling Transactions in Replicated Distributed Transactional Memory Scheduling Transactions in Replicated Distributed Transactional Memory Junwhan Kim and Binoy Ravindran Virginia Tech USA {junwhan,binoy}@vt.edu CCGrid 2013 Concurrency control on chip multiprocessors significantly

More information

Innovate UK energy strategy - Rob Saunders A joint approach - Christian Inglis The energy systems catapult - Nick Smailes Project Presentations

Innovate UK energy strategy - Rob Saunders A joint approach - Christian Inglis The energy systems catapult - Nick Smailes Project Presentations Our changing energy systems: Supporting innovation Innovate UK energy strategy - Rob Saunders A joint approach - Christian Inglis The energy systems catapult - Nick Smailes Project Presentations May 2015

More information

Simplifying IT through Virtualization

Simplifying IT through Virtualization E X E C U T I V E S U M M A R Y G E T T E C H N O L O G Y R I G H T C U S T O M P U B L I S H I N G Microsoft-powered virtualization offers tremendous potential to help IT executives drive innovation while

More information

Accelerate Your Enterprise Private Cloud Initiative

Accelerate Your Enterprise Private Cloud Initiative Cisco Cloud Comprehensive, enterprise cloud enablement services help you realize a secure, agile, and highly automated infrastructure-as-a-service (IaaS) environment for cost-effective, rapid IT service

More information

CellSs Making it easier to program the Cell Broadband Engine processor

CellSs Making it easier to program the Cell Broadband Engine processor Perez, Bellens, Badia, and Labarta CellSs Making it easier to program the Cell Broadband Engine processor Presented by: Mujahed Eleyat Outline Motivation Architecture of the cell processor Challenges of

More information

Guelph Police Service

Guelph Police Service Guelph Police Service The Guelph Police Service provides policing services to the City of Guelph and has an authorized complement of 196.5 police officers and 89.42 civilians. We serve our community by

More information

OpenFog Consortium. Fog! The Journey so far. Helder Antunes, OpenFog Chairman Cisco Sr. Director

OpenFog Consortium. Fog! The Journey so far. Helder Antunes, OpenFog Chairman Cisco Sr. Director OpenFog Consortium Fog! The Journey so far Helder Antunes, OpenFog Chairman Cisco Sr. Director https://www.youtube.com/watch?v=tuo5pxc4w3c&feature=youtu.be What is fog computing? CLOUD FOG COMPUTING A

More information

Tasks with Effects. A Model for Disciplined Concurrent Programming. Abstract. 1. Motivation

Tasks with Effects. A Model for Disciplined Concurrent Programming. Abstract. 1. Motivation Tasks with Effects A Model for Disciplined Concurrent Programming Stephen Heumann Vikram Adve University of Illinois at Urbana-Champaign {heumann1,vadve}@illinois.edu Abstract Today s widely-used concurrent

More information

Out-of-Order Parallel Simulation of SystemC Models. G. Liu, T. Schmidt, R. Dömer (CECS) A. Dingankar, D. Kirkpatrick (Intel Corp.)

Out-of-Order Parallel Simulation of SystemC Models. G. Liu, T. Schmidt, R. Dömer (CECS) A. Dingankar, D. Kirkpatrick (Intel Corp.) Out-of-Order Simulation of s using Intel MIC Architecture G. Liu, T. Schmidt, R. Dömer (CECS) A. Dingankar, D. Kirkpatrick (Intel Corp.) Speaker: Rainer Dömer doemer@uci.edu Center for Embedded Computer

More information

Parallel Functional Programming Lecture 1. John Hughes

Parallel Functional Programming Lecture 1. John Hughes Parallel Functional Programming Lecture 1 John Hughes Moore s Law (1965) The number of transistors per chip increases by a factor of two every year two years (1975) Number of transistors What shall we

More information

Parallelism Marco Serafini

Parallelism Marco Serafini Parallelism Marco Serafini COMPSCI 590S Lecture 3 Announcements Reviews First paper posted on website Review due by this Wednesday 11 PM (hard deadline) Data Science Career Mixer (save the date!) November

More information

Making the UK the Place for Space

Making the UK the Place for Space Making the UK the Place for Space Update for CEOS WGCV Sept 2014 http://www.bis.gov.uk/ukspaceagency Agenda Agency strategy, policy and organisation Recent developments and progress What s going on at

More information

Extreme I/O Scaling with HDF5

Extreme I/O Scaling with HDF5 Extreme I/O Scaling with HDF5 Quincey Koziol Director of Core Software Development and HPC The HDF Group koziol@hdfgroup.org July 15, 2012 XSEDE 12 - Extreme Scaling Workshop 1 Outline Brief overview of

More information

Synchronization. Announcements. Concurrent Programs. Race Conditions. Race Conditions 11/9/17. Purpose of this lecture. A8 released today, Due: 11/21

Synchronization. Announcements. Concurrent Programs. Race Conditions. Race Conditions 11/9/17. Purpose of this lecture. A8 released today, Due: 11/21 Announcements Synchronization A8 released today, Due: 11/21 Late deadline is after Thanksgiving You can use your A6/A7 solutions or ours A7 correctness scores have been posted Next week's recitation will

More information

Grand Central Dispatch

Grand Central Dispatch A better way to do multicore. (GCD) is a revolutionary approach to multicore computing. Woven throughout the fabric of Mac OS X version 10.6 Snow Leopard, GCD combines an easy-to-use programming model

More information

F# Succinct, Expressive, Efficient. The F# Team Microsoft Developer Division, Redmond Microsoft Research, Cambridge

F# Succinct, Expressive, Efficient. The F# Team Microsoft Developer Division, Redmond Microsoft Research, Cambridge F# Succinct, Expressive, Efficient Functional Programming for.net The F# Team Microsoft Developer Division, Redmond Microsoft Research, Cambridge Topics What is F# about? Some Simple F# Programming A Taste

More information