SLURM を使用してスーパーコンピューターのリソース管理を最適化する

Simple Linux Utility for Resource Management について、この入門記事で詳しく調べる

アーキテクチャーを進化させて他よりもさらに高い性能を絞り出していくスーパーコンピューター同士の激しい競争は、見ていて興味をそそられます。スーパーコンピューターに関して興味深い点は、いずれのスーパーコンピューターにしても、ある Linux のバージョンを実行していることです。Linux のオープンソース・ジョブ・スケジューラーである SLURM (Simple Linux Utility for Resource Managemen) を使用すれば、アーキテクチャーから最大限の能力を引き出すために、リソースの割り当ておよび監視を最適化することができます (SLURM は、中国のスーパーコンピューター「Tianhe-IA (天河一号A)」や近日完成予定の IBM Sequoia スーパーコンピューターでも使用されています)。この記事を読んで、SLURM の概要、そして SLURM がクラスター内のワークロードをどのように並列化するかを学んでください。

M. Tim Jones, Independent author, Consultant

M.Tim JonesM. Tim Jones は組み込みソフトウェアのエンジニアであり、『Artificial Intelligence: A Systems Approach』、『GNU/Linux Application Programming』(現在、第 2 版です) や『AI Application Programming』(こちらも現在、第 2 版です)、それに『BSD Sockets Programming from a Multilanguage Perspective』などの著者でもあります。技術的な経歴は静止軌道衛星用のカーネル開発から、組み込みシステム・アーキテクチャーやネットワーク・プロトコル開発まで、広範にわたっています。彼はコロラド州ロングモン在住で、Intel に勤務するプラットフォーム・アーキテクトであり、執筆活動も行っています。



2012年 6月 21日

Tim とつながるには

Tim は developerWorks で人気の高いお馴染みの著者の 1 人です。Tim が書いたすべての developerWorks 記事を閲覧してみてください。また、developerWorks コミュニティーでは、Tim のプロフィールを調べることや、彼やその他の著者、そして他の開発者とつながることができます。

スーパーコンピューターは、国や企業の間で繰り広げられる激しい競争の典型例です。最新のスーパーコンピューターの性能が高まることによって新しい問題領域に突入する一方で、このスーパーコンピューターという大規模なシステムが、新しい問題を解決するためのプラットフォームを提供しています。国や企業は LINPACK スコアを伸ばそうと取り組んでおり、スーパーコンピューターは、国や企業の誇りの源となっています。図 1 に、過去 5 年間のスーパーコンピューターの激しい競争を示します。現在、2012年の世界一のスーパーコンピューターになると予測されているのは IBM Sequoiaです。この図を見るとわかるように、長年のペタフロップスの壁を打ち破った初のスーパーコンピューターも、IBM の Roadrunner でした (2004年から 2008年までは IBM の Blue Gene/L が首位の座を維持していました)。

図 1. スーパーコンピューターの性能: 2008年から 2012年に至るまで
2008年から 2012年までのスーパーコンピューターの性能を PFLOPS 単位で示すグラフ

初期のスーパーコンピューターが設計された目的は、核兵器をモデル化することでした。現在、スーパーコンピューターのアプリケーションは遥かに多様化しており、気象研究、分子モデリング、大規模な物理シミュレーション、さらには総当たりによるコード解読などの分野での膨大な計算問題に取り組むためにも使用されています。

1964年から現在に至るまで

LINPACK ベンチマークについて

LINPACK 性能ベンチマークは、競合するスーパーコンピューターの性能を比較する目的で作成されました。LINPACK は、浮動小数点演算の実行速度を測定します。具体的には、LINPACK は密行列の線形方程式を解くためのプログラム・セットです。

一般に最初のスーパーコンピューターと考えられているのは、(Seymour Cray 氏が設計して) 1964年にリリースされた CDC (Control Data Corporation) 6600 です。CDC 6600 は 4 基のキャビネットにハードウェア、Freon 冷却システム、そして 300 万 FLOPS (Floating-point Operations Per Second) の処理能力を持つ 1 つの CPU を収容していました。美しさには欠けていたものの、CPU を可能な限りビジー状態にするように、CDC 6600 のキャビネットには単一の CPU に各周辺ユニットのプロセッサーを接続する色分けされたケーブルがぎっしり詰め込まれていました。

