インテル® MPI ライブラリー: Hadoop* エコシステムをサポート

同カテゴリーの次の記事

2016年春ウェビナーシリーズ

この記事は、インテルの The Parallel Universe Magazine 24 号に収録されている、インテル® MPI ライブラリーの Hadoop* エコシステムのサポートに関する章を抜粋翻訳したものです。

長年にわたり MPI は、分散処理モデルの主流として利用されてきました。しかし、大量の入力データの処理を必要とするワークロードを扱うハイパフォーマンス・コンピューティング (HPC) により、新しいアプローチとフレームワークが登場しました。最も一般的なものは、Apache* Hadoop* MapReduce¹ であり、特に Hadoop* ソフトウェア・スタック (すべての関連ツールとフレームワークを含む) が挙げられます。

Vanilla Hadoop* は複数のモジュールで構成され、² 効率良く解くことができる問題の範囲には一定の制約があります。例えば、MapReduce は、反復間で中間結果をストレージにダンプする必要があるため、反復アルゴリズムには適していません。この欠点を改善するため、反復間で効率良くインメモリー・データをキャッシュできる Apache Spark* や Apache Storm* のような、ほかの Hadoop* フレームワークが開発されました。さらに、クラスター管理フレームワークの YARN* は、MapReduce 以外にも対応しているため、これまで MPI が主流であった分野でも Hadoop* を利用することができます。

タスクによっては、Hadoop* スタックを利用することでより簡単に効率良く処理することができ、計算負荷が高く、ノード間通信が多い機械学習でも Hadoop* プラットフォームの採用が増えつつあります。ただし、複数の研究において、3、4 Hadoop* フレームワークよりも MPI のほうが高速であることが示されています。MPI は HPC 分野にしか適していないと誤解されている方がいらっしゃるかもしれません。この記事は、Hadoop* エコシステムで一般的に使用されているツールを補完するために MPI を利用する利点と課題を明らかにします。

新しい HPC の課題

歴史的に、高性能計算は気象モデル、物理、化学のような、比較的少量の入力を基に大量の計算を行う (場合によっては、大量のデータを出力する)、計算負荷の高い分野で利用されてきました。MPI はそのような問題に最適で、さまざまな通信パターンに加えて、多くの場合、ハードウェア機能を効率良く利用する MPI 実装も提供します。

しかし、新しい分野では、テラバイトやペタバイトのデータを入力し、大量のデータを扱うアプリケーションの開発が求められています。通常、ノード間通信をあまり必要としないため、効率良く、信頼性の高い、スケーラブルな入力/出力 (I/O) が特に重要になります。Hadoop* では、HDFS* によりこれに対応しています。

データ解析タスクには長い時間がかかるため、透過的なフォールト管理が必須です。さらに、ストリーミング・タスクは永続的に実行可能なため、ノードクラッシュは避けられません。Hadoop* ソフトウェア・スタックは、ジョブ全体を再起動しなくても、タスクを円滑に引き渡すことができるメカニズムを採用しています。失敗したサブタスクのみ正常なノードに渡されます。また、Hadoop* スケジューラーは、タスクをできるだけデータの近くで実行するため、最適なデータの局所性が得られます。

これらすべての機能が、データ・サイエンティストにとって Hadoop* プラットフォームを魅力的なものにし、Hadoop* エコシステムの解析フレームワークとライブラリーの開発を促進しました。フレームワークは、さまざまなプログラミング言語 (Python*、Java*、Scala* など) に対応しているため、簡単に導入することができます。従来の MPI 実装は、MPI 標準で定められている C と Fortran のみに対応していますが、Java* や Python* インターフェイスを提供する MPI 実装もあります。

続きはこちら (PDF) からご覧いただけます。

関連記事

  • Parallel Universe マガジンParallel Universe マガジン Parallel Universe へようこそ。 米国インテル社が四半期に一度オンラインで公開しているオンラインマガジンです。インテルの技術者によるテクノロジーの解説や、最新ツールの紹介など、並列化に関する記事を毎号掲載しています。第1号からのバックナンバーを PDF 形式で用意しました、ぜひご覧ください。 12 […]
  • インテル Parallel Universe 26 号日本語版の公開インテル Parallel Universe 26 号日本語版の公開 インテル Parallel Universe マガジンの最新号が公開されました。この号では、インテル® Xeon Phi™ プロセッサー向けのコードの現代化について説明します。また、インテル® Parallel Studio XE 2017 […]
  • BigDL: Apache Spark* 上の最適化されたディープラーニングBigDL: Apache Spark* 上の最適化されたディープラーニング この記事は、インテルの The Parallel Universe Magazine 28 号に収録されている、オープンソースの分散型ディープラーニング・フレームワークでディープラーニングの普及を促進する取り組みを紹介した章を抜粋翻訳したものです。 人工知能 (AI) […]
  • インテル® Xeon® プロセッサー・ベースのホストとインテル® Xeon Phi™ コプロセッサー間の MPI 通信の改善インテル® Xeon® プロセッサー・ベースのホストとインテル® Xeon Phi™ コプロセッサー間の MPI 通信の改善 この記事は、インテル® デベロッパー・ゾーンに公開されている「Improving MPI Communication between the Intel® Xeon® Host and Intel® Xeon Phi™」の日本語参考訳です。 MPI シンメトリック・モードは、インテル® Xeon Phi™ […]
  • マシンラーニングに注目すべき理由マシンラーニングに注目すべき理由 この記事は、インテル® デベロッパー・ゾーンに公開されている「Why Should You Care About Machine Learning?」の日本語参考訳です。 この記事の PDF […]