SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
MBrace: Cloud Computing with Monads
Jan Dzik

Nick Palladinos Kostas Rontogiannis
Eirik Tsarpalis Nikolaos Vathis
Nessos Information Technologies, SA

7th Workshop on Programming Languages
and Operating Systems
November 3, 2013

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

1 / 29
Introduction

Motivation

Motivation

Distributed Computation is Challenging.
Key to success: choose the right distribution framework.
Each framework tied to particular programming abstraction.
Map-Reduce, Actor model, Dataflow model, etc.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

2 / 29
Introduction

Motivation

Established distributed frameworks

Restrict to specific distribution patterns.
Not expressive enough for certain classes of algorithms.
Difficult to influence task granularity.
Time consuming to deploy, manage and debug.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

3 / 29
Introduction

What is MBrace?

What is MBrace?

1

A new programming model for the cloud.

2

An elastic, fault tolerant, multitasking cluster infrastructure.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

4 / 29
Introduction

In This Talk

In This Talk

Concentrate on the programming model.
Distributed Computation.
Distributed Data.

Benchmarks.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

5 / 29
The MBrace Programming Model

The Cloud Monad

The MBrace Programming Model

A monad for composing distribution workflows.
Essentially a continuation monad that admits distribution.
Based on F# computation expressions.
Inspired by the successful F# asynchronous workflows.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

6 / 29
The MBrace Programming Model

The Cloud Monad

A Basic cloud workflow

let download (url : string) = cloud {
let client = new System.Net.WebClient()
let content = client.DownloadString(url)
return content
} : Cloud<string>

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

7 / 29
The MBrace Programming Model

The Cloud Monad

Composing cloud workflows

let downloadSequential () = cloud {
let! c1 = download "http://m-brace.net/"
let! c2 = download "http://nessos.gr/"
let c = c1 + c2
return c
}

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

8 / 29
The MBrace Programming Model

Distribution Combinators

Parallel Composition

let downloadParallel () = cloud {
let! c1,c2 =
download "http://m-brace.net/"
<||>
download "http://nessos.gr/"
return c1 + c2
}

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

9 / 29
The MBrace Programming Model

Distribution Combinators

Distribution Primitives: an overview

Binary parallel operator:
<||> : Cloud<'T> -> Cloud<'U> -> Cloud<'T * 'U>
Variadic parallel combinator:
Cloud.Parallel : Cloud<'T> [] -> Cloud<'T []>
Non-deterministic parallel combinator:
Cloud.Choice : Cloud<'T option> [] -> Cloud<'T option>

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

10 / 29
The MBrace Programming Model

Additional Constructs

Cloud Monad: additional constructs

Monadic for loops.
Monadic while loops.
Monadic exception handling.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

11 / 29
The MBrace Programming Model

Additional Constructs

Example: Inverse squares
let inverseSquares (inputs : int []) = cloud {
let jobs : Cloud<float> [] =
[|
for i in inputs ->
cloud { return 1.0 / float (i * i) }
|]
try
let! results = Cloud.Parallel jobs
return Array.sum results
with :? DivideByZeroException ->
return -1.0
}
Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

12 / 29
The MBrace Programming Model

Evaluation in the Cloud

How is it all executed?

Scheduler/worker cluster organization.
Symbolic execution stack (free monad/trampolines).
Scheduler interprets “monadic skeleton”.
Native “leaf expressions” dispatched to workers.
Symbolic stack winds across multiple machines.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

13 / 29
The MBrace Programming Model

Map-Reduce