時代を今に移すと、現在スーパーコンピューターの世界一の座を占めるのは日本の「Kei (京)」スーパーコンピューター (富士通製) です。このシステムは力任せで計算処理能力を確保することに重点を置いており、864 基のキャビネットに搭載した 88,000 を超える SPARC64 プロセッサーを使用します。「京」スーパーコンピューターは 10 ペタフロップスの壁を打ち破ったという点で際立っています。CDC 6600 と同じく、「京」スーパーコンピューターは空冷に加え、水冷も利用しています。


スーパーコンピューターとは何か

スーパーコンピューターとは、特定のアーキテクチャーのことを指すのではなく、単に、最先端の計算処理技術を使用して性能を実現するように設計されたシステムのことを指します。現在、スーパーコンピューターという言葉が意味するのは、LINPACK ベンチマークでペタフロップス (1000 兆 FLOPS) 単位の処理速度が計測されるシステムのことです。

これほどまでの FLOPS をどのようにして実現するかに関わらず、あらゆるスーパーコンピューター・アーキテクチャーがまず目標とするのは、処理対象のワークがあるときに、最も効率的に計算リソースをビジー状態に保つことです。例えば CDC 6600 の場合、単一の CPU をビジー状態に維持するために周辺プロセッサーが使用されました。最近のスーパーコンピューターにも、それと同じような基本機能が必要です。このような計算ノード・リソース管理の実装の 1 つとして、この記事では SLURM (Simple Linux Utility for Resource Management) を取り上げます。


SLURM の概要

SLURM は、大規模な計算ノード・クラスターのためのクラスター・マネージャーおよびジョブ・スケジューリング・システムで、極めてスケーラブルかつフォルト・トレラントなシステムです。SLURM は保留中ワークのキューの管理と、この保留中ワークによるリソースの使用状況全体の管理、そして使用可能な計算ノードの (リソースのニーズに応じて) 排他的または非排他的な方法での管理を行います。さらに、SLURM は一連の割り当て済みノードにジョブを配布してワークを実行するとともに、並列ジョブをそれぞれの完了時まで監視します。

SLURM の実態は、(機能の豊富さよりもニーズを重視して) 高い移植性、大規模なクラスター・ノードへのスケーラビリティー、そしてフォルト・トレラントな性質を備えた堅牢なクラスター・マネージャーですが、最も重要なことはオープンソースであることです。SLURM は、複数の企業 (Lawrence Livermore National Laboratory を含む) が共同開発した、オープンソースのリソース・マネージャーとして生まれました。現在、最も強力なスーパーコンピューターの多くでは、SLURM が主要なリソース・マネージャーとして使用されています。


SLURM のアーキテクチャー

SLURM は、極めて従来型のクラスター管理アーキテクチャーを実装しています (図 2 を参照)。最上位にあるのは、クラスター・コントローラーの冗長ペアです (ただし、冗長性はオプションです)。この 2 つのクラスター・コントローラーは計算クラスターのマネージャーとして機能し、slurmctld という管理デーモンを実行します。slurmctld は計算リソースの監視を行うデーモンですが、その最も重要な役割は、受信したジョブ (ワーク) を計算リソースにマッピングすることです。

それぞれの計算ノードでは、slurmd という名前のデーモンを実行します。各ノードは、そのノードで実行される slurmd デーモンによって管理されます。具体的には、このデーモンはノード上で実行中のタスクを監視し、コントローラーからのワークを受け入れ、そのワークをノード内のコア上のタスクにマッピングします。slurmd デーモンは、コントローラーからの要求に応じてタスクの実行を停止することもできます。

図 2. SLURM アーキテクチャーの概要図
SLURM アーキテクチャーの概要図

アーキテクチャー内には他にもデーモンが存在します (例えば、セキュア認証を実行するデーモンなど)。けれども、クラスターは、単にノードを無作為に集めたものではありません。これらのノードのなかには、並列計算の時点で論理的に関係してくる可能性のあるノードもあります。

