Microsoft Research Cambridge
|
|
- Claud Maxwell
- 6 years ago
- Views:
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 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 informationCSE 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 informationF# 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 informationWritten 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 informationA 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!
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 informationComposable 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 informationAdvances 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 informationMPI 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 informationHigher 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 informationCOMP3151/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 informationFunctional-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 informationConcurrency: 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 informationConcurrency: 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 informationHP 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 informationSoftware 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 informationTrends 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 informationIBM 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 informationMonitors; 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 informationCSCI-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 informationTackling 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 informationTackling 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 informationPerformance 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 information7 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 informationCOS 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 informationRevisiting 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 informationImproving 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 informationEfficiently 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 information6.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 informationBehavioral 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 informationDavid 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 informationThe 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 informationMultithreading 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 informationAn 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 informationLocks 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 informationSupercomputing 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 informationProgramming 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 informationThreaded 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 informationSoftware 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 informationOverview 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 informationDesign 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 informationHSA 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 informationParallel 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 informationMonitors; 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 informationProgramming 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 informationRandomOps. 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 informationMulticore 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 informationProgramming 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 informationChí 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 informationBig 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 informationA 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 informationTransactifying 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 informationJukka 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 informationExecutive 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 informationSCAD 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 informationDepartment 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 informationProblems 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 informationSMART. 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 informationWhy 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 informationMulti-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
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 informationPredictable 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 informationShared 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 informationAbout. 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 informationSoftware 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 informationParticle-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 informationIntel 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 informationLecture 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 informationIntel 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 informationMassimiliano 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 informationEarth 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 informationWindows 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 informationMultithreading 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 informationThe 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 informationOUR 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 informationIntroducing 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 informationIntroduction 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 informationPARALLEL 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 informationThreads 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 informationin 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 informationNote 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 informationIntroduction 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 informationSmart 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 informationProcessor 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 informationScheduling 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 informationInnovate 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 informationSimplifying 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 informationAccelerate 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 informationCellSs 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 informationGuelph 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 informationOpenFog 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 informationTasks 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 informationOut-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 informationParallel 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 informationParallelism 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 informationMaking 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 informationExtreme 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 informationSynchronization. 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 informationGrand 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 informationF# 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