BT

InfoQ ホームページ ニュース Haxl - Haskellを使った暗黙的な並列データアクセス

Haxl - Haskellを使った暗黙的な並列データアクセス

ブックマーク

原文(投稿日:2014/06/11)へのリンク

Facebookは,効率的な並行データアクセスのためのライブラリであるHaxlをオープンソースとして公開した。表現力のある型システムや並列性,安全性保証といった,Haskellの従来からの強みに加えて,GHCの持つ実行時のハイパフォーマンスを活用することで,暗黙の並列データアクセスという厄介な問題を解決する。

HaxlはデータベースWebサービスといった,リモートデータへのデータアクセスを単純化する。同じデータソースに対する複数の要求,複数のデータソースに対する要求を,自動的に並列バッチ処理することが可能であると同時に,実行された要求のキャッシュも行う。開発に携わったエンジニアのひとりであるJon Purdy氏は,次のように説明する

ここでの基本的な考え方は,どうしようもなく不効率なデータ取得コード — ループ内のクエリや明示的でない重複排除のような — をネイティブに書いても,内部で効果的な並列処理へと魔法のように変換する,というものです。

アプリケーションでHaxlを使うには,データソースとそのアクセス方法を定義するために,薄いレイヤを作る必要がある。

Haxlでは計算処理を暗黙的に並列化可能にするため,Applicative型のクラスを使用している。詳細な動作については,このプレゼンテーションを見るとよいだろう。ライブラリはhackageから,そのソースコードはGitHubから取得することができる。

Haxlは,同種の問題を解決するFXLの後継となるものだ。 FXLも純粋な実行モデルを持っているが,実装にはパフォーマンス上,特にCPUとメモリ使用量に関して問題があるようだ。これまでは,HaskelとGHCの使用が最高の代替策だった。Haxlの背景となった事情や,Facebookで現在運用されているユースケースについても詳細も公開されている。

この記事に星をつける

おすすめ度
スタイル

こんにちは

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

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

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

コミュニティコメント

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

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

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。