ノードのセットは、パーティションと呼ばれる論理グループに分類することができます。パーティションには受信したワークのキューが組み込まれるのが通常です。パーティションには、そのパーティションの使用を許可するユーザーに関する制約や、パーティションがサポートする時間制限内のジョブ・サイズに関する制約などを構成することができます。さらにパーティションを微調整して、パーティション内のノードのセットをワークの一定の期間、ユーザーにマッピングすることも可能です。これは、ジョブと呼ばれます。ジョブには 1 つ以上のジョブ・ステップが含まれます。これらのジョブ・ステップが、ノードのサブセットで実行されるタスクのセットです。

この階層を示す図 3 で、SLURM でのリソースのパーティション化をさらに詳しく説明します。このパーティション化では、連携するノード同士が低レイテンシーで通信できるように、リソース近接性も考慮されていることに注意してください。

図 3. SLURM でのリソースのパーティション化
SLURM でのリソースのパーティション化

SLURM のインストール

SLURM をインストールする方法は、結局のところ使用している Linux 環境によって異なりますが、インストールのプロセスはパッケージ・マネージャーを使用する場合と同じくらいに単純です。SLURM は完全にパッケージ化されているため、簡単にインストールおよび構成することができます。私のお気に入りのディストリビューションである Ubuntu の場合、APT (Advanced Packaging Tool) を使って SLURM パッケージとその依存関係のすべてをインストールできるようになっています。

$ sudo apt-get install slurm-llnl

インストール操作によって使用されるスペースは 40MB 未満です。これには、SLURM だけでなく、各依存関係、基本プラグイン、その他必要なパッケージも含まれます。


SLURM の構成

SLURM を起動する前に、使用している環境に合わせて SLURM を構成する必要があります。構成ファイルを作成するために私が使用したのは、フォームのデータに基づいて自動的に構成ファイルを生成するオンライン SLURM コンフィギュレーターです。生成された構成ファイルに対して、サポートされなくなっているオプションを削除する処理を最後に行う必要があることに注意してください。リスト 1 に、私の環境での最終的な構成ファイルを記載します (/etc/slurm-llnl/slurm.conf に格納)。

リスト 1. 単一ノードのクラスターの場合の SLURM 構成ファイル
# slurm.conf file generated by configurator.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
#
ControlMachine=mtj-VirtualBox
#
AuthType=auth/none
CacheGroups=0
CryptoType=crypto/openssl
MpiDefault=none
ProctrackType=proctrack/pgid
ReturnToService=1
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmctldPort=6817
SlurmdPidFile=/var/run/slurmd.pid
SlurmdPort=6818
SlurmdSpoolDir=/tmp/slurmd
SlurmUser=slurm
StateSaveLocation=/tmp
SwitchType=switch/none
TaskPlugin=task/none
#
# TIMERS
InactiveLimit=0
KillWait=30
MinJobAge=300
SlurmctldTimeout=120
SlurmdTimeout=300
Waittime=0
#
# SCHEDULING
FastSchedule=1
SchedulerType=sched/backfill
SchedulerPort=7321
SelectType=select/linear
#
# LOGGING AND ACCOUNTING
AccountingStorageType=accounting_storage/none
ClusterName=cluster
JobCompType=jobcomp/none
JobCredentialPrivateKey = /usr/local/etc/slurm.key
JobCredentialPublicCertificate = /usr/local/etc/slurm.cert
JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/none
SlurmctldDebug=3
SlurmdDebug=3
#
# COMPUTE NODES
NodeName=mtj-VirtualBox State=UNKNOWN
PartitionName=debug Nodes=mtj-VirtualBox Default=YES MaxTime=INFINITE State=UP

実際のクラスターでは、NodeName はノードの範囲 (例えば snode[0-8191]) を参照して、クラスター内で」一意に決まる 8192 のノード (snode0 から snode8191 の名前が付けられたノード) を指定することに注意してください。

構成の最後のステップでは、私のサイト用のジョブ・クレデンシャル・キー一式を作成します。私はクレデンシャル・キーに openssl を使用することにしました (これらのキーは、リスト 1 の構成ファイルで JobCredential* として参照されています)。openssl は、ただ単にクレデンシャルを生成するために使用します (リスト 2 を参照)。

リスト 2. SLURM のクレデンシャルを作成する
$ sudo openssl genrsa -out /usr/local/etc/slurm.key 1024
Generating RSA private key, 1024 bit long modulus
.................++++++
............................................++++++
e is 65537 (0x10001)
$ sudo openssl rsa -in /usr/local/etc/slurm.key -pubout -out /usr/local/etc/slurm.cert
writing RSA key

