The {m}brace framework is a .NET based software stack that enables easy large-scale distributed computation and big data analysis.
In short, {m}brace offers the following things:

  • A new paradigm for programming declarative and concise distributed algorithms.
  • A scalable execution runtime that can handle cloud applications either inside private data centers or service providers like Windows Azure or Amazon EC2.
  • Comprehensive tooling and libraries that enable interactive, REPL-style deployment, monitoring, management and debugging of cloud computations, all without ever leaving the Visual Studio IDE.

A cloud framework for .NET

{m}brace offers solid and seamless integration with the whole .NET ecosystem. Libraries written in any CLS-compliant language and {m}brace APIs are easily accessible and interoperable without marshalling issues or any other cost.

Declarative

The {m}brace framework provides an elegant programming interface that permits high-level declaration of distributed algorithms. Its use of simple combinators makes it possible to compose complex parallelism patterns (sequential composition, fork/join parallelism, nodeterministic searches, local execution, etc). The {m}brace runtime will interpret such cloud expressions and transparently allocate workers for pending jobs.

As an example, the following snippet computes a sum of squares in a parallel fashion:

cloud {
   let jobs = [| for i in 1 .. 100 -> cloud { return i * i } |]
   let! results = Cloud.Parallel jobs
   return Array.sum results
}

Visual Studio integration

The {m}brace interactive Shell is an F# interpreter that enables on-the-fly declaration and deployment of cloud code that also doubles as an administrator console for the {m}brace runtime. And since it all seamlessly integrates with Microsoft’s Visual Studio, the cloud can be fully utilized without ever leaving the IDE environment.

Library Support

The {m}brace programming paradigm enables the rapid creation of flexible and generic library functions. {m}brace ships with an open-source library that includes variants of map-reduce and nondeterministic search combinators.

Runtime

The {m}brace runtime is responsible for scheduling cloud applications in the data center. It supports multiple, concurrently executing and isolated cloud processes that can be managed much in the sense of a task manager in the cloud. The runtime can handle elastic computation scenarios and offers fault tolerance against hardware failure.

Functional

The framework fully embraces the power of functional programming and the F# language in particular. The use of F# computation expressions enables elegant and sequential-like declaration of distributed algorithms, in a pattern known as the cloud monad. The {m}brace paradigm encourages cloud programming in the functional style, supporting higher-order functions, declarative workflows, distributed algebraic data types and LINQ-style queries. The codebase of {m}brace itself is fully written in F#.

Summary

  • 100% .Net based.
  • Strictly more expressive than most map-reduce frameworks.
  • Functional programming principles.
  • Interactive development style.
  • Seamless integration with Visual Studio.
  • Designed for private and public clouds.
  • Out-of-the-box support for Windows Azure

See Also