メニュー

技術ブログ

Denso IT Lab.社員による技術情報の紹介

Denso IT Laboratory researcher's blog sites

数式

RSS

ページトップへ

Windows HPC Serverの最新動向

 

こちらは、HPC Advent Calendar 2013 の 16日のエントリです。

社内でWindows HPC Serverを活用しています。

机上実験等で、大量のデータを扱ったり、大量のトライアルを行ったりと、計算パワーを必要とすることは多いのですが、多くの場合は最新のPCのパワーで何とかなっていました。しかし、最近ではこれがビッグデータと言わんばかりのデータが持ち込まれることも多く、以前のように行かないケースも増えてきました。

弊社では社内でGPGPUの開発をする部隊がおり、その成果を研究に生かしたりもしています。GPGPUはNVidiaなどが推進するグラフィックボードを利用した効率的な並列演算を、画像描画以外のことに使おうというものですが、最近はかなり一般的になってきました。以下のような使いやすい行列演算ライブラリをリリースしています:

NTP : CPU/GPU切り替え可能な行列演算ライブラリ

このように扱いやすいHPC環境を利用できるのですが、扱える範囲は、行列演算で記述できるような処理に限られます。そうでない場合として以下のようなパターンがあります。

  • レガシーコード:そもそも改変ができない、難しいライブラリやアプリケーションを並列化したい
  • C++やMatlabへの移植が適切でない:他の言語で書かれていて、書き直すのが難しい
  • 条件分岐などが多発する処理:大規模並列化の難しい込み入った処理の場合

こういった場合でも、単に大量のデータを逐次処理したり、パラメータをSweepして感度分析を行ったり、というEmbarrassingly parallelな処理を並列化したい場合があります。そういった場合に適切なのがWindows HPC Serverのような環境だと思います。以下に導入~開発を示した文書を書きました。

Windows HPC Server のライセンスが無償に – Default Collection

単なる大量のバッチ処理を手早く終わらせたいという需要は色々なところにあるようで、財務集計処理や画像レンダリングなど特定業務の効率化に使われているという報告がMicrosoftから紹介されていました。

さて、そのようなものとしてはMapReduce環境を使うほうが普及しているかもしれません。ただMapReduceを利用しようとすると、例えば言語を選んだり(JavaとかPythonとか)コードの構成の変更が必要になったりと、手間が多いように感じます。データの効率的な分割を考えたりする必要がそれほど無ければ、HPC Serverは直感的で手間が最小限の手段と言えます。

しかし、Microsoftも巷に増えているHadoop技術者を取り込もうと、数年前からHPC Server/Azure上で稼働するHadoop環境を準備をしました。最近になり、HDInsightという便利なHadoop環境をAzure上に正式リリースし、さらにこのコミュニティに訴求しようとしています。

この辺の事情について、今回はプレゼンテーションを作りましたので、以下に公開しておきます。Hadoopもろくに知らない人間が書いていますので、間違いがあるかもしれませんが、あくまで業界サーベイ的にご覧になったらどうかと思います。



このエントリーをはてなブックマークに追加