以上のステップが完了すると、SLURM に伝えなければならない構成に関する情報のすべてが揃います。これで、SLURM を起動して操作することができます。


SLURM の起動

SLURM を起動するには、/etc/init.d/slurm に定義された管理スクリプトを使用するだけでよいのです。このスクリプトは startstoprestart、そして (以前に保存された状態をすべて無視する) startclean を引数に取ります。この管理スクリプトを使用して以下のように SLURM を起動すると、slurmctld デーモンが開始されます (この単純な構成では、ノード上で slurmd デーモンも開始されます)。

$ sudo /etc/init.d/slurm-llnl start

SLURM が稼働中であることを検証するには、sinfo コマンドを使用します。sinfo コマンドは SLURM ノードとパーティション (この例のクラスターは、単一のノードで構成されています) に関する情報を返します (リスト 3 を参照)。

リスト 3. sinfo コマンドを使用してクラスターを表示する
$ sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
debug*       up   infinite      1   idle mtj-VirtualBox
$

その他の SLURM コマンド

SLURM クラスターに関する詳細情報を取得するには、SLURM に用意されている各種のコマンドを使用することができます。「SLURM の起動」では、クラスターの情報を表示するために sinfo コマンドを使用しましたが、scontrol コマンドを使えば、さらに詳しい情報が得られます。リスト 4 に示されているように、このコマンドでは、パーティション、ノードなど、クラスターの各側面に関する詳細情報を表示することができます。

リスト 4. scontrol を使用してクラスターの詳細情報を取得する
$ scontrol show partition
PartitionName=debug
   AllocNodes=ALL AllowGroups=ALL Default=YES
   DefaultTime=NONE DisableRootJobs=NO Hidden=NO
   MaxNodes=UNLIMITED MaxTime=UNLIMITED MinNodes=1
   Nodes=mtj-VirtualBox
   Priority=1 RootOnly=NO Shared=NO PreemptMode=OFF
   State=UP TotalCPUs=1 TotalNodes=1
 
$ scontrol show node mtj-VirtualBox
NodeName=mtj-VirtualBox Arch=i686 CoresPerSocket=1
   CPUAlloc=0 CPUErr=0 CPUTot=1 Features=(null)
   Gres=(null)
   OS=Linux RealMemory=1 Sockets=1
   State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=1
   BootTime=2012-03-07T14:59:01 SlurmdStartTime=2012-04-17T11:10:43
   Reason=(null)

単純な SLURM クラスターをテストするには、srun コマンドを使用することができます。srun は計算リソースを割り当て、ジョブのためのタスクを開始するコマンドです。計算リソースの割り当てとタスクの開始は、別々に行うこともできます (それぞれ sallocsbatch を使用)。リスト 5 では、まず srun の実例を示すために、単純なシェル・コマンドをジョブとして実行依頼します。次に sleep コマンド (引数を使用) を実行依頼し、続いてクラスター内に存在するジョブを表示する squeue コマンドの使用方法を示します。

リスト 5. クラスターに対してジョブを実行依頼した後、キューの状況をチェックする
$ srun -l hostname
0: mtj-VirtualBox
$ srun -l sleep 5 &
[1] 24127
$ squeue
  JOBID PARTITION     NAME     USER  ST       TIME  NODES NODELIST(REASON)
     15     debug    sleep      mtj   R       0:03      1 mtj-VirtualBox
$
[1]+  Done                    srun -l sleep 5
$

リスト 5 でクラスターに対して実行依頼するジョブは、単純な Linux コマンドにすることも、シェル・スクリプト・ファイルや、適切な実行可能ファイルにすることもできることに注意してください。

最後の例として、ジョブを停止する方法を説明します。この例では、長時間実行するジョブを開始した後、squeue によってそのジョブの ID を識別します。次に、識別したジョブ ID を scancel コマンドに指定して、該当するジョブ・ステップを終了させます (リスト 6 を参照)。

リスト 6. ジョブ・ステップを終了させる
$ srun -l sleep 60 &
[1] 24262
$ squeue
  JOBID PARTITION     NAME     USER  ST       TIME  NODES NODELIST(REASON)
     16     debug    sleep      mtj   R       0:03      1 mtj-VirtualBox
