JP2006228192A - クラスタコンピュータミドルウェア、クラスタコンピュータシミュレータ、クラスタコンピュータ用アプリケーション、およびアプリケーション開発支援方法 - Google Patents
クラスタコンピュータミドルウェア、クラスタコンピュータシミュレータ、クラスタコンピュータ用アプリケーション、およびアプリケーション開発支援方法 Download PDFInfo
- Publication number
- JP2006228192A JP2006228192A JP2005361565A JP2005361565A JP2006228192A JP 2006228192 A JP2006228192 A JP 2006228192A JP 2005361565 A JP2005361565 A JP 2005361565A JP 2005361565 A JP2005361565 A JP 2005361565A JP 2006228192 A JP2006228192 A JP 2006228192A
- Authority
- JP
- Japan
- Prior art keywords
- cluster computer
- computer
- session
- application
- middleware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/543—Local
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
【解決手段】クラスタコンピュータミドルウェアの状態を「セッション」を使って記述する。「セッション」とは、まとまった一連の処理であって、次の二つの条件を満たすもののことを指す。(a)セッションの開始・終了の際には、それぞれアプリケーションに通知が送られる。(b)二つのセッションの間には、前後関係・包含関係・無関係のいずれかの関係が規定されている。
【選択図】図3
Description
(1)エラーが発生した場合、そのエラーがメイン処理によって発生したのか、サブ処理によって発生したのかを特定することが困難である。そのため体系的なデバッグがしにくい。
(2)メイン処理の実行される順番と、ソースコードに記述される順番が一致しない。そのため並列化の前と後では、ソースコードの構造がまったく異なったものとなる。またメイン処理の中に、通知を待つループ処理が多く現れ、ソースコードの可読性を損なう。
(3)メイン処理がサブ処理の実行順序に依存する。そのためミドルウェアが改良されたりしてサブ処理の実行順序が変わると、それを使用しているアプリケーションも作り直さなければならない。
(4)並列処理の手順によってメイン処理が変化する。そのためライブラリのように並列化するべき処理が多くある場合、それぞれの処理がまったく異なった構造で書かれることになり、ソースコードの管理が難しくなる。
(5)独立に動作しているスレーブコンピュータの動作タイミングを模擬することが難しいので、確実に動作するアプリケーションを開発するには、実際にクラスタコンピュータを用意する必要がある。
(6)メイン処理からの指示に対し、即座にサブ処理が実行される。そのためメイン処理には、サブ処理を実行するタイミングを管理する責任が発生する。
[クラスタコンピュータの一般論]
本発明によるクラスタコンピュータミドルウェアについて説明する前に、ここでクラスタコンピュータの一般論について簡単に述べる。一般的なクラスタコンピュータ100のハードウェア構成例を図1に示す。クラスタコンピュータ100は、1台のマスタコンピュータ110aと、多数のスレーブコンピュータ110b〜110iによって構成されており、これらが高速の通信ネットワーク120で相互に結合されている。マスタコンピュータ110aは、ディスプレイ131と、キーボード132と、マウス133からなるコンソールを備えている。しかしスレーブコンピュータ110b〜110iはコンソールを備えておらず、その操作はマスタコンピュータ110aから通信ネットワーク120を経由して間接的に行われる。
(1)クラスタコンピュータミドルウェア(マスタモジュール)500M
(2)クラスタコンピュータミドルウェア(スレーブモジュール)500S
(3)アプリケーション(マスタモジュール)510M
(4)アプリケーション(スレーブモジュール)510S
一般にアプリケーションは、マスタモジュール・スレーブモジュールとも、実行可能なプログラムとして提供される。一方クラスタコンピュータミドルウェアは通常ライブラリとして提供され、それぞれのモジュールは、アプリケーションの対応するモジュールにリンクされて動作する。
a.セッションの開始・終了の際には、それぞれアプリケーション510に通知360が送られる。
b.二つのセッションの間には、前後関係・包含関係・無関係のいずれかの関係が規定されている。
(1)Copyセッション601
ノードにある一つのデータを、他のノードにコピーする。
(2)Deleteセッション602
ノードにある一つのデータを削除する。
(3)Sendセッション603
マスタノードにあるデータを、スレーブノードにコピーする。
(4)Executeセッション604
スレーブノードにタスクを実行させる。
(5)Receiveセッション605
スレーブノードにあるデータを、マスタノードにコピーする。
(6)Wasteセッション606
スレーブノードにあるデータを削除する。
(7)Batchセッション607
一つのスレーブノードに分散処理をさせる。
(8)Deliverセッション608
マスタノードにあるデータを、すべてのスレーブノードにコピーする。
(9)Raceセッション609
すべてのスレーブノードに分散処理をさせる。
(10)Cleanセッション610
すべてのノードにあるデータを削除する。
(11)Operateセッション611
クラスタコンピュータを動作させる。
(1)Deliverセッションの開始イベント
すでに地形データ711がスレーブノードに分配されているかどうかを調べ、分配されていなければ、地形データ711をそれぞれのスレーブノードにコピーするように指示する。
(2)Batchセッションの開始イベント
地方別気象データ712a〜712gを、それぞれのスレーブノードにコピーするように指示する。
(3)Receiveセッションの開始イベント
地方別の天気図720をマスタノードにコピーするように指示する。
(4)Receiveセッションの終了イベント
マスタノードにコピーされた地方別の天気図720から、全国の天気図720を作成する。
(5)Wasteセッションの開始イベント
地方別気象データ712と地方別の天気図720を削除するように指示する。
(1)Deliverセッションの開始イベント
3次元形状データ811をすべてのスレーブノードにコピーするように指示する。
(2)Executeセッションの開始イベント
Batchセッションの番号に対応する表示領域を求め、レンダリング条件812とともにスレーブノードに伝えるよう指示する。
(3)Receiveセッションの開始イベント
分割されたレンダリング画像820をマスタノードにコピーするように指示する。
(4)Receiveセッションの終了イベント
マスタノードにコピーされた、分割されたレンダリング画像320から、一つのまとまったレンダリング画像820を合成する。
(5)Wasteセッションの開始イベント
分割されたレンダリング画像820を削除するように指示する。
(6)Cleanセッションの開始イベント
すべてのスレーブノードにコピーされた3次元形状データ811を削除するように指示する。
(1)Copy部分1401
ノードにある一つのデータを、他のノードにコピーする。
(2)Delete部分1402
ノードにある一つのデータを削除する。
(3)Send部分1403
マスタノードにあるデータを、スレーブノードにコピーする。
(4)Execute部分1404
スレーブノードにタスクを実行させる。
(5)Receive部分1405
スレーブノードにあるデータを、マスタノードにコピーする。
(6)Waste部分1406
スレーブノードにあるデータを削除する。
(7)Batch部分1407
一つのスレーブノードに分散処理をさせる。
(8)Deliver部分1408
マスタノードにあるデータを、すべてのスレーブノードにコピーする。
(9)Race部分1409
すべてのスレーブノードに分散処理をさせる。
(10)Clean部分1410
すべてのノードにあるデータを削除する。
(11)Operate部分1411
クラスタコンピュータ100を動作させる。
(1)IPアドレス
(2)処理速度の計測値
またノードの状態1540には、次のようなものが含まれる。
(3)処理中かどうか(イベントハンドラを実行しているかどうか)
(4)通信中かどうか(ネットワークを使用しているかどうか)
(5)故障中かどうか
ノード属性テーブル1213に保持されるノードの状態1540も、スケジューラ1210の動作(スケジューリング)に伴って更新される。そのためスケジューラ1210は、ノード属性テーブル1213を参照することで、その時点でのノードの状態1540を知ることができる。
(1)データの一括配布(Deliver部分1408の実行)
(2)データの一括消去(Clean部分1410の実行)
(3)分散処理(Race部分1409の実行)
(4)処理完了率の取得
(5)処理の中断
(6)スレーブコンピュータ110b〜110iの故障。
Deliver部分1408では、操作対象データリスト1211に含まれているデータを、マスタノードからすべてのスレーブノードにコピーする。この動作を実現するため、スケジューラ1210はデータ配置テーブル1212を参照し、そのデータを保持しているノードと保持していないノードを、それぞれ一つずつ選定する。この選定には乱数を使ってもよいし、コンピュータ110がネットワーク120に接続されているトポロジを利用してもよい。たとえば複数のハブを含む木構造のトポロジを持つネットワーク120では、ハブを結ぶ伝送路の通信量が他の伝送路に比べて非常に大きくなる傾向がある。そこでハブの経由数の大きい、つまり送信元のノードから位相的に離れているノードに対して優先的にデータをコピーするようにすると、ハブを結ぶ伝送路には一度だけしかデータが通さないようになるので、システムの性能が向上する。
Clean部分1410では、それぞれのノードに保持されているデータを消去する。この動作を実現するため、スケジューラ1210はノードを選定した上で、データ配置テーブル1212を参照し、そのノードが保持しているデータの一覧を取得する。その後ノードに対し、それぞれのデータを消去するように指示する。こうした作業をすべてのノードに対して行う。
Race部分1409では、本来行うべき処理の全体を細かく分割した部分的な処理(タスク)を、それぞれのスレーブノードに実行させる。アプリケーション1300のスレーブモジュール1300b〜1300iでは、個々のタスクをイベントハンドラとしてあらかじめ設定しておく。そのためスケジューラ1210の動作は、現在の状態が処理中でも通信中でもないノードを見つけ、イベントを発生させるように指示する動作になる。ノードの状態を把握するには、ノード属性テーブル1213を参照する。使用可能なノードが見つかった場合、その中から一つを選定する。この選定には乱数を使ってもよいし、個々のノードの処理速度の計測値がわかっている場合には、最後近くのタスクに対し、処理速度の遅いノードを割り当てないような方法を採ってもよい。最後のタスクを遅いノードに実行させると、それがシステム全体を待たせてしまい、性能を低下させるからである。ノードがイベントハンドラを実行し始めたら、スケジューラ1210はノード属性テーブル1213を更新し、ノードの状態を処理中に変える。またイベントハンドラを実行し終えたら、ノードの状態をもとに戻す。こうして分割されたすべてのタスクが実行されるまで、上記の作業を繰り返す。
処理完了率の取得では、個々のタスクについて完了率を求め、それらの平均を算出する。ノード属性テーブル1213を参照することで、現在タスクを実行しているノードを知ることができる。アプリケーション1300のスレーブモジュール1300b〜1300iでは、タスクの完了率を求めるイベントハンドラを用意し、あらかじめ設定しておくことができる。そのためタスクを実行しているノードを知ったスケジューラ1210は、そのノードに対してイベントを発生させるように指示し、タスクの完了率を知ることができる。こうしてすべてのタスクに対して同様の操作を行い、最終的に平均を求めて、アプリケーション1300の割り込み要求手段1320に返す。
処理の中断では、実行中のすべてのタスクを中断させるとともに、配布された一時的なデータを消去しなければならない。タスクの中断についてスケジューラ1210は、ノード属性テーブル1213を参照することで、現在タスクを実行しているノードを知ることができる。アプリケーション1300のスレーブモジュール1300b〜1300iでは、タスクを中断させるイベントハンドラを用意しておくこともできる。すなわちスケジューラ1210は、タスクを実行しているすべてのノードに対し、イベントを発生させるように指示すればよい。
スレーブコンピュータ110b〜110iのいずれかが故障した場合、ノード属性テーブル1213を更新し、故障したノードの状態を故障中に変える。これによってスケジューラ1210は、故障したノードの使用を避ける。その上で、故障したノードで実行されたタスクを、故障していない他のスレーブノードで再実行させる。タスクの再実行は、そのタスクを含むBatch部分1407を再び実行させることで行うことができる。
110 コンピュータ
110a (マスタ)コンピュータ
110b〜110i (スレーブ)コンピュータ
111 ネットワークインタフェース
112 メモリ
113 ディスク
120 通信ネットワーク
131 ディスプレイ
132 キーボード
133 マウス
210 素材データ
220 結果データ
221 結果データ(断片)
310 (個別に送られる、アプリケーションから分配統合制御手段への)指示
320 (個別に送られる、分配統合制御手段からアプリケーションへの)通知
330 (分配統合制御手段からコンピュータへの)指示
340 (コンピュータから分配統合制御手段への)通知
350 (アプリケーションから分配統合制御手段への)指示
351 セッション開始指示
352 セッション処理内容指示
360 (分配統合制御手段からアプリケーションへの)通知
361 セッション開始通知
362 セッション終了通知
370 (分配統合制御手段からコンピュータシミュレータへの)模擬的な指示
380 (コンピュータシミュレータから分配統合制御手段への)模擬的な通知410 グローバル変数
420 (通知320をトリガとして実行される)処理ブロック
430 (特定の処理をトリガとして実行される)処理ブロック
500 クラスタコンピュータミドルウェア
500M クラスタコンピュータミドルウェア(マスタモジュール)
500S クラスタコンピュータミドルウェア(スレーブモジュール)
501 アプリケーションインタフェース
502 分配統合制御手段
503 コンピュータインタフェース
504 セッション保持手段
505 セッション更新手段
510 アプリケーション
510M アプリケーション(マスタモジュール)
510S アプリケーション(スレーブモジュール)
511 開始イベントハンドラ
512 終了イベントハンドラ
513 アドレス公開手段
520 アドレス
600、600A、600B セッション
601 Copyセッション
602 Deleteセッション
603 Sendセッション
604 Executeセッション
605 Receiveセッション
606 Wasteセッション
607 Batchセッション
608 Deliverセッション
609 Raceセッション
610 Cleanセッション
611 Operateセッション
700 天気図作成システム
701 天気図作成アプリケーション
711 地形データ
712、712a〜712h 地方別気象データ
720 天気図
800 3次元画像処理システム
801 3次元画像処理アプリケーション
811 3次元形状データ
812 レンダリング条件
820 レンダリング画像
900 クラスタコンピュータシミュレータ
903 コンピュータシミュレータインタフェース
910 コンピュータシミュレータ
910a (マスタ)コンピュータシミュレータ
910b〜910i (スレーブ)コンピュータシミュレータ
1001 コマンドメニュー
1010 細い輪郭の円形
1011 太い輪郭の円形
1012 矢線
1200 クラスタコンピュータミドルウェア
1200a クラスタコンピュータミドルウェアのマスタモジュール
1200b〜1200i クラスタコンピュータミドルウェアのスレーブモジュール
1210 スケジューラ
1211 操作対象データリスト
1212 データ配置テーブル
1213 ノード属性テーブル
1220 通信手段
1230 データコピー手段
1240 データ消去手段
1250 イベント発生手段
1260 割り込み受理手段
1300 アプリケーション
1300a アプリケーションのマスタモジュール
1300b〜1300i アプリケーションのスレーブモジュール
1310 イベントハンドラ設定手段
1320 割り込み要求手段
1400 処理手順
1401 Copy部分
1402 Delete部分
1403 Send部分
1404 Execute部分
1405 Receive部分
1406 Waste部分
1407 Batch部分
1408 Deliver部分
1409 Race部分
1410 Clean部分
1411 Operate部分
1510 ノードリスト
1520 データリスト
1530 属性
1540 状態
1610 前処理
1620 並列処理
1630 後処理
1640 スケジューリング
1641〜1647 イベントハンドリング
1710 メインルーチン
1721、1722、1723 イベントハンドラ。
Claims (30)
- 通信ネットワークで接続された複数のコンピュータによって構成されるクラスタコンピュータの上で動作し、前記複数のコンピュータを協調動作させる機能をアプリケーションに提供するクラスタコンピュータミドルウェアであり、
前記複数のコンピュータのうちの、1台あるいは複数のコンピュータで動作する前記アプリケーションから指示を受ける機能と、前記アプリケーションに通知を送る機能と、
前記コンピュータが行うべき処理を所定の位相構造に分割してなるセッションを公開する機能と、
個々の前記セッションに対し、開始を示す前記通知と終了を示す前記通知とを一つずつ、前記アプリケーションに送る機能とを有することを特徴とするクラスタコンピュータミドルウェア。 - 請求項1のクラスタコンピュータミドルウェアにおいて、
現在の前記セッションを保持する機能と、
前記コンピュータから非同期的に送られる通知をトリガとし、前記セッションを更新する機能を有することを特徴とするクラスタコンピュータミドルウェア。 - 請求項1のクラスタコンピュータミドルウェアにおいて、
複数の前記セッションに対して前後関係、あるいは包含関係が規定されることを特徴とするクラスタコンピュータミドルウェア。 - 請求項1のクラスタコンピュータミドルウェアにおいて、
処理の途中でエラーが発生した際に、前記エラーを発生させた前記セッションを特定するための情報を、前記アプリケーションに送る機能を有することを特徴とするクラスタコンピュータミドルウェア。 - 請求項1のクラスタコンピュータミドルウェアにおいて、
マスタノードにあるデータをスレーブノードにコピーする前記セッションと、
スレーブノードにあるデータを削除する前記セッションと、
マスタノードにあるデータをすべてのスレーブノードに一括してコピーする前記セッションと、
すべてのノードにあるデータを一括して削除する前記セッションとを含むことを特徴とするクラスタコンピュータミドルウェア。 - 請求項1に記載のクラスタコンピュータの動作を模擬する機能をアプリケーションに提供するクラスタコンピュータシミュレータであり、
1台のコンピュータで動作する前記アプリケーションから指示を受ける機能と、前記アプリケーションに通知を送る機能と、
前記コンピュータが行うべき処理を所定の位相構造に分割してなるセッションを公開する機能と、
個々の前記セッションに対し、開始を示す前記通知と終了を示す前記通知とを一つずつ、前記アプリケーションに送る機能とを有することを特徴とするクラスタコンピュータシミュレータ。 - 請求項6のクラスタコンピュータシミュレータにおいて、
現在の前記セッションを保持する機能と、
前記コンピュータの動作を模擬するシミュレータから非同期的に送られる通知をトリガとし、前記セッションを更新する機能を有することを特徴とするクラスタコンピュータシミュレータ。 - 請求項6のクラスタコンピュータシミュレータにおいて、
複数の前記セッションに対して前後関係、あるいは包含関係が規定されることを特徴とするクラスタコンピュータシミュレータ。 - 請求項6のクラスタコンピュータシミュレータにおいて、
処理の途中でエラーが発生した際に、前記エラーを発生させた前記セッションを特定するための情報を、前記アプリケーションに送る機能を有することを特徴とするクラスタコンピュータシミュレータ。 - 請求項6のクラスタコンピュータシミュレータにおいて、
マスタノードにあるデータをスレーブノードにコピーする前記セッションと、
スレーブノードにあるデータを削除する前記セッションと、
マスタノードにあるデータをすべてのスレーブノードに一括してコピーする前記セッションと、
すべてのノードにあるデータを一括して削除する前記セッションとを含むことを特徴とするクラスタコンピュータシミュレータ。 - 通信ネットワークで接続された複数のコンピュータによって構成されるクラスタコンピュータのうちの、1台あるいは複数のコンピュータで動作するアプリケーションであって、
前記アプリケーションは、前記複数のコンピュータを協調動作させる機能を、前記クラスタコンピュータの上で動作するクラスタコンピュータミドルウェアにより提供されるものであり、
前記アプリケーションは、
前記クラスタコンピュータミドルウェアに指示を送る機能と、
前記クラスタコンピュータミドルウェアから通知を受け取る機能と、
前記クラスタコンピュータミドルウェアから、前記コンピュータが行うべき処理を所定の位相構造に分割してなる個々のセッションに対し、開始を示す前記通知と終了を示す前記通知とを一つずつ、受け取る機能と、
前記セッションの開始によって送られる前記通知に対する処理を行うルーチンを保持する機能と、
前記クラスタコンピュータミドルウェアに、前記ルーチンを実行させるために必要な情報を送る機能と、前記セッションの開始を求める指示を送る機能とを備えた、ことを特徴とするアプリケーション。 - 通信ネットワークで接続された複数のコンピュータによって構成されるクラスタコンピュータの構成を記憶保持するコンピュータで動作するアプリケーションであって、
前記アプリケーションは、前記クラスタコンピュータの動作を模擬する機能をクラスタコンピュータシミュレータにより提供されるものであり、
前記アプリケーションは、
前記クラスタコンピュータシミュレータに指示を送る機能と、
前記クラスタコンピュータシミュレータから通知を受け取る機能と、
前記コンピュータが行うべき処理を所定の位相構造に分割してなる個々のセッションに対し、開始を示す前記通知と終了を示す前記通知とを一つずつ、受け取る機能と、
前記セッションの開始によって送られる前記通知に対する処理を行うルーチンを保持する機能と、
前記クラスタコンピュータシミュレータに前記ルーチンを実行させるために必要な情報を送る機能と、前記セッションの開始を求める指示を送る機能とを有する、ことを特徴とするアプリケーション。 - 請求項11あるいは請求項12のアプリケーションにおいて、
前記セッションの開始を求める前記指示を送った後、前記指示に対応する前記セッションの終了を伝える通知を受け取る機能を有することを特徴とするアプリケーション。 - 請求項3あるいは請求項8に記載のセッションおよびその位相構造を表示部に視覚的に表示するセッション表示方法であって、
個々の前記セッションを長方形で表し、
前記前後関係を有する複数のセッションを表す長方形を上下に配置し、
前記包含関係を有する複数のセッションを表す長方形を入れ子に配置することを特徴とするセッション表示方法。 - 請求項1に記載のアプリケーションを開発するために使われるアプリケーション開発支援方法であり、
前記クラスタコンピュータミドルウェアと同じ位相構造を持つ前記セッションを保持する、請求項6のクラスタコンピュータシミュレータによって動作する模擬アプリケーションを開発する工程と、
前記模擬アプリケーションを、請求項1のクラスタコンピュータミドルウェアに移植する工程とを含むことを特徴とするアプリケーション開発支援方法。 - クラスタコンピュータで動作するクラスタコンピュータミドルウェアであって、前記クラスタコンピュータが、一つのマスタコンピュータと、一つ以上のスレーブコンピュータと、前記マスタコンピュータおよび前記スレーブコンピュータを相互に接続するネットワークとを含むものにおいて、
前記クラスタコンピュータミドルウェアが少なくとも、
前記マスタコンピュータで動作するマスタアプリケーションとのリンクが可能なマスタモジュールと、
前記スレーブコンピュータで動作するスレーブアプリケーションとのリンクが可能なスレーブモジュールとによって構成され、
前記マスタモジュールが、
前記クラスタコンピュータで実行されるべき並行処理手順を作成するスケジューラを備え、
前記スケジューラが、
動作を開始する前に、前記マスタアプリケーションの処理を一時停止させ、
前記動作を終了した後に、前記マスタアプリケーションの処理を再開させ、かつ、
前記マスタモジュールおよび前記スレーブモジュールが、
前記スケジューラから受け取った指示に基づき、他の前記マスタモジュールあるいは前記スレーブモジュールと相互に通信する手段と、
前記スケジューラから受け取った指示に基づき、前記マスタアプリケーション、あるいは前記スレーブアプリケーションによって事前に設定されたイベントハンドラを実行する手段とを備える、
ことを特徴とするクラスタコンピュータミドルウェア。 - 請求項16に記載のクラスタコンピュータミドルウェアであって、
逐次的にルーチンを実行する処理系からの呼び出しによって動作し、
前記スケジューラの動作を開始させ、かつ前記スケジューラの終了を待つ機能を有する前記ルーチンを前記処理系に公開する、
ことを特徴とするクラスタコンピュータミドルウェア。 - 請求項16に記載のクラスタコンピュータミドルウェアであって、
前記マスタモジュール、あるいは前記スレーブモジュールが、
データのコピーを行うデータコピー手段と、
データの消去を行うデータ消去手段とを備え、かつ
前記スケジューラが、
前記データコピー手段、および前記データ消去手段を動作させる手段を備える、ことを特徴とするクラスタコンピュータミドルウェア。 - 請求項18に記載のクラスタコンピュータミドルウェアであって、
前記マスタモジュールおよび前記スレーブモジュールが、
前記イベントハンドラの実行、前記データのコピー、前記データの消去のうち、少なくとも一つの終了を知らせる通知を前記スケジューラに送る手段を備え、
前記スケジューラが
前記マスタモジュールおよび前記スレーブモジュールから送られる前記通知を時系列的に並べ替える手段を備える、
ことを特徴とするクラスタコンピュータミドルウェア。 - 請求項18に記載のクラスタコンピュータミドルウェアであって、
前記イベントハンドラが、
コピーあるいは消去の対象となる前記データをリストに追加する手段、あるいはリストから削除する手段を備え、かつ
前記スケジューラが、前記リストに基づいて前記データコピー手段、および前記データ消去手段を動作させる手段を備える、
ことを特徴とするクラスタコンピュータミドルウェア。 - 請求項18に記載のクラスタコンピュータミドルウェアであって、
前記マスタモジュールが、
前記マスタアプリケーションから処理中断要求を受け取る手段を備え、かつ
前記スケジューラが、
コピーあるいは消去された前記データの配置を管理する手段と、
前記処理中断要求を受け取った時に、前記データ消去手段に対し、前記データの配置に基づいて、中間的な前記データを消去させる指示を送る手段とを備える、
ことを特徴とするクラスタコンピュータミドルウェア。 - 請求項16に記載のクラスタコンピュータミドルウェアであって、
前記スケジューラが、
前記マスタコンピュータおよび前記スレーブコンピュータの状態を管理する手段と、
前記状態に基づき、
前記マスタモジュールあるいは前記スレーブモジュールに、
前記イベントハンドラの複数回の実行を振り分ける手段とを備える、
ことを特徴とするクラスタコンピュータミドルウェア。 - 請求項22に記載のクラスタコンピュータミドルウェアであって、
前記スケジューラが、
前記マスタコンピュータおよび前記スレーブコンピュータの処理速度を把握する手段と、
前記イベントハンドラの複数回の実行を、その順番に基づき、
複数の前記マスタコンピュータあるいは前記スレーブコンピュータのうち、処理速度の速いものに優先的に振り分ける手段とを、備えることを特徴とするクラスタコンピュータミドルウェア。 - 請求項22に記載のクラスタコンピュータミドルウェアであって、
前記スケジューラが
前記マスタモジュールおよび前記スレーブモジュールに振り分けられた前記イベントハンドラを実行させる際、
前記マスタコンピュータおよび前記スレーブコンピュータを一意に識別する情報、もしくは前記イベントハンドラの個々の実行を一意に識別する情報を前記イベントハンドラに渡す、ことを特徴とするクラスタコンピュータミドルウェア。 - 請求項16に記載のクラスタコンピュータミドルウェアであって、
前記スケジューラが、
前記スレーブコンピュータの故障を検知する手段と、
前記故障を検知した後、
故障した前記スレーブモジュールに対して送った指示の複製を他の故障していない前記スレーブモジュールに対して送り直す手段とを備える、
ことを特徴とするクラスタコンピュータミドルウェア。 - 請求項18に記載のクラスタコンピュータミドルウェアであって、
前記スケジューラが、
少なくとも一つの前記スレーブモジュールの前記データコピー手段に対し、他の前記スレーブモジュールにデータをコピーさせる手段を備える、
ことを特徴とするクラスタコンピュータミドルウェア。 - 請求項26に記載のクラスタコンピュータミドルウェアであって、
前記ネットワークのトポロジが複数のハブを含む木構造であり、
前記スケジューラが、
前記ネットワークの前記トポロジを把握する手段と、
コピー元になる前記マスタモジュールあるいは前記スレーブモジュールと、
コピー先になる他の前記スレーブモジュールが、異なる前記ハブに接続されているかどうかを判定し、
前記判定の結果に基づいて
前記コピー先になる他の前記スレーブモジュールを選定する手段とを、備えることを特徴とするクラスタコンピュータミドルウェア。 - 請求項1あるいは請求項16のクラスタコンピュータミドルウェアを記録している、コンピュータ読み取り可能な記録媒体。
- 請求項6のクラスタコンピュータシミュレータを記録している、コンピュータ読み取り可能な記録媒体。
- 請求項11あるいは請求項12のアプリケーションを記録している、コンピュータ読み取り可能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005361565A JP4627491B2 (ja) | 2005-01-19 | 2005-12-15 | クラスタコンピュータミドルウェアプログラム、クラスタコンピュータシミュレータプログラム、クラスタコンピュータ用アプリケーションプログラム、およびアプリケーションプログラム開発支援方法 |
US11/331,138 US20060184819A1 (en) | 2005-01-19 | 2006-01-13 | Cluster computer middleware, cluster computer simulator, cluster computer application, and application development supporting method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005011576 | 2005-01-19 | ||
JP2005361565A JP4627491B2 (ja) | 2005-01-19 | 2005-12-15 | クラスタコンピュータミドルウェアプログラム、クラスタコンピュータシミュレータプログラム、クラスタコンピュータ用アプリケーションプログラム、およびアプリケーションプログラム開発支援方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009128443A Division JP5166350B2 (ja) | 2005-01-19 | 2009-05-28 | クラスタコンピュータミドルウェアプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006228192A true JP2006228192A (ja) | 2006-08-31 |
JP4627491B2 JP4627491B2 (ja) | 2011-02-09 |
Family
ID=36817024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005361565A Expired - Fee Related JP4627491B2 (ja) | 2005-01-19 | 2005-12-15 | クラスタコンピュータミドルウェアプログラム、クラスタコンピュータシミュレータプログラム、クラスタコンピュータ用アプリケーションプログラム、およびアプリケーションプログラム開発支援方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060184819A1 (ja) |
JP (1) | JP4627491B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008023491A1 (fr) | 2006-08-24 | 2008-02-28 | Olympus Medical Systems Corp. | dispositif et procédé de traitement d'images à usage médical |
DE112008004193T5 (de) | 2008-12-22 | 2012-06-21 | Toyota Jidosha Kabushiki Kaisha | Elektronisches fahrzeugsteuersystem, elektronischefahrzeugsteuereinheit und fahrzeugsteuerungssynchronisationsverfahren |
DE112008004194T5 (de) | 2008-12-22 | 2012-06-21 | Toyota Jidosha Kabushiki Kaisha | Elektronisches fahrzeugsteuersystem, elektronischefahrzeugsteuereinheit und fahrzeugsteuerungs-synchronisationsverfahren |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9043771B1 (en) * | 2007-06-29 | 2015-05-26 | Cadence Design Systems, Inc. | Software modification methods to provide master-slave execution for multi-processing and/or distributed parallel processing |
KR100953098B1 (ko) * | 2007-12-17 | 2010-04-19 | 한국전자통신연구원 | 클러스터 시스템 및 그의 운영방법 |
US8719316B2 (en) * | 2011-05-13 | 2014-05-06 | Microsoft Corporation | Write agent delayed write to data stores |
KR101552119B1 (ko) * | 2013-11-21 | 2015-09-11 | 건국대학교 산학협력단 | EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템 |
CN104410698B (zh) * | 2014-12-03 | 2019-03-08 | 天津南大通用数据技术股份有限公司 | 一种share nothing集群下的发起节点异常处理方法及装置 |
TW202023967A (zh) | 2015-05-06 | 2020-07-01 | 美商康寧公司 | 調節熔融玻璃之設備及方法 |
US9367554B1 (en) | 2015-09-14 | 2016-06-14 | Atlassian Pty Ltd | Systems and methods for enhancing performance of a clustered source code management system |
JP6874039B2 (ja) * | 2018-06-28 | 2021-05-19 | シチズン時計株式会社 | 携帯通信機器連携システム、及び、主携帯通信機器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002518765A (ja) * | 1998-06-17 | 2002-06-25 | テラブス・リサーチ・リミテッド | 通信コントローラメッセージングシステム |
JP2003256390A (ja) * | 2002-02-27 | 2003-09-12 | Mitsubishi Electric Corp | 分散オブジェクトシステム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768552A (en) * | 1990-09-28 | 1998-06-16 | Silicon Graphics, Inc. | Graphical representation of computer network topology and activity |
US6453345B2 (en) * | 1996-11-06 | 2002-09-17 | Datadirect Networks, Inc. | Network security and surveillance system |
US6438705B1 (en) * | 1999-01-29 | 2002-08-20 | International Business Machines Corporation | Method and apparatus for building and managing multi-clustered computer systems |
US6460039B1 (en) * | 1999-12-09 | 2002-10-01 | International Business Machines Corporation | Middleware support for primary component in a partitionable cluster environment |
US6751717B2 (en) * | 2001-01-23 | 2004-06-15 | Micron Technology, Inc. | Method and apparatus for clock synchronization between a system clock and a burst data clock |
US7058858B2 (en) * | 2001-04-23 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | Systems and methods for providing automated diagnostic services for a cluster computer system |
US7200662B2 (en) * | 2001-07-06 | 2007-04-03 | Juniper Networks, Inc. | Integrated rule network management system |
CA2365730A1 (en) * | 2001-12-20 | 2003-06-20 | Platform Computing (Barbados) Inc. | Method and device to assist in the execution of tasks of parallel jobs |
US20050171752A1 (en) * | 2004-01-29 | 2005-08-04 | Patrizio Jonathan P. | Failure-response simulator for computer clusters |
US7328144B1 (en) * | 2004-04-28 | 2008-02-05 | Network Appliance, Inc. | System and method for simulating a software protocol stack using an emulated protocol over an emulated network |
-
2005
- 2005-12-15 JP JP2005361565A patent/JP4627491B2/ja not_active Expired - Fee Related
-
2006
- 2006-01-13 US US11/331,138 patent/US20060184819A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002518765A (ja) * | 1998-06-17 | 2002-06-25 | テラブス・リサーチ・リミテッド | 通信コントローラメッセージングシステム |
JP2003256390A (ja) * | 2002-02-27 | 2003-09-12 | Mitsubishi Electric Corp | 分散オブジェクトシステム |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008023491A1 (fr) | 2006-08-24 | 2008-02-28 | Olympus Medical Systems Corp. | dispositif et procédé de traitement d'images à usage médical |
DE112008004193T5 (de) | 2008-12-22 | 2012-06-21 | Toyota Jidosha Kabushiki Kaisha | Elektronisches fahrzeugsteuersystem, elektronischefahrzeugsteuereinheit und fahrzeugsteuerungssynchronisationsverfahren |
DE112008004194T5 (de) | 2008-12-22 | 2012-06-21 | Toyota Jidosha Kabushiki Kaisha | Elektronisches fahrzeugsteuersystem, elektronischefahrzeugsteuereinheit und fahrzeugsteuerungs-synchronisationsverfahren |
US8244423B2 (en) | 2008-12-22 | 2012-08-14 | Toyota Jidosha Kabushiki Kaisha | Vehicle electronic control system, vehicle electronic control unit, and vehicle control synchronization method |
US8290663B2 (en) | 2008-12-22 | 2012-10-16 | Toyota Jidosha Kabushiki Kaisha | Vehicle electronic control system, vehicle electronic control unit, and vehicle control synchronization method |
DE112008004193B4 (de) | 2008-12-22 | 2023-04-06 | Toyota Jidosha Kabushiki Kaisha | Elektronisches fahrzeugsteuersystem, elektronischefahrzeugsteuereinheit und fahrzeugsteuerungssynchronisationsverfahren |
Also Published As
Publication number | Publication date |
---|---|
JP4627491B2 (ja) | 2011-02-09 |
US20060184819A1 (en) | 2006-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4627491B2 (ja) | クラスタコンピュータミドルウェアプログラム、クラスタコンピュータシミュレータプログラム、クラスタコンピュータ用アプリケーションプログラム、およびアプリケーションプログラム開発支援方法 | |
CN110941446B (zh) | 基于多环境离线任务的版本发布方法及装置 | |
JP3737686B2 (ja) | ソフトウェア・アプリケーションの中断のない処理の実現方法 | |
CN102981929B (zh) | 磁盘镜像的管理方法和系统 | |
US7849223B2 (en) | Virtually synchronous Paxos | |
US7716377B2 (en) | Clustering server providing virtual machine data sharing | |
JP3439337B2 (ja) | ネットワーク管理システム | |
JP5298763B2 (ja) | 仮想システム制御プログラム、方法及び装置 | |
US9495283B2 (en) | System and method for server migration synchronization | |
KR100437746B1 (ko) | 원격의 호스트 시스템 상에서 실행되는 작업을 로컬의 워크스테이션에서 모니터링하는 방법 및 분산 컴퓨터 시스템과 컴퓨터 판독가능한 기록 매체 | |
Sonntag et al. | Model-as-you-go: an approach for an advanced infrastructure for scientific workflows | |
JP2008021111A (ja) | 業務システム構成変更方法、管理コンピュータ、および、業務システム構成変更方法のプログラム | |
CN107644030A (zh) | 分布式数据库数据同步方法、相关装置及系统 | |
US20110029930A1 (en) | Distributed processing device and distributed processing method | |
JPH11184699A (ja) | 移動オブジェクト群の実行方法、及び移動オブジェクト群を格納した記憶媒体 | |
WO2021143590A1 (zh) | 一种分布式容器镜像构建调度系统及方法 | |
CN112596762A (zh) | 一种滚动升级方法及装置 | |
US11948005B2 (en) | Managed integration of constituent services of multi-service applications | |
CN114756357B (zh) | 一种基于jvm的非阻塞分布式计划任务调度方法 | |
CN109992373B (zh) | 资源调度方法、信息管理方法和装置及任务部署系统 | |
US10845997B2 (en) | Job manager for deploying a bundled application | |
JP5166350B2 (ja) | クラスタコンピュータミドルウェアプログラム | |
CN111880905B (zh) | 一种openstack跨越cell迁移虚拟机的方法 | |
JP2010108261A (ja) | 情報処理方法、情報処理装置およびプログラム | |
Kessler et al. | RAVEL, a support system for the development of distributed, multi-user VE applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20060525 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060525 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081202 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090331 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090528 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100202 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100401 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101102 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101105 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131119 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |