インテル® 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 25 号日本語版の公開インテル Parallel Universe 25 号日本語版の公開 インテル Parallel Universe マガジンの最新号が公開されました。この号では、インテル® Parallel Studio XE 2017 の各種コンポーネントを利用して、Python* コードを最適化・高速化するする方法を紹介します。また、インテル® C++ コンパイラーでサポートされたベクトル化方式の […]
  • Parallel Universe マガジンParallel Universe マガジン Parallel Universe へようこそ。 米国インテル社が四半期に一度オンラインで公開しているオンラインマガジンです。インテルの技術者によるテクノロジーの解説や、最新ツールの紹介など、並列化に関する記事を毎号掲載しています。第1号からのバックナンバーを PDF 形式で用意しました、ぜひご覧ください。 12 […]
  • インテル Parallel Universe 43 号日本語版の公開インテル Parallel Universe 43 号日本語版の公開 インテル Parallel Universe マガジンの最新号 (英語) が公開されました。 注目記事: データ並列 C++ を使用して 2 次元熱伝導方程式を解く 掲載記事 インテル® DPC++ 互換性ツールを使用した CUDA* から DPC++ への移行 GPU […]
  • インテル Parallel Universe 36 号日本語版の公開インテル Parallel Universe 36 号日本語版の公開 インテル Parallel Universe マガジンの最新号が公開されました。 注目記事: CPU 上でのマシンラーニング/ ディープラーニング・プロジェクトの効率的な訓練と実行 掲載記事 Numba を使用した Python* […]
  • インテル® MPI ライブラリーのマルチEP によりハイブリッド・アプリケーションのパフォーマンスを向上インテル® MPI ライブラリーのマルチEP によりハイブリッド・アプリケーションのパフォーマンスを向上 1990 年代半ば以降、MPI は分散メモリー型ハイパフォーマンス・コンピューティング (HPC) アプリケーションにおけるメッセージパッシングの業界標準となっています。高並列マルチコア・プロセッサーの出現により、MPI は共有メモリーシステム内のメッセージパッシングにも利用されています。 MPI […]