$ scancel 16
srun: Force Terminated job 16
$ srun: Job step aborted: Waiting up to 2 seconds for job step to finish.
0: slurmd[mtj-VirtualBox]: error: *** STEP 16.0 CANCELLED AT 2012-04-17T12:08:08 ***
srun: error: mtj-VirtualBox: task 0: Terminated
 
[1]+  Exit 15                 srun -l sleep 60
$

ジョブ・ステップを終了させた後は、起動の際に使用したのと同じ slurm-llnl スクリプトを使用してクラスターを停止することができます (リスト 7 を参照)。

リスト 7. SLURM クラスターを停止する
$ sudo /etc/init.d/slurm-llnl stop
 * Stopping slurm central management daemon slurmctld                           [ OK ]
 * Stopping slurm compute node daemon slurmd                                    [ OK ]
slurmd is stopped
$

Apache Hadoop とは異なり、SLURM には分散ファイルシステムの概念がありません。そのため、特定の計算のためにデータを複数のノードに配布するには、多少の追加処理が必要です。SLURM には sbcast というコマンドが組み込まれています。SLURM ジョブのために割り当てられたすべてのノードにファイルを転送するには、このコマンドを使用します。SLURM クラスターのノードで並列ファイルシステムまたは分散ファイルシステムを使用することは可能です (おそらく、そのほうが効率的です)。その場合には、sbcast で処理対象のデータを配布する必要はありません。

SLURM のこの単純なデモで使用したのは、使用可能なコマンドのうちのほんの一部、そしてこれらのコマンドで使用できるオプションのごく一部です (例えば、srun コマンドで使用可能なオプションを参照してください)。このように最小限のコマンドを使用するだけでも、SLURM では有能で効率的な管理を行えるクラスター・マネージャーが実装されます。


SLURM のカスタマイズ

SLURM は静的なリソース・マネージャーではありません。それどころか、新しい動作を統合できる極めて動的なリソース・マネージャーです。SLURM はプラグイン API (Application Programming Interface) を実装することによって、実行時に動的にランタイム・ライブラリーをロードできるようにします。プラグイン API は、相互接続ファブリック、認証、そしてスケジューリングなど、さまざまな新しい動作を開発するために使用されてきました。プラグイン・インターフェースがサポートするその他の機能は、ジョブ・アカウンティング、暗号関数、MPI (Message Passing Interface: メッセージ・パッシング・インターフェース)、プロセス追跡、リソース選択など多岐にわたります。これらすべてによって、SLURM は各種のクラスター・アーキテクチャーおよびクラスター実装を簡単にサポートできるようになっています。詳細については、「参考文献」で紹介している「SLURM Programmer's Guide」を参照してください。


SLURM の今後

2011年、SLURMは数々の新機能を追加して更新されました。これには、IBM Blue Gene/Q スーパーコンピューターと Cray XT および XE コンピューターの部分的サポートも含まれます。さらに、Linux コントロール・グループ (cgroup) のサポートも追加されたことにより、Linux プロセス・コンテナーを今まで以上に柔軟に制御できるようになっています。

2012年には、Blue Gene/Q サポートが完全に実装されるとともに、ジョブのニーズとリソースの能力 (ノード対応 AMD など) に応じてリソース選択が改善される予定です。スケジューリング統計をレポートするための新しいツールが計画されている他、近い将来には Web ベースの管理ツールも計画されています。SLURM には、クラウド・バースティングのコンテキストでの将来的な計画もあります。この計画には、クラウド・プロバイダーにおけるリソースの割り当て、ローカル・クラスターから (同じく SLURM デーモンを実行する) クラウドへのオーバーフロー・ワークのマイグレーションが関係します。これは極めて有用性が期待できるモデルで、特定のスーパーコンピューターのワークロード内で弾力性を持たせるという構想をサポートします。

現在 SLURM の開発者たちは、例えばクラスター内で熱を発散しやすいエリアに電力消費の高い (従って、より大量の熱を生成する) ジョブを配置するなど、クラスター内でより効果的にワークを分散するために電力および温度データを利用する方法を検討しています。


さらに詳しく調べてください

