Compiling for Concise Code and Efficient I/O
|
|
- Scot Snow
- 6 years ago
- Views:
Transcription
1 Compiling for Concise Code and Efficient I/O Sebastian Ertel, Andrés Goens, Justus Adam and Jeronimo Castrillon Chair for Compiler Construction TU Dresden 27th International Conference on Compiler Construction Vienna,
2 Microservice-based Architectures Backend (server) system requirements: scalable, flexible, fault-tolerant 2
3 Microservice-based Architectures Backend (server) system requirements: scalable, flexible, fault-tolerant [ Monolithic server 3
4 Microservice-based Architectures Backend (server) system requirements: scalable, flexible, fault-tolerant [ Monolithic server Microservice: independent function Microservices compose to larger services 4
5 Microservice-based Architectures Backend (server) system requirements: scalable, flexible, fault-tolerant [ Monolithic server [Source: I Love APIs 2015 by Chris Munns, licensed under CC BY 4.0, available at: h p://bit.ly/2zbohtk] Microservice: independent function Microservices compose to larger services 5
6 Microservice-based Architectures Backend (server) system requirements: scalable, flexible, fault-tolerant Cost: Lots of I/O! [ Monolithic server [Source: I Love APIs 2015 by Chris Munns, licensed under CC BY 4.0, available at: h p://bit.ly/2zbohtk] Microservice: independent function Microservices compose to larger services 6
7 Fighting I/O Efficient I/O Concise Code 7
8 Fighting I/O Efficient I/O Batching (& deduplication): 1 I/O call vs. n I/O calls Concise Code 2500 latency [ms] batched sequential # blog posts Concurrency: Computation IO Computation (Caching) 8
9 Fighting I/O 2500 Efficient I/O Batching (& deduplication): 1 I/O call vs. n I/O calls group I/O calls Concise Code Breaks modularity! latency [ms] batched sequential # blog posts Concurrency: Computation IO Computation (Caching) 9
10 Fighting I/O 2500 Efficient I/O Batching (& deduplication): 1 I/O call vs. n I/O calls group I/O calls Concise Code Breaks modularity! latency [ms] # blog posts batched sequential Concurrency: Computation IO Computation (Caching) split up code (e.g. into threads) Introduces optimization aspect (concurrency) into the algorithm! 10
11 Fighting I/O 2500 Efficient I/O Batching (& deduplication): 1 I/O call vs. n I/O calls group I/O calls Concise Code Breaks modularity! latency [ms] # blog posts batched sequential Concurrency: Computation IO Computation (Caching) split up code (e.g. into threads) Batching and concurrency do not easily compose! Introduces optimization aspect (concurrency) into the algorithm! 11
12 Fighting I/O 2500 Efficient I/O Batching (& deduplication): 1 I/O call vs. n I/O calls group I/O calls Concise Code Breaks modularity! latency [ms] batched Release the developer from this burden Compiler-based Approach! sequential # blog posts Concurrency: Computation IO Computation (Caching) split up code (e.g. into threads) Batching and concurrency do not easily compose! Introduces optimization aspect (concurrency) into the algorithm! 12
13 Ÿauhau - A compiler framework for microservices DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation 13
14 Ÿauhau - A compiler framework for microservices DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation Provably semanticpreserving transformations Concurrency (almost) for free 14
15 A minimalistic DSL for microservices DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) map(ƛv.t [v 1 v n ]) 15
16 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) Disclaimer: Presentation diverges from paper for visualization purposes. Data flow graphs before and after the transformations instead of map(ƛv.t [v 1 v n ]) lambda expressions. 16
17 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) ff Grouping independent I/O calls: req io io io ff req io!ff req map(ƛv.t [v 1 v n ]) 17
18 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) ff Grouping independent I/O calls: req io io io ff req io!ff req map(ƛv.t [v 1 v n ]) 18
19 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) Grouping independent I/O calls: Lifting I/O calls: io io ff req io [v 1 v n ] map t io t pam [req t ff 1 req n ] [rsp 1 rsp n ] map req pam map io pam map t io!ff req pam map(ƛv.t [v 1 v n ]) 19
20 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) Grouping independent I/O calls: Lifting I/O calls: io io ff req io [v 1 v n ] map t io t pam [req t ff 1 req n ] [rsp 1 rsp n ] map req pam map io pam map t io!ff req pam map(ƛv.t [v 1 v n ]) 20
21 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) Grouping independent I/O calls: Lifting I/O calls: io io ff req io [v 1 v n ] map t io t pam [req 1 req n ] [rsp 1 rsp n ] map t pam ff req io!ff req map t io!ff req pam map(ƛv.t [v 1 v n ]) 21
22 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) map(ƛv.t [v 1 v n ]) Grouping independent I/O calls: Lifting I/O calls: io io ff req io io [v 1 v n ] map t io t pam [req 1 req n ] [rsp 1 rsp n ] map t pam ff req io!ff req map t condition t io t t t if fi if fi io if t io t t t!ff req pam fi 22
23 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) map(ƛv.t [v 1 v n ]) Grouping independent I/O calls: Lifting I/O calls: io io ff req io io [v 1 v n ] map t io t pam [req 1 req n ] [rsp 1 rsp n ] map t pam ff req io!ff req map t condition t io t t t if fi if fi io if t io t t t!ff req pam fi 23
24 Bringing back Concurrency DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation Computation IO IO IO IO Computation 24
25 Bringing back Concurrency DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation Computation IO [ req src 1 req src m ] io [ src 1 rsp src m rsp]!ff req IO IO ds io src 1 dm [ src 1 rsp src m rsp]!ff req io src m IO Computation ds io src 1 io src m src 1 rsp src m rsp!ff req 25
26 Bringing back Concurrency DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation Computation IO [ req src 1 req src m ] io [ src 1 rsp src m rsp]!ff req IO IO ds io src 1 dm [ src 1 rsp src m rsp]!ff req io src m IO Computation ds io src 1 io src m src 1 rsp src m rsp!ff req 26
27 Bringing back Concurrency DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation Computation IO [ req src 1 req src m ] io [ src 1 rsp src m rsp]!ff req IO IO ds io src 1 io src m dm [ src 1 rsp src m rsp]!ff req io src 1!ff IO Computation ds req io src m src 1 rsp src m rsp 27
28 Use Case: Blog blog leftpane topics popularposts mainpane data dependency I/O group 3 I/O group 2 map io(req PostInfo ) map io(req PostContent ) io(req PostInfo ) map io(req PostViews ) map io(req PostContent ) map io(req PostInfo ) I/O group 1 io(req PostIds ) io(req PostIds ) io(req PostIds ) Version seq base batch full Time [ms] 275 ± ± ± ± 5.2 4x latency improvement! 28
29 Evaluation against State-of-the-art Haxl Facebook s Haskell-based approach on the abstraction of applicative functors. Muse Similar to Twitter s Stitch, Clojure-based implementation of an AST interpretation. Simon Marlow, Louis Brandy, Jonathan Coens, and Jon Purdy There is no fork: an abstraction for efficient, concurrent, and concise data access. ICFP 14. Alexey Kachayev Reinventing Haxl: Efficient, Concurrent and Concise Data Access. Presentation at EuroClojure
30 Got microservices for evaluation? Level-Graphs: level 0 subfunction level 1 x1 x2 req->io compute level 2 x3 level 3 x6 x4 x5 x7 Andrés Goens, Sebastian Ertel, Justus Adam, and Jeronimo Castrillon Level Graphs: Generating Benchmarks for Concurrency Optimizations in Compilers. MULTIPROG
31 Got microservices for evaluation? Level-Graphs: Programs: level 0 subfunction Haxl level 1 level 2 level 3 x6 x1 x2 x3 x4 x5 x7 req->io compute serialize Muse Seq Ÿauhau Andrés Goens, Sebastian Ertel, Justus Adam, and Jeronimo Castrillon Level Graphs: Generating Benchmarks for Concurrency Optimizations in Compilers. MULTIPROG
32 Ÿauhau outperforms State-of-the-art Level-Graphs: level 0 level 1 level 2 x1 x2 x3 level 3 x6 x4 x5 x7 subfunction req->io compute Programs: serialize Haxl Muse Seq Ÿauhau # I/O calls (avg.) haxl muse seq yauhau # graph levels Andrés Goens, Sebastian Ertel, Justus Adam, and Jeronimo Castrillon Level Graphs: Generating Benchmarks for Concurrency Optimizations in Compilers. MULTIPROG
33 Ÿauhau outperforms State-of-the-art Level-Graphs: Programs: level 0 level 1 level 2 x1 x2 x3 level 3 x6 x4 x5 x7 subfunction req->io compute haxl muse yauhau serialize Haxl Muse Seq Ÿauhau # I/O calls (avg.) haxl muse seq yauhau # graph levels haxl (fork) yauhau yauhau (conc I/O) # I/O calls (avg.) prob. of function/algorithm calls Andrés Goens, Sebastian Ertel, Justus Adam, and Jeronimo Castrillon Level Graphs: Generating Benchmarks for Concurrency Optimizations in Compilers. MULTIPROG Service latency [ms] # graph levels
34 Conclusion I/O optimizations performed at the compiler level Efficient I/O Concise Code Use lambda calculus to provide semantic-preserving transformations! Use dataflow for concurrency/parallel execution! Try it out: 34
35 Ÿauhau Code - Blog Use Case 35
36 Level Graphs Code Haxl (< GHC 8) Muse (with Cats) Ÿauhau 36
Compiling for Concise Code and Ecient I/O
Compiling for Concise Code and Ecient I/O Abstract Sebastian Ertel Chair for Compiler Construction Technische Universität Dresden Dresden, Germany sebastianertel@tu-dresdende Justus Adam Chair for Compiler
More informationOhua: Implicit Dataflow Programming for Concurrent Systems
Ohua: Implicit Dataflow Programming for Concurrent Systems Sebastian Ertel Compiler Construction Group TU Dresden, Germany Christof Fetzer Systems Engineering Group TU Dresden, Germany Pascal Felber Institut
More informationOn mapping to multi/manycores
On mapping to multi/manycores Jeronimo Castrillon Chair for Compiler Construction (CCC) TU Dresden, Germany MULTIPROG HiPEAC Conference Stockholm, 24.01.2017 Mapping for dataflow programming models MEM
More informationHaskell in the datacentre! Simon Marlow
Haskell in the datacentre! Simon Marlow Facebook (FHPC 17, September 2017) Haskell powers Sigma Clients A platform for detection Used by many different teams Mainly for anti-abuse e.g. spam, malicious
More informationStop coding Pascal. Saturday, April 6, 13
Stop coding Pascal...emotional sketch about past, present and future of programming languages, Python, compilers, developers, Life, Universe and Everything Alexey Kachayev CTO at KitApps Inc. Open source
More informationSeptember 15th, Finagle + Java. A love story (
September 15th, 2016 Finagle + Java A love story ( ) @mnnakamura hi, I m Moses Nakamura Twitter lives on the JVM When Twitter realized we couldn t stay on a Rails monolith and continue to scale at the
More informationMohamed M. Saad & Binoy Ravindran
Mohamed M. Saad & Binoy Ravindran VT-MENA Program Electrical & Computer Engineering Department Virginia Polytechnic Institute and State University TRANSACT 11 San Jose, CA An operation (or set of operations)
More informationMicroservices without the Servers: AWS Lambda in Action
Microservices without the Servers: AWS Lambda in Action Dr. Tim Wagner, General Manager AWS Lambda August 19, 2015 Seattle, WA 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved Two
More informationZombie Apocalypse Workshop
Zombie Apocalypse Workshop Building Serverless Microservices Danilo Poccia @danilop Paolo Latella @LatellaPaolo September 22 nd, 2016 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
More informationSpark 2. Alexey Zinovyev, Java/BigData Trainer in EPAM
Spark 2 Alexey Zinovyev, Java/BigData Trainer in EPAM With IT since 2007 With Java since 2009 With Hadoop since 2012 With EPAM since 2015 About Secret Word from EPAM itsubbotnik Big Data Training 3 Contacts
More informationText. Parallelism Gabriele Keller University of New South Wales
Text Parallelism Gabriele Keller University of New South Wales Programming Languages Mentoring Workshop 2015 undergrad Karslruhe & Berlin, Germany PhD Berlin & Tsukuba, Japan University of Technology Sydney
More informationWHITEPAPER. Pipelining Machine Learning Models Together
WHITEPAPER Pipelining Machine Learning Models Together Table of Contents Introduction 2 Performance and Organizational Benefits of Pipelining 4 Practical Use Case: Twitter Sentiment Analysis 5 Practical
More informationHaskell for (E)DSLs. Andres Löh. Functional Programming exchange, 16 March Well-Typed LLP
Haskell for (E)DSLs Andres Löh Well-Typed LLP Functional Programming exchange, 16 March 2012 My completely biased world view Languages are everywhere! My completely biased world view Languages are everywhere!
More informationEasy Multicore Programming using MAPS
Easy Multicore Programming using MAPS Jeronimo Castrillon, Maximilian Odendahl Multicore Challenge Conference 2012 September 24 th, 2012 Institute for Communication Technologies and Embedded Systems Outline
More informationExtensible Modeling Languages
Extensible ing Languages Utilizing Libraries for Creation, Use, and Domain-Specific Extensions 5th MODPROD Workshop on -Based Product Development February 8, 2011 Department of Computer and Information
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 informationServerless Architecture Hochskalierbare Anwendungen ohne Server. Sascha Möllering, Solutions Architect
Serverless Architecture Hochskalierbare Anwendungen ohne Server Sascha Möllering, Solutions Architect Agenda Serverless Architecture AWS Lambda Amazon API Gateway Amazon DynamoDB Amazon S3 Serverless Framework
More informationConservative Concurrency in Haskell
Conservative Concurrency in Haskell David Sabel and Manfred Schmidt-Schauß Goethe-University, Frankfurt am Main, Germany LICS 12, Dubrovnik, Croatia Motivation a View on Haskell Purely functional core
More informationEngineering Robust Server Software
Engineering Robust Server Software Scalability Other Scalability Issues Database Load Testing 2 Databases Most server applications use databases Very complex pieces of software Designed for scalability
More informationParallel & Concurrent Haskell 1: Basic Pure Parallelism. Simon Marlow (Microsoft Research, Cambridge, UK)
Parallel & Concurrent Haskell 1: Basic Pure Parallelism Simon Marlow (Microsoft Research, Cambridge, UK) Background The parallelism landscape is getting crowded Every language has their own solution(s)
More informationDenotational Semantics. Domain Theory
Denotational Semantics and Domain Theory 1 / 51 Outline Denotational Semantics Basic Domain Theory Introduction and history Primitive and lifted domains Sum and product domains Function domains Meaning
More informationBuilding Scalable Stateful Services. Craft Conf 2016
Building Scalable Stateful s Craft Conf 2016 Caitie McCaffrey Distributed Systems Engineer @caitie caitiem.com Stateless s Stateless s Stateless s Stateless s Stateless s Stateless s Stateless s Stateless
More informationUsing FPGAs as Microservices
Using FPGAs as Microservices David Ojika, Ann Gordon-Ross, Herman Lam, Bhavesh Patel, Gaurav Kaul, Jayson Strayer (University of Florida, DELL EMC, Intel Corporation) The 9 th Workshop on Big Data Benchmarks,
More informationMultigrain Parallelism: Bridging Coarse- Grain Parallel Languages and Fine-Grain Event-Driven Multithreading
Department of Electrical and Computer Engineering Computer Architecture and Parallel Systems Laboratory - CAPSL Multigrain Parallelism: Bridging Coarse- Grain Parallel Languages and Fine-Grain Event-Driven
More informationProgramming Network Policies by Examples: Platform, Abstraction and User Studies
Programming Network Policies by Examples: Platform, Abstraction and User Studies Boon Thau Loo University of Pennsylvania NetPL workshop @ SIGCOMM 2017 Joint work with Yifei Yuan, Dong Lin, Siri Anil,
More informationProgramming Heterogeneous Embedded Systems for IoT
Programming Heterogeneous Embedded Systems for IoT Jeronimo Castrillon Chair for Compiler Construction TU Dresden jeronimo.castrillon@tu-dresden.de Get-together toward a sustainable collaboration in IoT
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 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 informationProgram generation for schema-based, typed data access
Program generation for schema-based, typed data access Ralf Lämmel Software Engineer Facebook, London Program generation A use case at Facebook Purpose of generation: typed data access ("O/R mapping" et
More informationDataflow: The Road Less Complex
Dataflow: The Road Less Complex Steven Swanson Ken Michelson Andrew Schwerin Mark Oskin University of Washington Sponsored by NSF and Intel Things to keep you up at night (~2016) Opportunities 8 billion
More informationEngineering Robust Server Software
Engineering Robust Server Software Scalability Other Scalability Issues Database Load Testing 2 Databases Most server applications use databases Very complex pieces of software Designed for scalability
More informationGreat Reality #2: You ve Got to Know Assembly Does not generate random values Arithmetic operations have important mathematical properties
Overview Course Overview Course theme Five realities Computer Systems 1 2 Course Theme: Abstraction Is Good But Don t Forget Reality Most CS courses emphasize abstraction Abstract data types Asymptotic
More informationBrief introduction of SocketPro continuous SQL-stream sending and processing system (Part 1: SQLite)
Brief introduction of SocketPro continuous SQL-stream sending and processing system (Part 1: SQLite) Introduction Most of client server database systems only support synchronous communication between client
More informationSystems Architecture. Monolithic Systems
Systems Architecture Monolithic Systems 13 - Monolithic CSC407 1 no architecture Monolithic Systems reports static data imported data dynamic data 13 - Monolithic CSC407 2 1 Examples Most programs you
More informationRed Hat JBoss Enterprise Application Platform 7.1
Red Hat JBoss Enterprise Application Platform 7.1 Introduction to JBoss EAP For Use with Red Hat JBoss Enterprise Application Platform 7.1 Last Updated: 2018-02-08 Red Hat JBoss Enterprise Application
More informationEvaluating BFT Protocols for Spire
Evaluating BFT Protocols for Spire Henry Schuh & Sam Beckley 600.667 Advanced Distributed Systems & Networks SCADA & Spire Overview High-Performance, Scalable Spire Trusted Platform Module Known Network
More informationHi! NET Developer Group Braunschweig!
Hi! NET Developer Group Braunschweig! Über Tobias Dipl. Informatiker (FH) Passionated Software Developer Clean Code Developer.NET Junkie.NET User Group Lead Microsoft PFE Software Development Twitter @Blubern
More informationFirst-class Implementations
First-class Implementations Turtling down Runtime Meta-levels and PCLSRing up François-René Rideau, TUNES Project BostonHaskell, 2016-05-18 http://fare.tunes.org/files/cs/fci-bh2016.pdf 1 This Talk Salvaged
More informationWhat is concurrency? Concurrency. What is parallelism? concurrency vs parallelism. Concurrency: (the illusion of) happening at the same time.
What is concurrency? Concurrency Johan Montelius KTH 2017 Concurrency: (the illusion of) happening at the same time. A property of the programing model. Why would we want to do things concurrently? What
More informationFLICK: Developing and Running Application-Specific Network Services
FLICK: Developing and Running Application-Specific Network Services Presenter: Richard G. Clegg, Imperial College Imperial College: Abdul Alim, Luo Mai, Lukas Rupprecht, Eric Seckler, Paolo Costa, Peter
More informationConcurrency. Johan Montelius KTH
Concurrency Johan Montelius KTH 2017 1 / 32 What is concurrency? 2 / 32 What is concurrency? Concurrency: (the illusion of) happening at the same time. 2 / 32 What is concurrency? Concurrency: (the illusion
More informationTackling Latency via Replication in Distributed Systems
Tackling Latency via Replication in Distributed Systems Zhan Qiu, Imperial College London Juan F. Pe rez, University of Melbourne Peter G. Harrison, Imperial College London ACM/SPEC ICPE 2016 15 th March,
More informationScaling Up Performance Benchmarking
Scaling Up Performance Benchmarking -with SPECjbb2015 Anil Kumar Runtime Performance Architect @Intel, OSG Java Chair Monica Beckwith Runtime Performance Architect @Arm, Java Champion FaaS Serverless Frameworks
More informationCompositional Model Based Software Development
Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability
More informationHaskell in the Software Industry
Haskell in the Software Industry What is Haskell? Haskell in a nutshell Haskell is a pure, non-strict, statically typed, garbage collected, general purpose, functional programming language. Early history
More informationOpenACC Course. Office Hour #2 Q&A
OpenACC Course Office Hour #2 Q&A Q1: How many threads does each GPU core have? A: GPU cores execute arithmetic instructions. Each core can execute one single precision floating point instruction per cycle
More informationThis document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and
Serverless Integration Powered by Flogo and Lambda Leon Stigter Developer Advocate TIBCO 2 Abstract No matter the metric, "serverless" is definitely gaining interest. It s the dream of every developer,
More informationHaskell Functional Programming
Haskell Functional Programming http://igm.univ-mlv.fr/~vialette/?section=teaching Stéphane Vialette LIGM, Université Paris-Est Marne-la-Vallée November 11, 2017 Everybody s talking about functional programming
More informationLeveraging Lock Contention to Improve Transaction Applications. University of Washington
Leveraging Lock Contention to Improve Transaction Applications Cong Yan Alvin Cheung University of Washington Background Pessimistic locking-based CC protocols Poor performance under high data contention
More informationWeb Services Choreography and Process Algebra
Web Services Choreography and Process Algebra 29th April 2004 Steve Ross-Talbot Chief Scientist, Enigmatec Corporation Ltd Chair W3C Web Services Activity Co-chair W3C Web Services Choreography Agenda
More informationArchitectural Styles. Reid Holmes
Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Architectural Styles Reid Holmes Lecture 5 - Tuesday,
More informationScalable Concurrent Hash Tables via Relativistic Programming
Scalable Concurrent Hash Tables via Relativistic Programming Josh Triplett September 24, 2009 Speed of data < Speed of light Speed of light: 3e8 meters/second Processor speed: 3 GHz, 3e9 cycles/second
More informationCSE 124: Networked Services Lecture-17
Fall 2010 CSE 124: Networked Services Lecture-17 Instructor: B. S. Manoj, Ph.D http://cseweb.ucsd.edu/classes/fa10/cse124 11/30/2010 CSE 124 Networked Services Fall 2010 1 Updates PlanetLab experiments
More informationNFSv4 as the Building Block for Fault Tolerant Applications
NFSv4 as the Building Block for Fault Tolerant Applications Alexandros Batsakis Overview Goal: To provide support for recoverability and application fault tolerance through the NFSv4 file system Motivation:
More informationAgenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008
Agenda Threads CSCI 444/544 Operating Systems Fall 2008 Thread concept Thread vs process Thread implementation - user-level - kernel-level - hybrid Inter-process (inter-thread) communication What is Thread
More informationReal-time data processing with Apache Flink
Real-time data processing with Apache Flink Gyula Fóra gyfora@apache.org Flink committer Swedish ICT Stream processing Data stream: Infinite sequence of data arriving in a continuous fashion. Stream processing:
More informationBuilding a Data-Friendly Platform for a Data- Driven Future
Building a Data-Friendly Platform for a Data- Driven Future Benjamin Hindman - @benh 2016 Mesosphere, Inc. All Rights Reserved. INTRO $ whoami BENJAMIN HINDMAN Co-founder and Chief Architect of Mesosphere,
More informationParallelism and runtimes
Parallelism and runtimes Advanced Course on Compilers Spring 2015 (III-V): Lecture 7 Vesa Hirvisalo ESG/CSE/Aalto Today Parallel platforms Concurrency Consistency Examples of parallelism Regularity of
More informationGenerating Fast Data Planes for Data-Intensive Systems
Generating Fast Data Planes for Data-Intensive Systems Shoumik Palkar and Matei Zaharia Stanford DAWN Many New Data Systems We are building many specialized high-performance data systems. Graph Engines
More informationAn Introduction to Software Architecture. David Garlan & Mary Shaw 94
An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data
More informationMulti-threaded Queries. Intra-Query Parallelism in LLVM
Multi-threaded Queries Intra-Query Parallelism in LLVM Multithreaded Queries Intra-Query Parallelism in LLVM Yang Liu Tianqi Wu Hao Li Interpreted vs Compiled (LLVM) Interpreted vs Compiled (LLVM) Interpreted
More informationFall 2012 Parallel Computer Architecture Lecture 15: Speculation I. Prof. Onur Mutlu Carnegie Mellon University 10/10/2012
18-742 Fall 2012 Parallel Computer Architecture Lecture 15: Speculation I Prof. Onur Mutlu Carnegie Mellon University 10/10/2012 Reminder: Review Assignments Was Due: Tuesday, October 9, 11:59pm. Sohi
More informationHigh Performance Managed Languages. Martin Thompson
High Performance Managed Languages Martin Thompson - @mjpt777 Really, what s your preferred platform for building HFT applications? Why would you build low-latency applications on a GC ed platform? Some
More informationThe Remote Monad. Dissertation Defense. Justin Dawson.
The Remote Monad Dissertation Defense Justin Dawson jdawson@ittc.ku.edu Information and Telecommunication Technology Center University of Kansas, USA 1 / 66 Sandwiches! How do you make a sandwich? 2 /
More informationRuntime Support for Scalable Task-parallel Programs
Runtime Support for Scalable Task-parallel Programs Pacific Northwest National Lab xsig workshop May 2018 http://hpc.pnl.gov/people/sriram/ Single Program Multiple Data int main () {... } 2 Task Parallelism
More informationA Combined Semi-Pipelined Query Processing Architecture For Distributed Full-Text Retrieval
A Combined Semi-Pipelined Query Processing Architecture For Distributed Full-Text Retrieval Simon Jonassen and Svein Erik Bratsberg Department of Computer and Information Science Norwegian University of
More informationIntroduction to CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono
Introduction to CUDA Algoritmi e Calcolo Parallelo References q This set of slides is mainly based on: " CUDA Technical Training, Dr. Antonino Tumeo, Pacific Northwest National Laboratory " Slide of Applied
More informationReactive Web Programming
Reactive Web Programming Colin Vidal colin.vidal@inria.fr INRIA Sophia Antipolis Supervisors : Manuel Serrano Gérard Berry December 2, 2015 1 / 14 JavaScript language A mainstream language to write web
More informationLecture 6B Hierarchical/Concurrent State Machine Models (HCFSM)
ECE 474A/57A Computer-Aided Logic Design Outline Models vs. Languages Lecture 6B Hierarchical/Concurrent State Machine Models (HCFSM) State Machine Model FSM/FSMD HCFSM and Statecharts Language Program-State
More informationManaging Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup
Managing Data at Scale: Microservices and Events Randy Shoup @randyshoup linkedin.com/in/randyshoup Background VP Engineering at Stitch Fix o Combining Art and Science to revolutionize apparel retail Consulting
More informationA Quest for Predictable Latency Adventures in Java Concurrency. Martin Thompson
A Quest for Predictable Latency Adventures in Java Concurrency Martin Thompson - @mjpt777 If a system does not respond in a timely manner then it is effectively unavailable 1. It s all about the Blocking
More informationCSE 333 Lecture 1 - Systems programming
CSE 333 Lecture 1 - Systems programming Steve Gribble Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting
More informationCMPSC 311- Introduction to Systems Programming Module: Systems Programming
CMSC 311- Introduction to Systems rogramming Module: Systems rogramming rofessor atrick McDaniel Fall 2013 Software Systems A platform, application, or other structure that: is composed of multiple modules
More informationCombined Object-Lambda Architectures
www.jquigley.com jquigley#jquigley.com Chicago Lisp April 2008 Research Goals System Goals Conventional Systems Unconventional Systems Research Goals Question: How to make with Pepsi and Coke? The Goal:
More informationDeterministic Parallel Programming
Deterministic Parallel Programming Concepts and Practices 04/2011 1 How hard is parallel programming What s the result of this program? What is data race? Should data races be allowed? Initially x = 0
More informationvsan 6.6 Performance Improvements First Published On: Last Updated On:
vsan 6.6 Performance Improvements First Published On: 07-24-2017 Last Updated On: 07-28-2017 1 Table of Contents 1. Overview 1.1.Executive Summary 1.2.Introduction 2. vsan Testing Configuration and Conditions
More informationHadoop. copyright 2011 Trainologic LTD
Hadoop Hadoop is a framework for processing large amounts of data in a distributed manner. It can scale up to thousands of machines. It provides high-availability. Provides map-reduce functionality. Hides
More informationHarp-DAAL for High Performance Big Data Computing
Harp-DAAL for High Performance Big Data Computing Large-scale data analytics is revolutionizing many business and scientific domains. Easy-touse scalable parallel techniques are necessary to process big
More informationDistributed Systems CS6421
Distributed Systems CS6421 Intro to Distributed Systems and the Cloud Prof. Tim Wood v I teach: Software Engineering, Operating Systems, Sr. Design I like: distributed systems, networks, building cool
More informationHigh Performance Web Server in Haskell
High Performance Web Server in Haskell 2011.7.12 IIJ Innovation Institute Inc. Kazu Yamamoto 1 My goal Modular Network Programming on Highly Concurrent Environment 2 Today s talk Will not talk about Modular
More informationUsing Scala for building DSL s
Using Scala for building DSL s Abhijit Sharma Innovation Lab, BMC Software 1 What is a DSL? Domain Specific Language Appropriate abstraction level for domain - uses precise concepts and semantics of domain
More informationIntel Thread Building Blocks
Intel Thread Building Blocks SPD course 2015-16 Massimo Coppola 08/04/2015 1 Thread Building Blocks : History A library to simplify writing thread-parallel programs and debugging them Originated circa
More informationCSE 5306 Distributed Systems
CSE 5306 Distributed Systems Naming Jia Rao http://ranger.uta.edu/~jrao/ 1 Naming Names play a critical role in all computer systems To access resources, uniquely identify entities, or refer to locations
More informationBreaking Down Barriers: An Intro to GPU Synchronization. Matt Pettineo Lead Engine Programmer Ready At Dawn Studios
Breaking Down Barriers: An Intro to GPU Synchronization Matt Pettineo Lead Engine Programmer Ready At Dawn Studios Who am I? Ready At Dawn for 9 years Lead Engine Programmer for 5 I like GPUs and APIs!
More informationKernel Level Speculative DSM
Motivation Main interest is performance, fault-tolerance, and correctness of distributed systems Present our ideas in the context of a DSM system We are developing tools that Improve performance Address
More informationLeveraging Lock Contention to Improve Transaction Applications. University of Washington
Leveraging Lock Contention to Improve Transaction Applications Cong Yan Alvin Cheung University of Washington 1 Background Database transactions Airline ticket reservation, banking, online shopping...
More informationStatic Contract Checking for Haskell
Static Contract Checking for Haskell Dana N. Xu INRIA France Work done at University of Cambridge Simon Peyton Jones Microsoft Research Cambridge Joint work with Koen Claessen Chalmers University of Technology
More informationSemantic Modularization Techniques in Practice: A TAPL case study
1 Semantic Modularization Techniques in Practice: A TAPL case study Bruno C. d. S. Oliveira Joint work with Weixin Zhang, Haoyuan Zhang and Huang Li July 17, 2017 Text 2 EVF: An Extensible and Expressive
More informationCMPSC 311- Introduction to Systems Programming Module: Systems Programming
CMPSC 311- Introduction to Systems Programming Module: Systems Programming Professor Patrick McDaniel Fall 2013 Patrick McDaniel Professor of Computer Science and Engineering Co-head of Security Group
More informationBroker. Matthias Vallentin UC Berkeley International Computer Science Institute (ICSI) BroCon '16
Broker Matthias Vallentin UC Berkeley International Computer Science Institute (ICSI) BroCon '16 Communication in Bro Exploiting Independent State For Network Intrusion Detection Tap Broccoli, Independent
More informationExecution Architecture
Execution Architecture Software Architecture VO (706.706) Roman Kern Institute for Interactive Systems and Data Science, TU Graz 2018-11-07 Roman Kern (ISDS, TU Graz) Execution Architecture 2018-11-07
More informationBefore proceeding with this tutorial, you must have a good understanding of Core Java and any of the Linux flavors.
About the Tutorial Storm was originally created by Nathan Marz and team at BackType. BackType is a social analytics company. Later, Storm was acquired and open-sourced by Twitter. In a short time, Apache
More informationMICROKERNELS: MACH AND L4
1 MICROKERNELS: MACH AND L4 CS6410 Hakim Weatherspoon Introduction to Kernels Different Types of Kernel Designs Monolithic kernel Microkernel Hybrid Kernel Exokernel Virtual Machines? Monolithic Kernels
More informationDynamic analysis in the Reduceron. Matthew Naylor and Colin Runciman University of York
Dynamic analysis in the Reduceron Matthew Naylor and Colin Runciman University of York A question I wonder how popular Haskell needs to become for Intel to optimize their processors for my runtime, rather
More informationUrmas Tamm Tartu 2013
The implementation and optimization of functional languages Urmas Tamm Tartu 2013 Intro The implementation of functional programming languages, Simon L. Peyton Jones, 1987 Miranda fully lazy strict a predecessor
More informationBuilding a high-performance, scalable ML & NLP platform with Python. Sheer El Showk CTO, Lore Ai
Building a high-performance, scalable ML & NLP platform with Python Sheer El Showk CTO, Lore Ai www.lore.ai Lore is a small startup focused on developing and applying machine-learning techniques to solve
More informationUsing Haskell at Bdellium
Using Haskell at Bdellium Parallelism, Lenses, Pipes and Industry Report A note about me (Fredrik Olsen) Studied Engineering Physics at LTH Started working for Bdellium in 2011 We help business grow Developing
More informationNetwork Function Virtualization in GTS
Nordic Infrastructure for Research & Education Network Function Virtualization in GTS Richard Cziva University of Glasgow NORDUnet Network Function Virtualization Moving network services from hardware
More informationThe API is dead. Long live the protocol.
The API is dead. Long live the protocol. We need to add messaging to... Developers don't know who to trust or have a clear methodology. Messaging is complex and developers spend a lot of time
More informationHigh Performance Computing on GPUs using NVIDIA CUDA
High Performance Computing on GPUs using NVIDIA CUDA Slides include some material from GPGPU tutorial at SIGGRAPH2007: http://www.gpgpu.org/s2007 1 Outline Motivation Stream programming Simplified HW and
More information