SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Cloud Computing with F#
 Athens based ISV company
 Specialize in the .NET framework and C#/F#
 Various business fields
◦ Business process management
◦ GIS
◦ Application framework development
 R&D Development
◦ OR Mappers
◦ MBrace and related frameworks
◦ Open Source development
About Nessos IT
What is MBrace?
 A Programming Model.
◦ Leverages the power of the F# language.
◦ Inspired by F#’s asynchronous workflows.
◦ Declarative, compositional, higher-order.
 A Cluster Infrastructure.
◦ Based on the .NET framework.
◦ Elastic, fault tolerant, multitasking.
HelloWorld
The MBrace Programming Model
val hello : Cloud<unit>
let hello = cloud {
printfn "hello, world!"
return ()
}
MBrace.CreateProcess <@ hello @>
Sequential Composition
The MBrace Programming Model
let first = cloud { return 15 }
let second = cloud { return 27 }
cloud {
let! x = first
let! y = second
return x + y
}
Example : Sequential fold
The MBrace Programming Model
val foldl :
('S -> 'T -> Cloud<'S>) ->
'S -> 'T list -> Cloud<'S>
let rec foldl f s ts = cloud {
match ts with
| [] -> return s
| t :: ts' ->
let! s' = f s t
return! foldl f s' ts'
}
ParallelComposition
The MBrace Programming Model
val (<||>) : Cloud<'T> -> Cloud<'S> -> Cloud<'S * 'T>
cloud {
let first = cloud { return 15 }
let second = cloud { return 27 }
let! x,y = first <||> second
return x + y
}
ParallelComposition (Variadic)
The MBrace Programming Model
val Cloud.Parallel : Cloud<'T> [] -> Cloud<'T []>
cloud {
let sqr x = cloud { return x * x }
let jobs = Array.map sqr [|1 .. 100|]
let! sqrs = Cloud.Parallel jobs
return Array.sum sqrs
}
Non-Deterministic Parallelism
The MBrace Programming Model
val Cloud.Choice : Cloud<'T option> [] -> Cloud<'T option>
let tryPick (f : 'T -> Cloud<'S option>) (ts : 'T []) =
cloud {
let jobs = Array.map f ts
return! Cloud.Choice jobs
}
Exception handling
The MBrace Programming Model
let first = cloud { return 17 }
let second = cloud { return 25 / 0 }
cloud {
try
let! x,y = first <||> second
return x + y
with :? DivideByZeroException ->
return -1
}
Example: Map-Reduce
The MBrace Programming Model
let mapReduce (mapF : 'T -> ICloud<'S>)
(reduceF : 'S -> 'S -> ICloud<'S>)
(identity : 'S) (inputs : 'T list) =
let rec aux inputs = cloud {
match inputs with
| [] -> return identity
| [t] -> return! mapF t
| _ ->
let left,right = List.split inputs
let! s1, s2 = aux left <||> aux right
return! reduceF s1 s2
}
aux inputs
Demo 1
About that MapReduce workflow…
About that MapReduce workflow…
 Communication Overhead.
◦ Data captured in cloud workflow closures.
◦ Needlessly passed between worker machines.
 Granularity issues.
◦ Each input entails a scheduling decision by the cluster.
◦ Cluster size not taken into consideration.
◦ Multicore capacity of worker nodes ignored.
The Cloud Ref
Distributed Data in MBrace
let createRef (data : string list) = cloud {
let! cref = CloudRef.New data
return cref : CloudRef<string list>
}
let deRef (cref : CloudRef<string list>) = cloud {
return cref.Value
}
The Cloud Ref
Distributed Data in MBrace
 Simplest data primitive in MBrace.
 References a value stored in the cluster.
 Conceptually similar to ML ref types.
 Immutable by design.
 Values cached in worker nodes for performance.
Disposable types
Distributed Data in MBrace
cloud {
use! data = CloudRef.New [| 1 .. 1000000 |]
let! x,y = doSomething data <||> doSomethingElse data
return x + y
}
Demo 2
Performance
 We tested MBrace against Hadoop.
 Tests were staged onWindows Azure.
 Clusters of 4, 8, 16 and 32 Large Azure instances.
 Two algorithms were tested, grep and k-means.
 Source code available on github.
Distributed grep
Performance
 Find occurrences of given pattern in text files.
 Straightforward Map-Reduce algorithm.
 Input data was 32, 64, 128 and 256 GB of text.
Distributed grep
Performance
 Find occurrences of given pattern in text files.
 Straightforward Map-Reduce algorithm.
 Input data was 32, 64, 128 and 256 GB of text.
Distributed grep
Performance
K-means
Performance
 Centroid computation out of a set of vectors.
 Iterative algorithm.
 Not naturally describable in Map-Reduce workflows.
 Hadoop implementation using Apache Mahout.
 Input was 106
, randomly generated 100-dimensional
points.
K-means
Performance
Future
 Better C# support.
◦ LinqOptimizer, LinqOptimizer.GPU andCloudLINQ.
◦ Support for the upcoming C# interactive.
 Open Source.
◦ FsPickler,Thespian, CloudLINQ, etc.
components of MBrace already published.
 Mono/Linux support.
http://github.com/nessos
Find more at
http://www.m-brace.net

Weitere ähnliche Inhalte

Was ist angesagt?

End-to-end Big Data Projects with Python - StampedeCon Big Data Conference 2017
End-to-end Big Data Projects with Python - StampedeCon Big Data Conference 2017End-to-end Big Data Projects with Python - StampedeCon Big Data Conference 2017
End-to-end Big Data Projects with Python - StampedeCon Big Data Conference 2017StampedeCon
 
Incremental and parallel computation of structural graph summaries for evolvi...
Incremental and parallel computation of structural graph summaries for evolvi...Incremental and parallel computation of structural graph summaries for evolvi...
Incremental and parallel computation of structural graph summaries for evolvi...Till Blume
 
Rethinking metrics: metrics 2.0 @ Lisa 2014
Rethinking metrics: metrics 2.0 @ Lisa 2014Rethinking metrics: metrics 2.0 @ Lisa 2014
Rethinking metrics: metrics 2.0 @ Lisa 2014Dieter Plaetinck
 
Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...
Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...
Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...InfluxData
 
Anders Nielsen AD Model-Builder
Anders Nielsen AD Model-BuilderAnders Nielsen AD Model-Builder
Anders Nielsen AD Model-BuilderDavid LeBauer
 
Anders Nielsen template model-builder
Anders Nielsen template model-builderAnders Nielsen template model-builder
Anders Nielsen template model-builderDavid LeBauer
 
Explore ML Beginner Session on Linear Regression
Explore ML Beginner Session on Linear RegressionExplore ML Beginner Session on Linear Regression
Explore ML Beginner Session on Linear Regressionvaishnaviayyappan
 
Hw5 2017-spring
Hw5 2017-springHw5 2017-spring
Hw5 2017-spring奕安 陳
 
lecture 6
lecture 6lecture 6
lecture 6sajinsc
 
Essence of the iterator pattern
Essence of the iterator patternEssence of the iterator pattern
Essence of the iterator patternMarkus Klink
 
Graphite, an introduction
Graphite, an introductionGraphite, an introduction
Graphite, an introductionjamesrwu
 
NUS-ISS Learning Day 2019-Pandas in the cloud
NUS-ISS Learning Day 2019-Pandas in the cloudNUS-ISS Learning Day 2019-Pandas in the cloud
NUS-ISS Learning Day 2019-Pandas in the cloudNUS-ISS
 
How to use Map() Filter() and Reduce() functions in Python | Edureka
How to use Map() Filter() and Reduce() functions in Python | EdurekaHow to use Map() Filter() and Reduce() functions in Python | Edureka
How to use Map() Filter() and Reduce() functions in Python | EdurekaEdureka!
 

Was ist angesagt? (19)

Matlab Nn Intro
Matlab Nn IntroMatlab Nn Intro
Matlab Nn Intro
 
End-to-end Big Data Projects with Python - StampedeCon Big Data Conference 2017
End-to-end Big Data Projects with Python - StampedeCon Big Data Conference 2017End-to-end Big Data Projects with Python - StampedeCon Big Data Conference 2017
End-to-end Big Data Projects with Python - StampedeCon Big Data Conference 2017
 
Incremental and parallel computation of structural graph summaries for evolvi...
Incremental and parallel computation of structural graph summaries for evolvi...Incremental and parallel computation of structural graph summaries for evolvi...
Incremental and parallel computation of structural graph summaries for evolvi...
 
Rethinking metrics: metrics 2.0 @ Lisa 2014
Rethinking metrics: metrics 2.0 @ Lisa 2014Rethinking metrics: metrics 2.0 @ Lisa 2014
Rethinking metrics: metrics 2.0 @ Lisa 2014
 
Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...
Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...
Barbara Nelson [InfluxData] | How Can I Put That Dashboard in My App? | Influ...
 
Matlab integration
Matlab integrationMatlab integration
Matlab integration
 
Advanced R Graphics
Advanced R GraphicsAdvanced R Graphics
Advanced R Graphics
 
Anders Nielsen AD Model-Builder
Anders Nielsen AD Model-BuilderAnders Nielsen AD Model-Builder
Anders Nielsen AD Model-Builder
 
Anders Nielsen template model-builder
Anders Nielsen template model-builderAnders Nielsen template model-builder
Anders Nielsen template model-builder
 
Matlab bode diagram_instructions
Matlab bode diagram_instructionsMatlab bode diagram_instructions
Matlab bode diagram_instructions
 
Explore ML Beginner Session on Linear Regression
Explore ML Beginner Session on Linear RegressionExplore ML Beginner Session on Linear Regression
Explore ML Beginner Session on Linear Regression
 
Data structure
Data structureData structure
Data structure
 
Hw5 2017-spring
Hw5 2017-springHw5 2017-spring
Hw5 2017-spring
 
lecture 6
lecture 6lecture 6
lecture 6
 
Graphite
GraphiteGraphite
Graphite
 
Essence of the iterator pattern
Essence of the iterator patternEssence of the iterator pattern
Essence of the iterator pattern
 
Graphite, an introduction
Graphite, an introductionGraphite, an introduction
Graphite, an introduction
 
NUS-ISS Learning Day 2019-Pandas in the cloud
NUS-ISS Learning Day 2019-Pandas in the cloudNUS-ISS Learning Day 2019-Pandas in the cloud
NUS-ISS Learning Day 2019-Pandas in the cloud
 
How to use Map() Filter() and Reduce() functions in Python | Edureka
How to use Map() Filter() and Reduce() functions in Python | EdurekaHow to use Map() Filter() and Reduce() functions in Python | Edureka
How to use Map() Filter() and Reduce() functions in Python | Edureka
 

Andere mochten auch

La Voz De La Marca Case Study El Corte Ingles Y Media Contacts Javier Barrio ...
La Voz De La Marca Case Study El Corte Ingles Y Media Contacts Javier Barrio ...La Voz De La Marca Case Study El Corte Ingles Y Media Contacts Javier Barrio ...
La Voz De La Marca Case Study El Corte Ingles Y Media Contacts Javier Barrio ...Eyeblaster Spain
 
Antonio Romero i Andía
Antonio Romero i Andía Antonio Romero i Andía
Antonio Romero i Andía joansoco
 
F# Type Provider for R Statistical Platform
F# Type Provider for R Statistical PlatformF# Type Provider for R Statistical Platform
F# Type Provider for R Statistical PlatformHoward Mansell
 
Scalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedInScalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedInVitaly Gordon
 
Data Workflows for Machine Learning - Seattle DAML
Data Workflows for Machine Learning - Seattle DAMLData Workflows for Machine Learning - Seattle DAML
Data Workflows for Machine Learning - Seattle DAMLPaco Nathan
 
Building a scalable data science platform with R
Building a scalable data science platform with RBuilding a scalable data science platform with R
Building a scalable data science platform with RRevolution Analytics
 
Deep learning with C++ - an introduction to tiny-dnn
Deep learning with C++  - an introduction to tiny-dnnDeep learning with C++  - an introduction to tiny-dnn
Deep learning with C++ - an introduction to tiny-dnnTaiga Nomi
 

Andere mochten auch (7)

La Voz De La Marca Case Study El Corte Ingles Y Media Contacts Javier Barrio ...
La Voz De La Marca Case Study El Corte Ingles Y Media Contacts Javier Barrio ...La Voz De La Marca Case Study El Corte Ingles Y Media Contacts Javier Barrio ...
La Voz De La Marca Case Study El Corte Ingles Y Media Contacts Javier Barrio ...
 
Antonio Romero i Andía
Antonio Romero i Andía Antonio Romero i Andía
Antonio Romero i Andía
 
F# Type Provider for R Statistical Platform
F# Type Provider for R Statistical PlatformF# Type Provider for R Statistical Platform
F# Type Provider for R Statistical Platform
 
Scalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedInScalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedIn
 
Data Workflows for Machine Learning - Seattle DAML
Data Workflows for Machine Learning - Seattle DAMLData Workflows for Machine Learning - Seattle DAML
Data Workflows for Machine Learning - Seattle DAML
 
Building a scalable data science platform with R
Building a scalable data science platform with RBuilding a scalable data science platform with R
Building a scalable data science platform with R
 
Deep learning with C++ - an introduction to tiny-dnn
Deep learning with C++  - an introduction to tiny-dnnDeep learning with C++  - an introduction to tiny-dnn
Deep learning with C++ - an introduction to tiny-dnn
 

Ähnlich wie MBrace: Cloud Computing with F#

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
 
Apache Spark Introduction - CloudxLab
Apache Spark Introduction - CloudxLabApache Spark Introduction - CloudxLab
Apache Spark Introduction - CloudxLabAbhinav Singh
 
Go Programming Patterns
Go Programming PatternsGo Programming Patterns
Go Programming PatternsHao Chen
 
Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELJoel Falcou
 
Introduction to matlab lecture 4 of 4
Introduction to matlab lecture 4 of 4Introduction to matlab lecture 4 of 4
Introduction to matlab lecture 4 of 4Randa Elanwar
 
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
 
Big Data Analytics with Scala at SCALA.IO 2013
Big Data Analytics with Scala at SCALA.IO 2013Big Data Analytics with Scala at SCALA.IO 2013
Big Data Analytics with Scala at SCALA.IO 2013Samir Bessalah
 
ClojureScript: The Good Parts
ClojureScript: The Good PartsClojureScript: The Good Parts
ClojureScript: The Good PartsKent Ohashi
 
Introduction to Map-Reduce Programming with Hadoop
Introduction to Map-Reduce Programming with HadoopIntroduction to Map-Reduce Programming with Hadoop
Introduction to Map-Reduce Programming with HadoopDilum Bandara
 
k-means algorithm implementation on Hadoop
k-means algorithm implementation on Hadoopk-means algorithm implementation on Hadoop
k-means algorithm implementation on HadoopStratos Gounidellis
 
ComputeFest 2012: Intro To R for Physical Sciences
ComputeFest 2012: Intro To R for Physical SciencesComputeFest 2012: Intro To R for Physical Sciences
ComputeFest 2012: Intro To R for Physical Sciencesalexstorer
 
Apache Lens at Hadoop meetup
Apache Lens at Hadoop meetupApache Lens at Hadoop meetup
Apache Lens at Hadoop meetupamarsri
 
CS 354 Transformation, Clipping, and Culling
CS 354 Transformation, Clipping, and CullingCS 354 Transformation, Clipping, and Culling
CS 354 Transformation, Clipping, and CullingMark Kilgard
 
Basic of octave matlab programming language
Basic of octave matlab programming languageBasic of octave matlab programming language
Basic of octave matlab programming languageAulia Khalqillah
 
Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...
Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...
Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...Raffi Khatchadourian
 

Ähnlich wie MBrace: Cloud Computing with F# (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 plos-slides final
Mbrace plos-slides finalMbrace plos-slides final
Mbrace plos-slides final
 
Spark training-in-bangalore
Spark training-in-bangaloreSpark training-in-bangalore
Spark training-in-bangalore
 
Oct.22nd.Presentation.Final
Oct.22nd.Presentation.FinalOct.22nd.Presentation.Final
Oct.22nd.Presentation.Final
 
Apache Spark Introduction - CloudxLab
Apache Spark Introduction - CloudxLabApache Spark Introduction - CloudxLab
Apache Spark Introduction - CloudxLab
 
Go Programming Patterns
Go Programming PatternsGo Programming Patterns
Go Programming Patterns
 
Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSEL
 
Introduction to matlab lecture 4 of 4
Introduction to matlab lecture 4 of 4Introduction to matlab lecture 4 of 4
Introduction to matlab lecture 4 of 4
 
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
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlab
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlab
 
Big Data Analytics with Scala at SCALA.IO 2013
Big Data Analytics with Scala at SCALA.IO 2013Big Data Analytics with Scala at SCALA.IO 2013
Big Data Analytics with Scala at SCALA.IO 2013
 
ClojureScript: The Good Parts
ClojureScript: The Good PartsClojureScript: The Good Parts
ClojureScript: The Good Parts
 
Introduction to Map-Reduce Programming with Hadoop
Introduction to Map-Reduce Programming with HadoopIntroduction to Map-Reduce Programming with Hadoop
Introduction to Map-Reduce Programming with Hadoop
 
k-means algorithm implementation on Hadoop
k-means algorithm implementation on Hadoopk-means algorithm implementation on Hadoop
k-means algorithm implementation on Hadoop
 
ComputeFest 2012: Intro To R for Physical Sciences
ComputeFest 2012: Intro To R for Physical SciencesComputeFest 2012: Intro To R for Physical Sciences
ComputeFest 2012: Intro To R for Physical Sciences
 
Apache Lens at Hadoop meetup
Apache Lens at Hadoop meetupApache Lens at Hadoop meetup
Apache Lens at Hadoop meetup
 
CS 354 Transformation, Clipping, and Culling
CS 354 Transformation, Clipping, and CullingCS 354 Transformation, Clipping, and Culling
CS 354 Transformation, Clipping, and Culling
 
Basic of octave matlab programming language
Basic of octave matlab programming languageBasic of octave matlab programming language
Basic of octave matlab programming language
 
Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...
Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...
Towards Safe Automated Refactoring of Imperative Deep Learning Programs to Gr...
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Kürzlich hochgeladen (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

MBrace: Cloud Computing with F#

  • 2.  Athens based ISV company  Specialize in the .NET framework and C#/F#  Various business fields ◦ Business process management ◦ GIS ◦ Application framework development  R&D Development ◦ OR Mappers ◦ MBrace and related frameworks ◦ Open Source development About Nessos IT
  • 3. What is MBrace?  A Programming Model. ◦ Leverages the power of the F# language. ◦ Inspired by F#’s asynchronous workflows. ◦ Declarative, compositional, higher-order.  A Cluster Infrastructure. ◦ Based on the .NET framework. ◦ Elastic, fault tolerant, multitasking.
  • 4. HelloWorld The MBrace Programming Model val hello : Cloud<unit> let hello = cloud { printfn "hello, world!" return () } MBrace.CreateProcess <@ hello @>
  • 5. Sequential Composition The MBrace Programming Model let first = cloud { return 15 } let second = cloud { return 27 } cloud { let! x = first let! y = second return x + y }
  • 6. Example : Sequential fold The MBrace Programming Model val foldl : ('S -> 'T -> Cloud<'S>) -> 'S -> 'T list -> Cloud<'S> let rec foldl f s ts = cloud { match ts with | [] -> return s | t :: ts' -> let! s' = f s t return! foldl f s' ts' }
  • 7. ParallelComposition The MBrace Programming Model val (<||>) : Cloud<'T> -> Cloud<'S> -> Cloud<'S * 'T> cloud { let first = cloud { return 15 } let second = cloud { return 27 } let! x,y = first <||> second return x + y }
  • 8. ParallelComposition (Variadic) The MBrace Programming Model val Cloud.Parallel : Cloud<'T> [] -> Cloud<'T []> cloud { let sqr x = cloud { return x * x } let jobs = Array.map sqr [|1 .. 100|] let! sqrs = Cloud.Parallel jobs return Array.sum sqrs }
  • 9. Non-Deterministic Parallelism The MBrace Programming Model val Cloud.Choice : Cloud<'T option> [] -> Cloud<'T option> let tryPick (f : 'T -> Cloud<'S option>) (ts : 'T []) = cloud { let jobs = Array.map f ts return! Cloud.Choice jobs }
  • 10. Exception handling The MBrace Programming Model let first = cloud { return 17 } let second = cloud { return 25 / 0 } cloud { try let! x,y = first <||> second return x + y with :? DivideByZeroException -> return -1 }
  • 11. Example: Map-Reduce The MBrace Programming Model let mapReduce (mapF : 'T -> ICloud<'S>) (reduceF : 'S -> 'S -> ICloud<'S>) (identity : 'S) (inputs : 'T list) = let rec aux inputs = cloud { match inputs with | [] -> return identity | [t] -> return! mapF t | _ -> let left,right = List.split inputs let! s1, s2 = aux left <||> aux right return! reduceF s1 s2 } aux inputs
  • 13. About that MapReduce workflow…
  • 14. About that MapReduce workflow…  Communication Overhead. ◦ Data captured in cloud workflow closures. ◦ Needlessly passed between worker machines.  Granularity issues. ◦ Each input entails a scheduling decision by the cluster. ◦ Cluster size not taken into consideration. ◦ Multicore capacity of worker nodes ignored.
  • 15. The Cloud Ref Distributed Data in MBrace let createRef (data : string list) = cloud { let! cref = CloudRef.New data return cref : CloudRef<string list> } let deRef (cref : CloudRef<string list>) = cloud { return cref.Value }
  • 16. The Cloud Ref Distributed Data in MBrace  Simplest data primitive in MBrace.  References a value stored in the cluster.  Conceptually similar to ML ref types.  Immutable by design.  Values cached in worker nodes for performance.
  • 17. Disposable types Distributed Data in MBrace cloud { use! data = CloudRef.New [| 1 .. 1000000 |] let! x,y = doSomething data <||> doSomethingElse data return x + y }
  • 19. Performance  We tested MBrace against Hadoop.  Tests were staged onWindows Azure.  Clusters of 4, 8, 16 and 32 Large Azure instances.  Two algorithms were tested, grep and k-means.  Source code available on github.
  • 20. Distributed grep Performance  Find occurrences of given pattern in text files.  Straightforward Map-Reduce algorithm.  Input data was 32, 64, 128 and 256 GB of text.
  • 21. Distributed grep Performance  Find occurrences of given pattern in text files.  Straightforward Map-Reduce algorithm.  Input data was 32, 64, 128 and 256 GB of text.
  • 23. K-means Performance  Centroid computation out of a set of vectors.  Iterative algorithm.  Not naturally describable in Map-Reduce workflows.  Hadoop implementation using Apache Mahout.  Input was 106 , randomly generated 100-dimensional points.
  • 25. Future  Better C# support. ◦ LinqOptimizer, LinqOptimizer.GPU andCloudLINQ. ◦ Support for the upcoming C# interactive.  Open Source. ◦ FsPickler,Thespian, CloudLINQ, etc. components of MBrace already published.  Mono/Linux support.