A Map-Reduce implementation
let rec mapReduce (map : 'T -> Cloud<'R>)
(reduce : 'R -> 'R -> Cloud<'R>)
(identity : 'R)
(input : 'T list) =
cloud {
match input with
| [] -> return identity
| [value] -> return! map value
| _ ->
let left, right = List.split input
let! r1, r2 =
(mapReduce map reduce identity left)
<||>
(mapReduce map reduce identity right)
return! reduce r1 r2
}
Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

14 / 29
The Distributed Data Programming Model

Introduction

What about Data Distribution?

MBrace does NOT include a storage service (for now).
Relies on third-party storage services.
Storage Provider plugin architecture.
Out-of-the-box support for FileSystem, SQL and Azure.
Future support for HDFS and Amazon S3.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

15 / 29
The Distributed Data Programming Model

The MBrace Data Programming Model

The MBrace Data Programming Model

Storage services interfaced through data primitives.
Data primitives act as references to distributed resources.
Initialized or updated through the monad.
Come in immutable or mutable flavors.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

16 / 29
The Distributed Data Programming Model

Cloud Ref

Cloud Ref

Simplest distributed data primitive of MBrace.
Generic reference to a stored value.
Conceptually similar to ML ref cells.
Immutable by design.
Cached in worker nodes for performance.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

17 / 29
The Distributed Data Programming Model

Cloud Ref

Cloud Ref: Example

let createRef (inputs : int []) = cloud {
let! ref = CloudRef.New inputs
return ref : CloudRef<int []>
}

let deRef (ref : CloudRef<int []>) = cloud {
let content = ref.Value
return content : int []
}

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

18 / 29
The Distributed Data Programming Model

Cloud Ref

Application: Data Sharding
type DistribTree<'T> =
| Leaf of 'T
| Branch of CloudRef<DistribTree<'T>> *
CloudRef<DistribTree<'T>>
let rec map (f : 'T -> 'S) (tree : DistribTree<'T>) =
cloud {
match tree with
| Leaf t -> return! CloudRef.New (Leaf (f t))
| Branch(l,r) ->
let! l', r' = map f l.Value <||> map f r.Value
return! CloudRef.New (Branch(l',r'))
}

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

19 / 29
The Distributed Data Programming Model

Cloud File

Cloud File

References files in the distributed store.
Untyped, immutable, binary blobs.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

20 / 29
The Distributed Data Programming Model

Cloud File

Cloud File : Example

let getSize (file : CloudFile) = cloud {
let! bytes = CloudFile.ReadAllBytes file
return bytes.Length / 1024
}

cloud {
let! files = CloudDir.GetFiles "/path/to/files"
let jobs = Array.map getSize files
let! sizes = Cloud.Parallel jobs
return Array.sum sizes
}

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

21 / 29
The MBrace Framework

Performance

Performance

We tested MBrace against Hadoop.
Both frameworks were run on Windows Azure.
Clusters consisted of 4, 8, 16 and 32 quad-core nodes.
Two algorithms were tested, grep and k-means.
Source code available on github.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

22 / 29
The MBrace Framework

Performance

Distributed Grep (Windows Azure)

Count occurrences of given pattern from input files.
Straightforward Map-Reduce algorithm.
Input data was 32, 64, 128 and 256 GB of text.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

23 / 29
The MBrace Framework

Performance

Distributed Grep (Windows Azure)
400

Time (sec)

300

200

100
MBrace
Hadoop
0

20

Eirik Tsarpalis (Nessos IT)

40

60
80
worker cores

100

MBrace: Cloud Computing with Monads

120

PLOS ’13

24 / 29
The MBrace Framework

Performance

k-means Clustering (Windows Azure)

Centroid computation out of a set of vectors.
Iterative algorithm.
Not naturally definable with Map-Reduce workflows.
Hadoop implementation from Apache Mahout library.
Input was 106 , randomly generated, 100-dimensional points.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

25 / 29
The MBrace Framework

Performance

k-means Clustering (Windows Azure)
MBrace
Hadoop

Time (sec)

1,500

1,000

500

0

20

Eirik Tsarpalis (Nessos IT)

40

60
80
worker cores

MBrace: Cloud Computing with Monads

100

120

PLOS ’13

26 / 29
Conclusions & Future Work

Conclusions

A big data platform for the .NET framework.
Language-integrated cloud workflows.
User-specifiable parallelism patterns and task granularity.
Distributed exception handling.
Pluggable storage services.
Data API integrated with programming model.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

27 / 29
Conclusions & Future Work

Future Work

Improved C# support.
A rich library of combinators and parallelism patterns.
A LINQ provider for data parallelism.

Support for the Mono framework and Linux.

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

28 / 29
Conclusions & Future Work

Thank You!

Questions?

http://m-brace.net

Eirik Tsarpalis (Nessos IT)

MBrace: Cloud Computing with Monads

PLOS ’13

29 / 29

Contenu connexe

Tendances

Design Pattern of HBase Configuration
Design Pattern of HBase ConfigurationDesign Pattern of HBase Configuration
Design Pattern of HBase ConfigurationDan Han
 
CloudLightning Simulator
CloudLightning SimulatorCloudLightning Simulator
CloudLightning SimulatorCloudLightning
 
Qiu bosc2010
Qiu bosc2010Qiu bosc2010
Qiu bosc2010BOSC 2010
 
Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...
Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...
Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...inside-BigData.com
 
Relational Algebra and MapReduce
Relational Algebra and MapReduceRelational Algebra and MapReduce
Relational Algebra and MapReducePietro Michiardi
 
HP - Jerome Rolia - Hadoop World 2010
HP - Jerome Rolia - Hadoop World 2010HP - Jerome Rolia - Hadoop World 2010
HP - Jerome Rolia - Hadoop World 2010Cloudera, Inc.
 
06 how to write a map reduce version of k-means clustering
06 how to write a map reduce version of k-means clustering06 how to write a map reduce version of k-means clustering
06 how to write a map reduce version of k-means clusteringSubhas Kumar Ghosh
 
NUMA-optimized Parallel Breadth-first Search on Multicore Single-node System
NUMA-optimized Parallel Breadth-first Search on Multicore Single-node SystemNUMA-optimized Parallel Breadth-first Search on Multicore Single-node System
NUMA-optimized Parallel Breadth-first Search on Multicore Single-node SystemYuichiro Yasui
 
Ddp Cs3.0 Solar System
Ddp Cs3.0 Solar SystemDdp Cs3.0 Solar System
Ddp Cs3.0 Solar Systemboonzaai
 
12. Map | WeakMap | ES6 | JavaScript | Typescript
12. Map | WeakMap | ES6 | JavaScript | Typescript12. Map | WeakMap | ES6 | JavaScript | Typescript
12. Map | WeakMap | ES6 | JavaScript | Typescriptpcnmtutorials
 
Introducing Novel Graph Database Cloud Computing For Efficient Data Management
Introducing Novel Graph Database Cloud Computing For Efficient Data ManagementIntroducing Novel Graph Database Cloud Computing For Efficient Data Management
Introducing Novel Graph Database Cloud Computing For Efficient Data ManagementIJERA Editor
 
Jgrass-Newage net radiation component
Jgrass-Newage  net radiation component Jgrass-Newage  net radiation component
Jgrass-Newage net radiation component Marialaura Bancheri
 
Point cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihangPoint cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihangLihang Li
 

Tendances (20)

Design Pattern of HBase Configuration
Design Pattern of HBase ConfigurationDesign Pattern of HBase Configuration
Design Pattern of HBase Configuration
 
CloudLightning Simulator
CloudLightning SimulatorCloudLightning Simulator
CloudLightning Simulator
 
Qiu bosc2010
Qiu bosc2010Qiu bosc2010
Qiu bosc2010
 
Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...
Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...
Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...
 
Relational Algebra and MapReduce
Relational Algebra and MapReduceRelational Algebra and MapReduce
Relational Algebra and MapReduce
 
Dice presents-feb2014
Dice presents-feb2014Dice presents-feb2014
Dice presents-feb2014
 
HP - Jerome Rolia - Hadoop World 2010
HP - Jerome Rolia - Hadoop World 2010HP - Jerome Rolia - Hadoop World 2010
HP - Jerome Rolia - Hadoop World 2010
 
Quiz 2
Quiz 2Quiz 2
Quiz 2
 
06 how to write a map reduce version of k-means clustering
06 how to write a map reduce version of k-means clustering06 how to write a map reduce version of k-means clustering
06 how to write a map reduce version of k-means clustering
 
NUMA-optimized Parallel Breadth-first Search on Multicore Single-node System
NUMA-optimized Parallel Breadth-first Search on Multicore Single-node SystemNUMA-optimized Parallel Breadth-first Search on Multicore Single-node System
NUMA-optimized Parallel Breadth-first Search on Multicore Single-node System
 
Ddp Cs3.0 Solar System
Ddp Cs3.0 Solar SystemDdp Cs3.0 Solar System
Ddp Cs3.0 Solar System
 
JGrass-Newage SWRB
JGrass-Newage SWRBJGrass-Newage SWRB
JGrass-Newage SWRB
 
12. Map | WeakMap | ES6 | JavaScript | Typescript
12. Map | WeakMap | ES6 | JavaScript | Typescript12. Map | WeakMap | ES6 | JavaScript | Typescript
12. Map | WeakMap | ES6 | JavaScript | Typescript
 
Introducing Novel Graph Database Cloud Computing For Efficient Data Management
Introducing Novel Graph Database Cloud Computing For Efficient Data ManagementIntroducing Novel Graph Database Cloud Computing For Efficient Data Management
Introducing Novel Graph Database Cloud Computing For Efficient Data Management
 
EECSCon Poster
EECSCon PosterEECSCon Poster
EECSCon Poster
 
Jgrass-Newage net radiation component
Jgrass-Newage  net radiation component Jgrass-Newage  net radiation component
Jgrass-Newage net radiation component
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 
Point cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihangPoint cloud mesh-investigation_report-lihang
Point cloud mesh-investigation_report-lihang
 
Report
ReportReport
Report
 
Saga.lng
Saga.lngSaga.lng
Saga.lng
 

En vedette

Flexible (subsidiaries) models for funding open access in journal publishing
Flexible (subsidiaries) models for funding open access in journal publishingFlexible (subsidiaries) models for funding open access in journal publishing
Flexible (subsidiaries) models for funding open access in journal publishing@cristobalcobo
 
Rethinking the Functions of a Journal - some case studies from PLoS by Mark P...
Rethinking the Functions of a Journal - some case studies from PLoS by Mark P...Rethinking the Functions of a Journal - some case studies from PLoS by Mark P...
Rethinking the Functions of a Journal - some case studies from PLoS by Mark P...dduin
 
PLoS - Why It is a Model to be Emulated
PLoS - Why It is a Model to be EmulatedPLoS - Why It is a Model to be Emulated
PLoS - Why It is a Model to be EmulatedPhilip Bourne
 
Open Access in the biomedical field - the rise of PloS ONE by Nathalie Duchange
Open Access in the biomedical field - the rise of PloS ONE by Nathalie DuchangeOpen Access in the biomedical field - the rise of PloS ONE by Nathalie Duchange
Open Access in the biomedical field - the rise of PloS ONE by Nathalie DuchangeMyScienceWork
 
OpenAIRE-COAR conference 2014: Content Mining in Practice: Challenges and opp...
OpenAIRE-COAR conference 2014: Content Mining in Practice: Challenges and opp...OpenAIRE-COAR conference 2014: Content Mining in Practice: Challenges and opp...
OpenAIRE-COAR conference 2014: Content Mining in Practice: Challenges and opp...OpenAIRE
 
Case Study: Public Library of Science Thesaurus: Year One
Case Study: Public Library of Science Thesaurus: Year OneCase Study: Public Library of Science Thesaurus: Year One
Case Study: Public Library of Science Thesaurus: Year OneAccess Innovations, Inc.
 
Using Formal Models For Analysis Of Biological Pathways
Using Formal Models For Analysis Of Biological PathwaysUsing Formal Models For Analysis Of Biological Pathways
Using Formal Models For Analysis Of Biological PathwaysIPALab
 

En vedette (8)

Flexible (subsidiaries) models for funding open access in journal publishing
Flexible (subsidiaries) models for funding open access in journal publishingFlexible (subsidiaries) models for funding open access in journal publishing
Flexible (subsidiaries) models for funding open access in journal publishing
 
PLOS Visualization Project
PLOS Visualization ProjectPLOS Visualization Project
PLOS Visualization Project
 
Rethinking the Functions of a Journal - some case studies from PLoS by Mark P...
Rethinking the Functions of a Journal - some case studies from PLoS by Mark P...Rethinking the Functions of a Journal - some case studies from PLoS by Mark P...
Rethinking the Functions of a Journal - some case studies from PLoS by Mark P...
 
PLoS - Why It is a Model to be Emulated
PLoS - Why It is a Model to be EmulatedPLoS - Why It is a Model to be Emulated
PLoS - Why It is a Model to be Emulated
 
Open Access in the biomedical field - the rise of PloS ONE by Nathalie Duchange
Open Access in the biomedical field - the rise of PloS ONE by Nathalie DuchangeOpen Access in the biomedical field - the rise of PloS ONE by Nathalie Duchange
Open Access in the biomedical field - the rise of PloS ONE by Nathalie Duchange
 
OpenAIRE-COAR conference 2014: Content Mining in Practice: Challenges and opp...
OpenAIRE-COAR conference 2014: Content Mining in Practice: Challenges and opp...OpenAIRE-COAR conference 2014: Content Mining in Practice: Challenges and opp...
OpenAIRE-COAR conference 2014: Content Mining in Practice: Challenges and opp...
 
Case Study: Public Library of Science Thesaurus: Year One
Case Study: Public Library of Science Thesaurus: Year OneCase Study: Public Library of Science Thesaurus: Year One
Case Study: Public Library of Science Thesaurus: Year One
 
Using Formal Models For Analysis Of Biological Pathways
Using Formal Models For Analysis Of Biological PathwaysUsing Formal Models For Analysis Of Biological Pathways
Using Formal Models For Analysis Of Biological Pathways
 

Similaire à Mbrace plos-slides final

MBrace: Large-scale cloud computation with F# (CUFP 2014)
MBrace: Large-scale cloud computation with F# (CUFP 2014)MBrace: Large-scale cloud computation with F# (CUFP 2014)
MBrace: Large-scale cloud computation with F# (CUFP 2014)Eirik George Tsarpalis
 
Cloud computing and CloudStack
Cloud computing and CloudStackCloud computing and CloudStack
Cloud computing and CloudStackMahbub Noor Bappy
 
An Introduction to Cloud Computing by Robert Grossman 08-06-09 (v19)
An Introduction to Cloud Computing by Robert Grossman 08-06-09 (v19)An Introduction to Cloud Computing by Robert Grossman 08-06-09 (v19)
An Introduction to Cloud Computing by Robert Grossman 08-06-09 (v19)Robert Grossman
 
Towards CloudML, a Model-Based Approach to Provision Resources in the Clouds
Towards CloudML, a Model-Based Approach  to Provision Resources in the CloudsTowards CloudML, a Model-Based Approach  to Provision Resources in the Clouds
Towards CloudML, a Model-Based Approach to Provision Resources in the CloudsSébastien Mosser
 
Programmable Exascale Supercomputer
Programmable Exascale SupercomputerProgrammable Exascale Supercomputer
Programmable Exascale SupercomputerSagar Dolas
 
Dataservices - Processing Big Data The Microservice Way
Dataservices - Processing Big Data The Microservice WayDataservices - Processing Big Data The Microservice Way
Dataservices - Processing Big Data The Microservice WayJosef Adersberger
 
GREEN CLOUD COMPUTING
GREEN CLOUD COMPUTINGGREEN CLOUD COMPUTING
GREEN CLOUD COMPUTINGJauwadSyed
 
A Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelA Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelJenny Liu
 
Unified Big Data Processing with Apache Spark (QCON 2014)
Unified Big Data Processing with Apache Spark (QCON 2014)Unified Big Data Processing with Apache Spark (QCON 2014)
Unified Big Data Processing with Apache Spark (QCON 2014)Databricks
 
«Дизайн продвинутых нереляционных схем для Big Data»
«Дизайн продвинутых нереляционных схем для Big Data»«Дизайн продвинутых нереляционных схем для Big Data»
«Дизайн продвинутых нереляционных схем для Big Data»Olga Lavrentieva
 
Map Reduce in the Clouds (http://salsahpc.indiana.edu/mapreduceroles4azure/)
Map Reduce in the Clouds (http://salsahpc.indiana.edu/mapreduceroles4azure/)Map Reduce in the Clouds (http://salsahpc.indiana.edu/mapreduceroles4azure/)
Map Reduce in the Clouds (http://salsahpc.indiana.edu/mapreduceroles4azure/)Thilina Gunarathne
 
Simplifying Big Data Analytics with Apache Spark
Simplifying Big Data Analytics with Apache SparkSimplifying Big Data Analytics with Apache Spark
Simplifying Big Data Analytics with Apache SparkDatabricks
 
From Cloud to Fog: the Tao of IT Infrastructure Decentralization
From Cloud to Fog: the Tao of IT Infrastructure DecentralizationFrom Cloud to Fog: the Tao of IT Infrastructure Decentralization
From Cloud to Fog: the Tao of IT Infrastructure DecentralizationFogGuru MSCA Project
 
k-means algorithm implementation on Hadoop
k-means algorithm implementation on Hadoopk-means algorithm implementation on Hadoop
k-means algorithm implementation on HadoopStratos Gounidellis
 
DDGK: Learning Graph Representations for Deep Divergence Graph Kernels
DDGK: Learning Graph Representations for Deep Divergence Graph KernelsDDGK: Learning Graph Representations for Deep Divergence Graph Kernels
DDGK: Learning Graph Representations for Deep Divergence Graph Kernelsivaderivader
 
NoSQL and Cloud Services - Philip Balinow, Comfo
NoSQL and Cloud Services -  Philip Balinow, ComfoNoSQL and Cloud Services -  Philip Balinow, Comfo
NoSQL and Cloud Services - Philip Balinow, ComfobeITconference
 

Similaire à Mbrace plos-slides final (20)

MBrace: Large-scale cloud computation with F# (CUFP 2014)
MBrace: Large-scale cloud computation with F# (CUFP 2014)MBrace: Large-scale cloud computation with F# (CUFP 2014)
MBrace: Large-scale cloud computation with F# (CUFP 2014)
 
MBrace: Cloud Computing with F#
MBrace: Cloud Computing with F#MBrace: Cloud Computing with F#
MBrace: Cloud Computing with F#
 
Cloud computing and CloudStack
Cloud computing and CloudStackCloud computing and CloudStack
Cloud computing and CloudStack
 
An Introduction to Cloud Computing by Robert Grossman 08-06-09 (v19)
An Introduction to Cloud Computing by Robert Grossman 08-06-09 (v19)An Introduction to Cloud Computing by Robert Grossman 08-06-09 (v19)
An Introduction to Cloud Computing by Robert Grossman 08-06-09 (v19)
 
Towards CloudML, a Model-Based Approach to Provision Resources in the Clouds
Towards CloudML, a Model-Based Approach  to Provision Resources in the CloudsTowards CloudML, a Model-Based Approach  to Provision Resources in the Clouds
Towards CloudML, a Model-Based Approach to Provision Resources in the Clouds
 
Programmable Exascale Supercomputer
Programmable Exascale SupercomputerProgrammable Exascale Supercomputer
Programmable Exascale Supercomputer
 
Green cloud computing
Green  cloud computingGreen  cloud computing
Green cloud computing
 
Dataservices - Processing Big Data The Microservice Way
Dataservices - Processing Big Data The Microservice WayDataservices - Processing Big Data The Microservice Way
Dataservices - Processing Big Data The Microservice Way
 
GREEN CLOUD COMPUTING
GREEN CLOUD COMPUTINGGREEN CLOUD COMPUTING
GREEN CLOUD COMPUTING
 
A Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelA Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in Parallel
 
Unified Big Data Processing with Apache Spark (QCON 2014)
Unified Big Data Processing with Apache Spark (QCON 2014)Unified Big Data Processing with Apache Spark (QCON 2014)
Unified Big Data Processing with Apache Spark (QCON 2014)
 
Cross cloud map reduce for big data
Cross cloud map reduce for big dataCross cloud map reduce for big data
Cross cloud map reduce for big data
 
«Дизайн продвинутых нереляционных схем для Big Data»
«Дизайн продвинутых нереляционных схем для Big Data»«Дизайн продвинутых нереляционных схем для Big Data»
«Дизайн продвинутых нереляционных схем для Big Data»
 
Map Reduce in the Clouds (http://salsahpc.indiana.edu/mapreduceroles4azure/)
Map Reduce in the Clouds (http://salsahpc.indiana.edu/mapreduceroles4azure/)Map Reduce in the Clouds (http://salsahpc.indiana.edu/mapreduceroles4azure/)
Map Reduce in the Clouds (http://salsahpc.indiana.edu/mapreduceroles4azure/)
 
Simplifying Big Data Analytics with Apache Spark
Simplifying Big Data Analytics with Apache SparkSimplifying Big Data Analytics with Apache Spark
Simplifying Big Data Analytics with Apache Spark
 
From Cloud to Fog: the Tao of IT Infrastructure Decentralization
From Cloud to Fog: the Tao of IT Infrastructure DecentralizationFrom Cloud to Fog: the Tao of IT Infrastructure Decentralization
From Cloud to Fog: the Tao of IT Infrastructure Decentralization
 
Tut hemant ns2
Tut hemant ns2Tut hemant ns2
Tut hemant ns2
 
k-means algorithm implementation on Hadoop
k-means algorithm implementation on Hadoopk-means algorithm implementation on Hadoop
k-means algorithm implementation on Hadoop
 
DDGK: Learning Graph Representations for Deep Divergence Graph Kernels
DDGK: Learning Graph Representations for Deep Divergence Graph KernelsDDGK: Learning Graph Representations for Deep Divergence Graph Kernels
DDGK: Learning Graph Representations for Deep Divergence Graph Kernels
 
NoSQL and Cloud Services - Philip Balinow, Comfo
NoSQL and Cloud Services -  Philip Balinow, ComfoNoSQL and Cloud Services -  Philip Balinow, Comfo
NoSQL and Cloud Services - Philip Balinow, Comfo
 

Dernier

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 

Dernier (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 

Mbrace plos-slides final

  • 1. MBrace: Cloud Computing with Monads Jan Dzik Nick Palladinos Kostas Rontogiannis Eirik Tsarpalis Nikolaos Vathis Nessos Information Technologies, SA 7th Workshop on Programming Languages and Operating Systems November 3, 2013 Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 1 / 29
  • 2. Introduction Motivation Motivation Distributed Computation is Challenging. Key to success: choose the right distribution framework. Each framework tied to particular programming abstraction. Map-Reduce, Actor model, Dataflow model, etc. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 2 / 29
  • 3. Introduction Motivation Established distributed frameworks Restrict to specific distribution patterns. Not expressive enough for certain classes of algorithms. Difficult to influence task granularity. Time consuming to deploy, manage and debug. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 3 / 29
  • 4. Introduction What is MBrace? What is MBrace? 1 A new programming model for the cloud. 2 An elastic, fault tolerant, multitasking cluster infrastructure. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 4 / 29
  • 5. Introduction In This Talk In This Talk Concentrate on the programming model. Distributed Computation. Distributed Data. Benchmarks. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 5 / 29
  • 6. The MBrace Programming Model The Cloud Monad The MBrace Programming Model A monad for composing distribution workflows. Essentially a continuation monad that admits distribution. Based on F# computation expressions. Inspired by the successful F# asynchronous workflows. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 6 / 29
  • 7. The MBrace Programming Model The Cloud Monad A Basic cloud workflow let download (url : string) = cloud { let client = new System.Net.WebClient() let content = client.DownloadString(url) return content } : Cloud<string> Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 7 / 29
  • 8. The MBrace Programming Model The Cloud Monad Composing cloud workflows let downloadSequential () = cloud { let! c1 = download "http://m-brace.net/" let! c2 = download "http://nessos.gr/" let c = c1 + c2 return c } Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 8 / 29
  • 9. The MBrace Programming Model Distribution Combinators Parallel Composition let downloadParallel () = cloud { let! c1,c2 = download "http://m-brace.net/" <||> download "http://nessos.gr/" return c1 + c2 } Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 9 / 29
  • 10. The MBrace Programming Model Distribution Combinators Distribution Primitives: an overview Binary parallel operator: <||> : Cloud<'T> -> Cloud<'U> -> Cloud<'T * 'U> Variadic parallel combinator: Cloud.Parallel : Cloud<'T> [] -> Cloud<'T []> Non-deterministic parallel combinator: Cloud.Choice : Cloud<'T option> [] -> Cloud<'T option> Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 10 / 29
  • 11. The MBrace Programming Model Additional Constructs Cloud Monad: additional constructs Monadic for loops. Monadic while loops. Monadic exception handling. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 11 / 29
  • 12. The MBrace Programming Model Additional Constructs Example: Inverse squares let inverseSquares (inputs : int []) = cloud { let jobs : Cloud<float> [] = [| for i in inputs -> cloud { return 1.0 / float (i * i) } |] try let! results = Cloud.Parallel jobs return Array.sum results with :? DivideByZeroException -> return -1.0 } Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 12 / 29
  • 13. The MBrace Programming Model Evaluation in the Cloud How is it all executed? Scheduler/worker cluster organization. Symbolic execution stack (free monad/trampolines). Scheduler interprets “monadic skeleton”. Native “leaf expressions” dispatched to workers. Symbolic stack winds across multiple machines. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 13 / 29
  • 14. The MBrace Programming Model Map-Reduce A Map-Reduce implementation let rec mapReduce (map : 'T -> Cloud<'R>) (reduce : 'R -> 'R -> Cloud<'R>) (identity : 'R) (input : 'T list) = cloud { match input with | [] -> return identity | [value] -> return! map value | _ -> let left, right = List.split input let! r1, r2 = (mapReduce map reduce identity left) <||> (mapReduce map reduce identity right) return! reduce r1 r2 } Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 14 / 29
  • 15. The Distributed Data Programming Model Introduction What about Data Distribution? MBrace does NOT include a storage service (for now). Relies on third-party storage services. Storage Provider plugin architecture. Out-of-the-box support for FileSystem, SQL and Azure. Future support for HDFS and Amazon S3. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 15 / 29
  • 16. The Distributed Data Programming Model The MBrace Data Programming Model The MBrace Data Programming Model Storage services interfaced through data primitives. Data primitives act as references to distributed resources. Initialized or updated through the monad. Come in immutable or mutable flavors. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 16 / 29
  • 17. The Distributed Data Programming Model Cloud Ref Cloud Ref Simplest distributed data primitive of MBrace. Generic reference to a stored value. Conceptually similar to ML ref cells. Immutable by design. Cached in worker nodes for performance. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 17 / 29
  • 18. The Distributed Data Programming Model Cloud Ref Cloud Ref: Example let createRef (inputs : int []) = cloud { let! ref = CloudRef.New inputs return ref : CloudRef<int []> } let deRef (ref : CloudRef<int []>) = cloud { let content = ref.Value return content : int [] } Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 18 / 29
  • 19. The Distributed Data Programming Model Cloud Ref Application: Data Sharding type DistribTree<'T> = | Leaf of 'T | Branch of CloudRef<DistribTree<'T>> * CloudRef<DistribTree<'T>> let rec map (f : 'T -> 'S) (tree : DistribTree<'T>) = cloud { match tree with | Leaf t -> return! CloudRef.New (Leaf (f t)) | Branch(l,r) -> let! l', r' = map f l.Value <||> map f r.Value return! CloudRef.New (Branch(l',r')) } Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 19 / 29
  • 20. The Distributed Data Programming Model Cloud File Cloud File References files in the distributed store. Untyped, immutable, binary blobs. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 20 / 29
  • 21. The Distributed Data Programming Model Cloud File Cloud File : Example let getSize (file : CloudFile) = cloud { let! bytes = CloudFile.ReadAllBytes file return bytes.Length / 1024 } cloud { let! files = CloudDir.GetFiles "/path/to/files" let jobs = Array.map getSize files let! sizes = Cloud.Parallel jobs return Array.sum sizes } Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 21 / 29
  • 22. The MBrace Framework Performance Performance We tested MBrace against Hadoop. Both frameworks were run on Windows Azure. Clusters consisted of 4, 8, 16 and 32 quad-core nodes. Two algorithms were tested, grep and k-means. Source code available on github. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 22 / 29
  • 23. The MBrace Framework Performance Distributed Grep (Windows Azure) Count occurrences of given pattern from input files. Straightforward Map-Reduce algorithm. Input data was 32, 64, 128 and 256 GB of text. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 23 / 29
  • 24. The MBrace Framework Performance Distributed Grep (Windows Azure) 400 Time (sec) 300 200 100 MBrace Hadoop 0 20 Eirik Tsarpalis (Nessos IT) 40 60 80 worker cores 100 MBrace: Cloud Computing with Monads 120 PLOS ’13 24 / 29
  • 25. The MBrace Framework Performance k-means Clustering (Windows Azure) Centroid computation out of a set of vectors. Iterative algorithm. Not naturally definable with Map-Reduce workflows. Hadoop implementation from Apache Mahout library. Input was 106 , randomly generated, 100-dimensional points. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 25 / 29
  • 26. The MBrace Framework Performance k-means Clustering (Windows Azure) MBrace Hadoop Time (sec) 1,500 1,000 500 0 20 Eirik Tsarpalis (Nessos IT) 40 60 80 worker cores MBrace: Cloud Computing with Monads 100 120 PLOS ’13 26 / 29
  • 27. Conclusions & Future Work Conclusions A big data platform for the .NET framework. Language-integrated cloud workflows. User-specifiable parallelism patterns and task granularity. Distributed exception handling. Pluggable storage services. Data API integrated with programming model. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 27 / 29
  • 28. Conclusions & Future Work Future Work Improved C# support. A rich library of combinators and parallelism patterns. A LINQ provider for data parallelism. Support for the Mono framework and Linux. Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 28 / 29
  • 29. Conclusions & Future Work Thank You! Questions? http://m-brace.net Eirik Tsarpalis (Nessos IT) MBrace: Cloud Computing with Monads PLOS ’13 29 / 29