この短い記事による SLURM は、このオープンソース・リソース・マネージャーの単純さを物語っています。最近のスーパーコンピューターの値段はほとんどの人々にとって手の届く範囲ではありませんが、SLURM は一般に流通しているサーバーをハイパフォーマンス・クラスターに変身させるスケーラブルなクラスター・マネージャーの基礎となります。さらに、SLURM のアーキテクチャーは、リソース・マネージャーをあらゆるスーパーコンピューター (あるいは汎用クラスター) のアーキテクチャーに合わせて簡単にカスタマイズできるようになっています。これがおそらく、スーパーコンピューターの分野で SLURM が主要なクラスター・マネージャーとなっている理由です。

参考文献

学ぶために

  • SLURM: A Highly Scalable Resource Manager」には、Lawrence Livermore National Laboratory が管理運営する有用な Web サイトがあります。このサイトに、SLURM の概要、資料とプレゼンテーションのリスト、マニュアル、そして参考になる FAQ が集められています。さらに、SchedMD で SLURM 開発者たちによる専門的サポートを調べることもできます。
  • A Brief History of Supercomputing」で、Microsoft の Gordon Bell 氏が CDC 6600 から Beowulf クラスターまでの興味深い (ただし少し時代遅れの) スーパーコンピューターの歴史を紹介しています。
  • The LINPACK Benchmark: Past, Present, and Future」(Jack Dongarra、Piotr Luszczek、Anttoine Petitet 共著) は、LINPACK の歴史と内部構造を知るのに役立つ入門書です。また、よく使われている一連のハードウェア (AMD Athlon、Intel Pentium など) での LINPACK の使用例も紹介しています。
  • SLURM Elastic Computing は、クラスターをニーズに応じて拡大および縮小するクラウド・バースティングと呼ばれる機能を実装します。具体的には、クラスターの容量をコスト効果の高い方法で増加するために、パブリック・クラウドのリソースを使用してクラスターを拡大します。
  • Top500 プロジェクトでは、世界の高速スーパーコンピューターのランキングと、現在のシステムと過去のシステムに関する詳細を管理しています。Top500 のリストは年に 2 回更新されます。当然のことながら、Top500 の上位 10 を占めるスーパーコンピューターはすべて Linux の形で実行されています。
  • IBM のスーパーコンピューターには長い、そして際立った歴史があります。Wikipedia のこのページにアクセスして、IBM によって開発されたスーパーコンピューターのリストと詳細を調べてください。
  • SLURM Programmer's Guide」は、ビルド・プラグインおよび SLURM のソースとマニュアルのレイアウトの概要を理解しやすい入門書です。
  • SLURM 構成ツールは、単純な入力フォームから slurm.conf ファイルを生成する簡単な手段となります。必要な情報を入力すると、この Web サイトから、クラスターにドロップできる状態の slurm.conf が提供されます。
  • developerWorks Linux ゾーンで、Linux 開発者および管理者向けのハウツー記事とチュートリアル、そしてダウンロード、ディスカッション、フォーラムなど、豊富に揃った資料を探してください。
  • developerWorks Open source ゾーンには、オープソースのツールおよびオープンソース技術の使用に関する情報が豊富に揃っています。
  • developerWorks Web development に、多種多様な Web ベースのソリューションを話題にした記事が揃っています。
  • さまざまな IBM 製品や IT 業界のトピックに焦点を絞った developerWorks のTechnical events and webcasts で最新情報を入手してください。
  • 無料の developerWorks Live! briefing に参加して、IBM の製品およびツールについての情報や IT 業界の動向についての情報を迅速に把握してください。
  • developerWorks の on-demand demos で、初心者向けの製品のインストールとセットアップから、熟練開発者向けの高度な機能に至るまで、さまざまに揃ったデモを見てください。
  • Twitter で Tim をフォローしてください。また、Twitter で developerWorks をフォローすることも、developerWorks で Linux に関するツイートのフィードに登録することもできます。

製品や技術を入手するために

  • ご自分に最適な方法で IBM 製品を評価してください。評価の方法としては、製品の試用版をダウンロードすることも、オンラインで製品を試してみることも、クラウド環境で製品を使用することもできます。また、SOA Sandbox では、数時間でサービス指向アーキテクチャーの実装方法を効率的に学ぶことができます。

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。プロフィールで選択した情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux, Open source, Web development
ArticleID=821325
ArticleTitle=SLURM を使用してスーパーコンピューターのリソース管理を最適化する
publish-date=06212012