BT

.NET 向け分散プログラミングフレームワーク MBrace 1.0 のリリース

| 作者: Pierre-Luc Maheu フォローする 3 人のフォロワー , 翻訳者 勇 大地 フォローする 1 人のフォロワー 投稿日 2015年11月23日. 推定読書時間: 4 分 |

原文(投稿日:2015/11/18)へのリンク

数年の開発越しに、先週 MBrace 1.0 がリリースされた。MBrace は、スケーラブルなクラウドデータ向けに F# と C# でスクリプトとプログラミングが可能なプログラミングモデルだ。プロジェクトは主にコードライブラリとクラウドプロバイダのライン地アイムから形成されている。

主要なコンポーネントは MBrace.Core であり、MBrace プログラミングモデルの核を含むスタンドアロンのクラスライブラリである。コンピュテーション式に基づいた API を提供しており、直接利用することも MBrace.Flowの様なライブラリの作成も可能だ。この例はクラウドワークフローを用いて HTTP でコンテンツを取得する方法を示している。

let urls =  [| ("bing", "http://bing.com") ("google", "http://google.com") /* more urls*/ |]

let download (name: string, uri: string) = 
    cloud {
        let webClient = new WebClient()
        let! text = webClient.AsyncDownloadString(Uri(uri)) |> Cloud.OfAsync
        do! CloudFile.Delete(sprintf "pages/%s.html" name)
        let! file = CloudFile.WriteAllText(path = sprintf "pages/%s.html" name, text = text)
        return file
    }

let filesTask = 
    urls  |> Array.map download  |> Cloud.Parallel |> cluster.CreateProcess

MBrace.Core の上位に構築された MBrace.Flow は、関数型宣言パイプラインを利用する分散ストリームライブラリだ。次の例は、クラウドフローを用いて複数の CSV ファイルの中から重複した文字列の数を数えるものだ。

let numberOfDuplicates =
    CloudFlow.OfCloudFilesByLine ["container/data0.csv" ; "container/data1.csv"]
    |> CloudFlow.map (fun line -> line.Split(','))
    |> CloudFlow.map (fun tokens -> int tokens.[0], Array.map int tokens.[1 ..])
    |> CloudFlow.groupBy (fun (id,_) -> id)
    |> CloudFlow.filter (fun (_,values) -> Seq.length values > 1)
    |> CloudFlow.length
    |> cluster.Run

コードライブラリに加え、他の主要なコンポーネントも MBrace ランタイムに実装されている。Azure は現在唯一サポートされているプロバイダだが、AWS 向けも開発中だ。Azure ランタイム実装は MBrace.Core プログラミングモデルとクラスタ管理のヘルパを完全にサポートしている。以下は Azure 上で 4 つの A3 インスタンスを 作成する方法だ。

let pubSettingsFile = @"... path to your downloaded publication settings file ... "
let config = DeploymentManager.BeginDeploy(pubSettingsFile, Regions.North_Europe, VMSizes.A3, vmCount = 4) 

最初に始めるには二つのスタートキットが有用であり、一つは Azure を利用し、もう一つはシミュレートしたクラスタを利用する。シミュレートしたクラスタは単一の筐体で実行可能であり、分散処理のコードを追加のインフラ無しに開発者のマシンでデバッグ可能となる。

MBrace はオープンソースプロジェクトであり、GitHub 上で利用可能だ。コントリビューションには様々なレベルがあり、ライブラリ向け、クラウドプロバイダのランタイム向け、サンプル・ドキュメント向けがある。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT