メニュー

技術ブログ

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

Denso IT Laboratory researcher's blog sites

数式

RSS

ページトップへ

HPC SOA の利用方法 1

Windows HPC Serverで.NETを使った開発をしようとした場合、いくつか方法はありますが、MPI.NETなどを使うより、Microsoftから提供されているHPC SOAを利用した方が、Visual Studioからのデバッグなどがやりやすく、またプログラミングモデルもわかりやすいため、私はこれを使っています。

当初Visual Studio 2010を利用した開発環境ではHPC Debuggers for SOA などを活用し、プロジェクトテンプレートを利用したサービス開発ができましたが、現在はそのようなツールが無くても、簡単にHPCサービスを開発できるようです。

一番わかりやすく新し目のチュートリアルとしては、Windows HPC Team Blogの以下の説明が良いと思います。
HPC Pack SOA Tutorial I – Write your first SOA service and client

簡単に言うと、Visual StudioにHPC Pack 2012 SDKを入れた環境で、ふつうのWCFサービスプロジェクトを使って作成するだけです。
以下上記リンクの抜粋です。

Step 1. サービス作成
通常のWCFサービスを作成します。実際にHPCに特化したようなインターフェイス、アノテーションなどはありません。上記の例では、Add関数を作成しています。

Step 2. サービスをデプロイする
上記のサービスをサーバにデプロイしますが、サーバはHPCのヘッドノードとなります。その際、SOAサービスコンフィグレーションファイルを作成します。これもデフォルトからほとんど変更する必要が無く、作成したアセンブリのパスを指定する程度です。ファイル名がサービス名と同じでないといけないなどの細かい注意点はあります。
HPC Head nodeの%CCP_HOME%ServiceRegistration という、元々共有フォルダが切られているので、そちらにdllをデプロイします(ただコピーするだけです)。

Step 3. クライアントを実装する
これもサービスリファレンスを作成します。ここまでは通常のWCFと変わらないようです。次にHPC ServerのAPIであるMicrosoft.Hpc.Scheduler.Session, SessionStartInfoというクラスを用いて、HPC クラスタとセッションを作成します。
その後BrokerClientを用いて任意のRequestを送信します。

Step 4. サービスをテストする
適切にデプロイされていれば、VisualStudioからクライアントを実行すればつながります。タスクの反復などを設定すればジョブスケジューラが勝手に分散処理を行ってくれます。ジョブマネージャで設定できるような項目はすべてHPCのAPIで用意されていますので、プログラミングにより柔軟なディスパッチが可能になります。

以下、参考になりそうなリソースを掲載しておきます。
MSDN Blogs > Scalability Notes > Programming Windows Hpc Server – Using SOA Model

Technet Windows HPC > Windows HPC Server 2008 で SOA セッションを管理するための手順ガイド

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