MBrace[1] is a .NET open-source framework and runtime which introduces a novel programming model for performing large scale computations in public, private and hybrid cloud computing environments. MBrace is inspired by the programming paradigm of asynchronous workflows as introduced in the F# programming language while borrowing ideas from CloudHaskell and HdpH. MBrace is written entirely in F# and provides bindings for F# and C#.

MBrace
Original author(s)Nessos Information Technologies SA
Stable release
1.5.4 / September 2017 (2017-09)
Written inF#
Operating systemAzure, Windows/.NET, OS X/Mono (software)
Typebig data / big computation framework
LicenseApache License 2.0
Websitewww.m-brace.net

Overview edit

MBrace is a programming model and framework powered by the .NET software stack that is suitable for distributed programming. Based on the F# programming language, it offers an expressive and integrated way of developing, deploying and debugging large-scale computations running in cloud environments.[2] MBrace is capable of distributing arbitrary code and offers native access to the rich collection of tested libraries offered with the underlying .NET framework. MBrace draws heavy inspiration from the Haskell community, especially from the work on concurrency/parallelism and shares many similar ideas with the HdpH project. Its programming model is founded on the premise that monads, in a recursive higher-order language, offer a rich substrate for expressing many different kinds of algorithmic patterns (i.e.: MapReduce, streaming, iterative or incremental algorithms) which can be defined at the user level as libraries, without the need to change any underlying runtime infrastructure.

Distinguishing features edit

MBrace offers a series of unique features such as:

  • Bigger scope: MBrace provides a unified experience for authoring various kinds of algorithms. While other frameworks focus on more specific algorithms or patterns (e.g. MapReduce, actors). MBrace provides such algorithms as extensions (i.e.: the workflow library implementing MapReduce) which can be combined and tweaked by the users.
  • Centralized deployment,[3] monitoring and debugging: MBrace provides a shell[4] that can be used for centralized monitoring and deployment without the need of batch files, manual copying, etc.
  • Concise and succinct algorithm development: The code developed using MBrace is not cluttered by orchestration details which makes code maintenance and debugging less cumbersome while its programming model enables less experienced users to tackle with big data and HPC algorithms.

References edit

  1. ^ Dzik, Jan; Palladinos, Nick; Rontogiannis, Konstantinos; Tsarpalis, Eirik; Vathis, Nikolaos (November 3, 2013). "MBrace: Cloud Computing with Monads" (PDF). Proceedings of the Seventh Workshop on Programming Languages and Operating Systems. doi:10.1145/2525528.2525531. S2CID 13579521.
  2. ^ Tsarpalis, Eirik George (March 30, 2014). "MBrace: Cloud Computing with F#". slideshare.net. Retrieved August 27, 2015.
  3. ^ Hall, Alena (May 19, 2015). "Functional approach to distributed computations and Big Data with F# MBrace cloud monads. Part 2".
  4. ^ "mbrace - sneak preview". youtube.com/watch?v=fmTagG6MNPQ. mbraceTV. September 3, 2012. Retrieved August 27, 2015.

External links edit