JP2005242986A - 並列計算方法、並列計算プログラム及び計算機 - Google Patents

並列計算方法、並列計算プログラム及び計算機 Download PDF

Info

Publication number
JP2005242986A
JP2005242986A JP2004327630A JP2004327630A JP2005242986A JP 2005242986 A JP2005242986 A JP 2005242986A JP 2004327630 A JP2004327630 A JP 2004327630A JP 2004327630 A JP2004327630 A JP 2004327630A JP 2005242986 A JP2005242986 A JP 2005242986A
Authority
JP
Japan
Prior art keywords
job
worker
computer
value
effectiveness
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
Application number
JP2004327630A
Other languages
English (en)
Other versions
JP4203001B2 (ja
Inventor
Kazuto Kubota
和 人 久保田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004327630A priority Critical patent/JP4203001B2/ja
Priority to US11/040,011 priority patent/US7707580B2/en
Publication of JP2005242986A publication Critical patent/JP2005242986A/ja
Application granted granted Critical
Publication of JP4203001B2 publication Critical patent/JP4203001B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Abstract

【課題】 一部の計算機の負荷が上昇したり、一部の計算機が停止したりした場合でも、全体の処理速度が低下することを防ぐ。
【解決手段】 本発明の一態様に従った並列計算方法は、ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す各々有効度が付与された複数のワーカ計算機とを用い、前記マスタ計算機が:各々価値を有する複数のジョブを生成し;生成された前記ジョブをジョブ記憶部内に格納し;前記ジョブ記憶部に格納された前記ジョブの価値の大きさの順位に応じた有効度閾値を前記ジョブに対して算出し;前記ジョブ記憶部内の前記ジョブについて、前記ジョブを実行しているワーカ計算機の有効度を用いた演算によって有効度演算値を算出し;前記有効度演算値が前記有効度閾値に満たないジョブを空きの前記ワーカ計算機に実行させ;前記ワーカ計算機から前記ジョブの実行結果を受け取り、前記受け取ったジョブを前記ジョブ記憶部から削除する。
【選択図】 図1

Description

本発明は、マスタ・ワーカ型の計算機システムを用いて複数のジョブを並列処理するための並列計算方法、並列計算プログラム及び計算機に関し、より詳しくは、一部の計算機が何らかの要因で高負荷になったり故障したりした場合でも、実行性能を著しく低下させることなく計算を進めることを可能にした並列計算方法、並列計算プログラム及び計算機に関する。
複数のジョブを並列処理する計算機が存在する場合に処理速度の低下を防ぐ方法として負荷分散と称される手法がある。これは、負荷の高い計算機に割り当てる仕事(以降ジョブと記述する)の量を減らし他の計算機に割り当てることで負荷の均等化を図り、これにより処理速度の低下を阻止するものである(例えば、非特許文献1に負荷分散方式とその効果に関する記述がある)。
この負荷分散を用いた並列計算において、特定の計算機の負荷が、ジョブの実行途中で外的要因により動的に変化し、例えば上昇する場合がある。ジョブの実行途中で特定の計算機の負荷が上昇することをジョブの実行前に分かっていれば、この計算機へのジョブを減らし、他の計算機に割り振ることで負荷の上昇を抑えることができる。しかし、負荷の変動予測は一般に困難であるため、ジョブを適切に配分することは困難である。したがって、ある計算機の負荷が並列計算中に外的要因で上昇した場合、この計算機におけるジョブの終了が遅れ、この結果、並列計算全体の処理速度が低下する問題があった。
一方、この負荷分散を用いた並列計算においては、一部の計算機が高負荷になることの他、ジョブの実行の途中で計算機が故障により停止することもある。
計算機が故障により停止してしまう場合の対処方法としては大きく分けて3つの方法が考えられる。
第1番目として、あらかじめ予備のハードウェアを用意してハードウェアを多重化する方法がある。非特許文献2には、故障に対処するために、並行動作を行うハードウェア及び比較器を用いたシステムの構成法が記述されている。しかし、この方法ではハードウェアの構成が大規模になりコスト増につながる。
第2番目として、各計算機にミドルウェアを走らせて耐故障性を持たせるという方法がある。非特許文献3には、耐故障性実現のための基本技術であるチェックポインティング(check pointing)とミグレーション(migration)の技術の概要が述べてられている。チェックポインティングは、ある時点でのジョブの実行イメージを保存する技術である。ミグレーションは保存した実行イメージを他の計算機に移し、計算を再実行する機能である。計算機同士で互いに実行イメージを保存し合い、ダウンした計算機のジョブを他の計算機で実行することで、並列計算の停止を防ぐ。しかし、このようなチェックポインティング及びミグレーションを行うミドルウェアを全ての計算機に配るのは大変であり、また、定期的にチェックポインティングを行うことはジョブの実行に余計なオーバーヘッドがかかるという問題点がある。また、この方法では、故障が発見された時点で、ジョブを再実行するので、故障のない場合と比べて並列処理の実行性能は大きく劣ることになる。
第3番目として、全てのジョブを多重化して実行する方法がある。しかし、この方法であると、多重化した分だけジョブの数が余計に増えてしまう。例えば、2重化した場合にはジョブの数が2倍になってしまう。
Nicholas Carriero, David Gelernter著、"HOW TO WRITE PARALLEL PROGRAMS A FIRST COURSE", The MIT Press. 79ページ。 Gregor v. Bochmann著「分散処理システム入門」産報出版、48ページ。 Douglas Thain, Todd Tannenbaum, Miron Livny著, "Condor and the Grid", John Wiley, 304ページ。
このように、従来においては、並列処理の途中で一部の計算機の負荷が上昇したり、一部の計算機が停止したりした場合に、全体の処理速度の低下を防ぐことは困難であった。
本発明は、上記問題点に鑑みてなされたものであり、その目的は、一部の計算機の負荷が上昇したり、一部の計算機が停止したりした場合でも、全体の処理速度の低下を可及的に阻止する並列計算方法、並列計算プログラム及び計算機を提供することにある。
本発明の一態様としての並列計算方法は、ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す各々有効度が付与された複数のワーカ計算機とを用いて並列計算処理を行う並列計算方法であって:前記マスタ計算機が、 各々価値を有する複数のジョブを生成し;生成された前記ジョブをジョブ記憶部内に格納し;前記ジョブ記憶部に格納された前記ジョブの価値の大きさの順位に応じた有効度閾値を前記ジョブに対して算出し;前記ジョブ記憶部内の前記ジョブについて、前記ジョブを実行しているワーカ計算機の有効度を用いた演算によって有効度演算値を算出し;前記有効度演算値が前記有効度閾値に満たないジョブを空きの前記ワーカ計算機に実行させ;前記ワーカ計算機から前記ジョブの実行結果を受け取り、前記受け取ったジョブを前記ジョブ記憶部から削除する;ことを特徴とする。
本発明の一態様としての並列計算方法は、ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す複数のワーカ計算機とを用いて並列計算処理を行う並列計算方法であって:前記マスタ計算機が、複数のジョブを生成し;生成した前記ジョブを前記ワーカ計算機に実行させ;前記ワーカ計算機からジョブの実行結果を回収し;所定のジョブ結果回収終了条件に基づき、前記ジョブの実行結果の回収を終了するか否かを判定する;ことを特徴とする。
本発明の一態様としての並列計算方法は、ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す複数のワーカ計算機とを用いて並列計算処理を行う並列計算方法であって:前記マスタ計算機が、各々価値を有する複数のジョブを生成し;前記ジョブの価値に基づいて各前記ジョブの多重度を算出し;算出された多重度に従って前記ジョブを前記ワーカ計算機に実行させ;前記ワーカ計算機からジョブの実行結果を回収し;所定のジョブ結果回収終了条件に基づき、前記ジョブの実行結果の回収を終了するか否かを判定する;ことを特徴とする。
本発明の一態様としての並列計算プログラムは、ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す各々有効度が付与された複数のワーカ計算機とを用いて並列計算処理を行うシステムにおける前記マスタ計算機で実行する並列計算プログラムであって:各々価値を有する複数のジョブを生成するステップと;生成された前記ジョブをジョブ記憶部内に格納するステップと;前記ジョブ記憶部に格納された前記ジョブの価値の大きさの順位に応じた有効度閾値を前記ジョブに対して算出するステップと;前記ジョブ記憶部内の前記ジョブについて、前記ジョブを実行しているワーカ計算機の有効度を用いた演算によって有効度演算値を算出するステップと;前記有効度演算値が前記有効度閾値に満たないジョブを空きの前記ワーカ計算機に実行させるステップと;前記ワーカ計算機から前記ジョブの実行結果を受け取り、前記受け取ったジョブを前記ジョブ記憶部から削除するステップと;を備えたことを特徴とする。
本発明の一態様としての並列計算プログラムは、ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す複数のワーカ計算機とを用いて並列計算処理を行うシステムにおける前記マスタ計算機で実行する並列計算プログラムであって:複数のジョブを生成するステップと;生成した前記ジョブを前記ワーカ計算機に実行させる実行ステップと;前記ワーカ計算機から前記ジョブの実行結果を回収する回収ステップと;所定のジョブ結果回収終了条件に基づき、前記ジョブの実行結果の回収を終了するか否かを判定する判定ステップと;を備えたことを特徴とする。
本発明の一態様としての並列計算プログラムは、ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す複数のワーカ計算機とを用いて並列計算処理を行うシステムにおける前記マスタ計算機で実行する並列計算プログラムであって:価値を有する複数のジョブを生成する生成ステップと;前記ジョブの価値に基づいて各前記ジョブの多重度を算出する算出ステップと;算出された多重度に従って前記ジョブを前記ワーカ計算機に実行させる実行ステップと;前記ワーカ計算機からジョブの実行結果を回収する回収ステップと;所定のジョブ結果回収終了条件に基づき、前記ジョブの実行結果の回収を終了するか否かを判定する判定ステップと;を備えたことを特徴とする。
本発明の一態様としての計算機は、複数のワーカ計算機にジョブを実行させて、前記ワーカ計算機から前記ジョブの実行結果を受け取る計算機であって:価値を有するジョブを生成するジョブ生成部と;生成された前記ジョブを格納するジョブ記憶部と;前記ジョブ記憶部に格納された前記ジョブの価値の大きさの順位に応じた有効度閾値を前記ジョブに対して算出する有効度閾値算出部と;各前記ワーカ計算機に付与された有効度を格納した有効度記憶部と;前記ジョブ記憶部内の前記ジョブについて、前記ジョブを実行しているワーカ計算機の有効度を用いた演算によって有効度演算値を算出する有効度演算値算出部と;前記有効度演算値が前記有効度閾値に満たないジョブを空いている前記ワーカ計算機に実行させ、前記ワーカ計算機から前記ジョブの実行結果を受け取った場合は、前記受け取ったジョブを前記ジョブ記憶部から削除するジョブ管理部と;備えたことを特徴とする。
本発明の一態様としての計算機は、複数のワーカ計算機にジョブを実行させて、前記ワーカ計算機から前記ジョブの実行結果を受け取る計算機であって:複数のジョブを生成するジョブ生成部と;生成した前記ジョブを前記ワーカ計算機に実行させ、前記ワーカ計算機からジョブの実行結果を回収するジョブ回収部と;所定のジョブ結果回収終了条件に基づき、前記ジョブ結果の回収を終了するか否かを判定する判定部と;を備えたことを特徴とする。
本発明の一態様としての計算機は、複数のワーカ計算機にジョブを実行させて、前記ワーカ計算機から前記ジョブの実行結果を受け取る計算機であって:各々価値を有する複数のジョブを生成するジョブ生成部と;前記ジョブの価値に基づいて各前記ジョブの多重度を算出するジョブ多重化部と;算出された多重度に従って前記ジョブを前記ワーカ計算機に実行させ、前記ワーカ計算機からジョブの実行結果を回収するジョブ回収部と;所定のジョブ結果回収終了条件に基づき、前記ジョブの実行結果の回収を終了するか否かを判定する判定部と;を備えたことを特徴とする。
本発明によれば、並列処理の実行時に一部の計算機が高負荷により処理が滞ってしまったり停止したりした場合でも、全体の並列計算の速度が著しく低下する状況を可及的に防ぐことができる。
(第1の実施の形態)
図1は、本発明の第1の実施の形態としての並列処理方法を実施するための計算機システムの基本的な構成を示した図である。
以下、本計算機システムの基本的な構成及び動作を説明し、その後、本計算機システムの具体的な適用例を説明する。
図1に示すように、本計算機システムは、ジョブの生成及び管理等を行うマスタ計算機11と、マスタ計算機11から与えられたジョブを実行して実行結果(ジョブ結果)を返すワーカA〜Eとを備える。
マスタ計算機11内のジョブプール(ジョブ記憶部)14は、マスタ計算機11によって生成されたジョブを格納する。各ジョブは番号で区別され、それぞれが価値を持つ。本例では、ジョブプール14内にジョブ1〜ジョブ5が格納され、ジョブ1は価値4、ジョブ2は価値7、ジョブ3は価値8、ジョブ4は価値3、ジョブ5は価値5を有する。
有効度集計値保持手段17は、ジョブ番号を保持する手段と、有効度集計値(有効度演算値)を保持する手段とを有する。
ジョブ番号を保持する手段にはジョブプール14内のジョブの番号が入る。ジョブ番号は、ジョブの価値の大きい順に左から並ぶ。
有効度集計値を保持する手段には、該当するジョブを実行しているワーカの有効度を用いた演算結果が入る。演算は加算でもよいし、ワーカの有効度やジョブの実行時間を用いた関数による計算でもよい。ここではワーカの有効度を加算したものを有効度集計値とする。
例えば、ジョブ3の有効度集計値が3となっているのは、ジョブ3を実行中のワーカA、Bの有効度がそれぞれ2と1だからである。また、ジョブ2の有効度集計値が2となっているのは、ジョブ2を実行中のワーカC、Dの有効度が両方とも1だからである。
有効度閾値保持手段12は、有効度閾値を保持する。有効度閾値は、有効度集計値保持手段17中の左から見て同じ位置にあるジョブ(同じインデックスを持つジョブ)に対して与えることのできる有効度集計値の上限を示す。
例えば、ジョブ3に与えることのできる有効度集計値の上限は、最大で3であり、ジョブ2では2となっている。
有効度閾値は有効度閾値算出手段15によって算出される。有効度閾値算出手段15は、例えば、ジョブの価値の順位と有効度閾値とを対応づけたテーブルを保持し、ジョブプール14内の各ジョブについて、その価値の順位に応じた有効度閾値を上記テーブルに基づいて決定する。この他、ジョブプール14内のジョブ数、空きのワーカ数、ジョブの価値等を用いて、有効度閾値を算出しても良い。有効度閾値算出手段15は、ジョブプール14内にジョブが生成される度に、有効度閾値を再計算する。
マスタ計算機11内のワーカ有効度保持手段10は個々のワーカに付加された有効度を格納する。有効度は、例えば計算能力であったり、信頼度であったりする。
ジョブ管理手段16は、ジョブプール14内のジョブのうち、有効度集計値が有効度閾値に満たないジョブをワーカへ通信手段13を介して投入する。また、ジョブ管理手段16は、ワーカから返された結果を受け取り、受け取った結果に基づきジョブプール14内のジョブを管理(例えば削除や生成)し、また、有効度集計値保持手段17内のジョブ番号及び有効度集計値を管理(例えば変更等)する。
制御手段19は、後述のマスタプログラムを実行してマスタ計算機11全体を制御する。
マスタ計算機11内の上記各手段によって実現される機能は、ハードウェア構成によって実現されても、プログラム(例えばマスタプログラム)の実行によって実現されてもよい。
ワーカは、マスタ計算機11から渡されたジョブを実行し、ジョブ結果をマスタ計算機11に返す。
以上のマスタ計算機11はマスタプログラムに従って動作し、ワーカはワーカプログラムに従って動作する。
以下、マスタプログラム及びワーカプログラムについてそれぞれ詳しく説明する。
まず、マスタプログラムについて説明する。
図2は、マスタ計算機11の制御手段19によって実行されるマスタプログラムのステップを示すフローチャートである。
図2に示すように、マスタプログラムは、ジョブ送信スレッドとジョブ受信スレッドとを含む。制御手段19は、ジョブ送信スレッドとジョブ受信スレッドとをそれぞれ起動する(ステップS11、S12)。ジョブ送信スレッド及びジョブ受信スレッドの終了をもってマスタプログラムは終了する。
以下、ジョブ送信スレッド及びジョブ受信スレッドについてそれぞれ説明する。
まず、ジョブ送信スレッドについて説明する。
図3は、ジョブ送信スレッドのステップを示すフローチャートである。
まず、制御手段19が、初期ジョブ(例えば複数のジョブ)をジョブプール14内に作成し、有効度閾値算出手段15が有効度閾値の初期値を算出する。ジョブ管理手段16は、有効度集計値保持手段17内にジョブ番号及び有効度集計値を格納する(ステップS21)。
次に、制御手段19は、目的の結果を得たかどうかを判定する(ステップS22)。制御手段19は目的の結果を得た場合は(ステップS22のYES)、ジョブ送信スレッドの実行を終了する。
制御手段19は、目的の結果をまだ得ていない場合は(ステップS22のNO)、次に、空きのワーカが存在するかどうかを判定する(ステップS23)。
制御手段19は、空きのワーカが存在しない場合は(ステップS23のNO)、ステップS22に戻る。
一方、空きのワーカが存在する場合は(ステップS23のYES)、次に、有効度閾値算出手段15が、ジョブプール14内の各ジョブについて有効度閾値を再計算する(ステップS24)。
ジョブ管理手段16は、有効度集計値が有効度閾値に満たないジョブを空きワーカに投入する(ステップS25)。この際、ジョブ管理手段16は有効度集計値保持手段17内の有効度集計値を更新する(ステップS25)。
この後、制御手段19は、ステップS22に戻って、目的の結果を得たかどうかを判定する。
次に、ジョブ受信スレッドについて説明する。
図4は、ジョブ受信スレッドのステップを示すフローチャートである。
まず、ジョブ管理手段16は、ワーカからジョブ結果が返されたか否かを判定する(ステップS31)。
ジョブ管理手段16は、ワーカからジョブ結果が返されていない場合は(ステップS31のNO)、ジョブ結果が返されるまで待機する。
一方、ジョブ管理手段16は、ワーカからジョブ結果が返された場合は(ステップS31のYES)、ジョブプール14から該当するジョブを削除する(ステップS32)。
次に、制御手段19は、返されたジョブ結果を用いて所定の計算を行い(ステップS33)、目的の結果を得たかどうかを判定する(ステップS34)。
制御手段19は、目的の結果を得た場合は(ステップS34のYES)、ジョブ受信スレッドの実行を終了する。
一方、制御手段19は、目的の結果を得ていない場合は(ステップS34のNO)、ジョブ管理手段16に対し、返されたジョブ結果を用いてジョブプール14内に新たなジョブ(単数あるいは複数)を作成させる(ステップS35)。
次に、有効度閾値算出手段15は、ジョブプール14内の各ジョブについて有効度閾値を再計算する(ステップS36)。この後、制御手段19はステップS31に戻る。
次に、ワーカプログラムについて説明する。
図5は、ワーカによって実行されるワーカプログラムのステップを示すフローチャートである。
ワーカは、マスタ計算機11から投入されたジョブを実行し(ステップS41)、ジョブ結果をマスタ計算機11に送信する(ステップS42)。
ここで、本実施の形態に係る計算機システムを用いて分枝限定法による最適化問題の計算を行う例を説明する。
まず、分枝限定法について簡単に説明する。
分枝限定法は最適化問題を解く方法の一つである。分枝限定法は解の空間を木で表し、ルートから葉までのパスを1つの解とみなす(図6参照)。木を作成しながら、最適となるパス、すなわち最適解を発見する。
例えば、最適化問題の一つであるナップザック問題では、深さdにある木の節点は、d番目の荷物を入れるか否かの場合分けを示している。木全体では、各節点に荷物を入れるか入れないかの全ての場合が尽くされる。この全ての場合の中で、評価値が最も高くなる荷物の入れ方(ルートから葉へのパス)が、求めるナップザック問題の解となる。
解の探索は、ルートから葉方向へ木を生成しながら行う。節点を分岐させて新たな節点を作る操作を分枝操作と呼ぶ。
いま、評価値の最も高くなる解を求めているものとする。個々の節点においてその節点から下に木を広げていった場合に、到達の可能性がある最大の評価値を節点ごとに計算できる。この到達の可能性のある最大の評価値を上界値と呼ぶ。一方、個々の節点ごとに、少なくとも達成可能である評価値も計算可能であり、この値を下界値と呼ぶ。
ある節点の上界値が他の節点の下界値を下回った場合、このある節点を通過する探索では明らかに最適解に到達できない。従って、その場合には、このある節点からの分枝操作を中止する。この処理を限定操作と呼ぶ。分枝限定法では、この限定操作により無用な解の探索を打ち切ることで解の探索空間を限定する。
上界値及び下界値はこの限定操作に利用できることの他に、対象となる節点より下の木を探索する操作の有望性の指標としても利用できる。例えば、下界値が大きな節点は、大きな評価値を得られる可能性が高いため、有望性があると言える。
以下、各節点における分枝操作をジョブ、各節点の有望性をジョブの価値とみなして、本計算機システムにより分枝限定法の計算を行う例を説明する。
まず、分枝限定法による計算を行っている途中のある一時点における状態を、図6〜図14を用いて説明し、その後、続きの動作を説明する。
図6は、分枝限定法により解の探索を行っている途中の木の状態を示す図である。
この木において、複数の節点ND1〜ND9が示され、このうち節点ND5〜ND9は、現時点での探索の最前線であり、各節点ND5〜ND9では各ワーカによる分枝操作が行われる。各節点では、探索の有望性の観点からの価値を計算できる。各節点の丸の中の数字が価値を表す。
図7は、現時点でのジョブプール14内の状態を示す図である。
図7に示すように、図6の木において探索の最前線に存在する節点ND5〜ND9に対応するジョブ5〜9が格納されている。高い価値を有するジョブほど図中左側に配置される。
図8は、有効度閾値、各ジョブ5〜9のジョブ番号及び有効度集計値を示す図である。
図8に示すように、有効度閾値は価値が高いものから順に3、2、1、1、1が与えられ、最も高い価値を有するジョブ8は有効度集計値3、次に高い価値を有するジョブ9は有効度集計値2、残りのジョブ5〜7は有効度集計値が1となっている。
図9は、ワーカにジョブ5〜9を割り当てた状態を示す図である。
ワーカがA〜Hまで存在する。各ワーカ内の数字5〜9は、実行中のジョブの番号を示す。また、ワーカA〜Hには有効度と呼ばれる指標が付加されている。カッコ内の数字が有効度である。図10は、マスタ計算機11におけるワーカ有効度保持手段10を示し、ワーカ有効度保持手段10によって、ワーカ名と有効度との対応関係が示される。
図11は、ワーカの空き状況を管理するワーカプール18を示す図である。このワーカプール18はマスタ計算機11内に備えられる。
ワーカプール18にはワーカHが登録されている。これは、ワーカHが空き状態であることを示す(図9参照)。
以上の状態において、続きの処理を以下に説明する。以下の説明においては、参考のため、図3及び図4で説明したフローチャートに示されるステップ番号を付する。
まず、ワーカAがジョブ8の実行を終了し(図9参照)、ジョブ結果をマスタ計算機に返すと、制御手段19がワーカプール18(図11参照)内にワーカAを登録する(図示せず)(図4のステップS31)。
ジョブ管理手段16は、ワーカAによって処理されたジョブ8をジョブプール14(図7参照)から削除し、さらに有効度集計値保持手段17(図8参照)内からジョブ8のデータを削除する(図4のステップS32)。
また、ジョブ8を実行しているワーカBの仕事を停止させワーカBをワーカプール18に登録する。
一方、制御手段19は、ワーカAからのジョブの結果を用いて所定の演算を行って、次の節点ND10、ND11(図6参照)における解の探索の有望性の観点からの価値(ジョブの価値)を計算する(図4のステップS33)。この際、枝狩りが可能な節点があれば枝狩りを行う。
制御手段19は、現時点ではまだ目的の結果を得ていないと判断し(図4のステップS34のNO)、ジョブ管理手段16は、ジョブ8の結果を用いて生成される新たな節点ND10、ND11に対応したジョブ10、11をジョブプール14内に登録する(図4のステップS35)。この状態を図12に示す。ジョブ10、11の価値が、ジョブ9、5、6、7よりも高いため、ジョブプール14内の先頭側(図中左側)に配置される。
ジョブプール14内に新たにジョブが生成されると、有効度閾値算出手段15は、有効度閾値を算出し、ジョブ管理手段16は、ジョブ番号と有効度集計値とを再設定する(図4のステップS36)。この状態を図13に示す。この時点では、新たに生成されたジョブ10、11の有効度集計値は0である。次に、制御手段19は空きのワーカが存在するかどうかを判定し(図3のステップS23)、現時点では、上述した内容から分かるように、A、B、Hの3つが空きである(図3のステップS23のYES)。従って、ジョブ管理手段16は、有効度閾値算出手段15による有効度閾値の再計算の後(図3のステップS24)、各ジョブ10、11を空きワーカに割り当てる(図3のステップS25)。例えば、ジョブ管理手段16は、有効度閾値が3であるジョブ10を例えば2台のワーカA、Bに割り当て、有効度閾値2を有するジョブ11を例えばHに割り当てる。
以上の処理を続けることで木の探索が行われ、最終的な解(評価値)を得る(図3のステップS22のYES、図4のステップS34のYES)。
以上に説明した分枝限定法による計算に本実施の形態に係る計算機システムを用いたことによる効果について述べると以下の通りである。
即ち、有効な方向の分枝処理(高いジョブ価値を有する節点での分枝処理)は多重化して実行されるので、負荷の高いワーカ(例えば性能が他のものより低い)や、途中で故障するワーカに有効な方向の探索処理(ジョブ)が割り当てられてしまっても、有効な方向の停止や停滞を阻止できる。また、これにより有効な探索方向での下界値計算も停滞、停止しないので、枝狩り処理の遅れが生じない利点がある。
また、価値が他のものよりも低く多重化されていないジョブであっても、価値が高いジョブが終了するとジョブプール内での順位が上がるので、最終的に多重化され得る。即ち、価値の低いジョブであっても、処理の停止や停滞を阻止し得る。
以上のように、本実施の形態によれば、高い価値を有するジョブを優先的に実行するようにしたので並列計算そのものが著しく遅滞することなく終了することが可能となる。
(第2の実施の形態)
本実施の形態では、ワーカの有効度をワーカの信頼度とした例を説明する。
例えば、ワーカAの信頼性は2で、ワーカBからHまでの信頼性は1であるとし、ワーカAの信頼性は他のワーカに比べて2倍高いものとする。このような仮定のもとで第1の実施形態と同様な処理を進めるとすると、有効度閾値3を持つジョブを実行する場合、有効度2であるAを使う場合は、ワーカAと、有効度1である他のワーカ(例えばB)とを用いることになる。一方、有効度1だけのワーカでジョブを実行する場合は、例えば3台のワーカB、C、Dを用いることになる。すなわち信頼性の高いワーカを用いて実行する場合は2台で実行することになり、そうでない場合は3台で実行することになる。これによりワーカを効率よく使用できる。
(第3の実施の形態)
本実施の形態では、ワーカの有効度をワーカの処理能力(例えば計算速度)にとした例を説明する。例えば、ワーカAの計算速度は2で、ワーカBからHまでの計算速度は1であるとし、ワーカAの計算速度は他のワーカに比べて2倍速いものとする。このような仮定のもとで第1の実施形態と同様な処理を進める。
ただし、有効度集計値を計算する際に、そのジョブを実行しているワーカの有効度の加算を行うのではなく、例えば、現在の有効度集計値を1.5倍した値に新しくジョブを実行するワーカの有効度を足した値を有効度集計値とする。なお、一般には、有効度集計値は、現在そのジョブを実行しているワーカの有効度とジョブの実行経過時間とを用いた関数に基づいて計算される値とすればよい。
例えば、有効度閾値3を持つジョブを実行する場合、まず有効度2であるワーカAを使用し、続いて有効度1である他のワーカ(例えばB)を使用すると、その時点での有効度集計値は、2×1.5+1=4(>3)となり、2台のワーカで実行されることになる。なお、ジョブを割り当てる時点で有効度集計値が有効度閾値を越えていなければ、ジョブの割り当て後に有効度集計値が有効度閾値を越えても良い。
一方、有効度1だけのワーカで順次実行する場合は、例えばワーカB、C、Dの順で実行される。ワーカBで実行する際の有効度集計値は1で、続いてワーカCで実行する際の有効度集計値は1×1.5+1 = 2.5で、続いてワーカDで実行するときの有効度集計値は2.5×1.5+1=4.75(>3)となる。
したがって、速いワーカを使う場合は少ないワーカで、遅いワーカを使う場合は多くのワーカで処理を実行することになり、速いワーカを使う場合は使用するワーカ数を削減することができる。
(第4の実施の形態)
本実施の形態では、ワーカはいずれかのグループに属しているものとする。ワーカのグループを保持するグループ番号保持手段をマスタ計算機に導入する。
図14はグループ番号保持手段26を示す。図14において、ワーカAからDはグループ1に、EからHはグループ2に属しているものとする。ワーカの故障は同じグループで発生しやすいものとする。
ここでジョブをワーカに割り当てる際に、有効度が同じワーカの場合、現在そのジョブを実行しているワーカと違うグループのワーカを割り当てるようにする。
例えば、あるジョブの有効度閾値が2で、有効度1且つグループ1のワーカが既に割り当てられている場合において、さらにもう1つワーカを割り当てる場合は、有効度1且つグループ2のワーカを割り当てる。
同じグループに属しているワーカに故障が連鎖して発生しやすい場合などは、このように別のグループにジョブを割り当てることで、ジョブが正常終了する可能性を高めることができる。
(第5の実施の形態)
本実施の形態では、ジョブの価値を用いて有効度閾値を計算する例を具体的に説明する。
例えば、ジョブプール内に5つのジョブがあり、それぞれ価値が300, 200, 100, 100, 100である場合、有効度閾値を前から3, 2, 1, 1, 1とする。
例えば8台のワーカが存在した場合、ジョブの価値をジョブの価値の総和(300+200+100+100+100=800)で割った値にワーカ台数(8)を掛けることで、上記値が求められる。
この方法で有効度閾値を計算することで、価値の高いジョブほど有効度集計値を高くできるため、価値の高いジョブの計算の信頼性を高めたり(例えば信頼性の高いワーカほど有効度が高い場合)、価値の高いジョブの計算速度を速めたり(例えば速度の速いワーカほど有効度が高い場合)できる。
(第6の実施の形態)
図15は、本発明の第6の実施の形態としての並列計算方法を実施するための計算機システムの基本的な構成を示した図である。
以下、本計算機システムの基本的な構成及び動作を説明し、その後、本計算機システムの具体的な適用例を説明する。
マスタ計算機11内のジョブプール14は、マスタ計算機11によって生成されたジョブを格納する。ジョブはワーカで実行され、ジョブ結果がマスタ計算機11に返される。ジョブ結果回収終了判定手段20は、1つ以上のワーカから返されたジョブ結果を用いて、ジョブ結果の回収を終了するか否かの判定をする。
制御手段19はマスタプログラムを実行してマスタ計算機11全体を制御する。ワーカA〜Eは、第1の実施の形態と同じワーカプログラムに従って動作する。
図16は、マスタ計算機11における制御手段19によって実行されるマスタプログラムのステップを示すフローチャートである。
まず、制御手段19は、1つ以上のジョブを生成し、ワーカに実行させる(ステップS51)。
制御手段19は、ワーカの返すジョブ結果を逐一受け取り、ジョブ結果回収終了判定手段20は、例えばジョブ結果の回収数に基づいて、ジョブ結果の回収を終了するか否かの判定を行う(ステップS52)。
ジョブ結果回収終了判定手段20がジョブ結果の回収を終了しないと判定した場合は(ステップS52のNO)、制御手段19は再びワーカからのジョブ結果を待つ。
一方、ジョブ結果回収終了判定手段20がジョブ結果の回収を終了すると判定した場合は(ステップS52のYES)、制御手段19は受け取ったジョブ結果に基づき所定の計算を行う(ステップS53)。
制御手段19は、所定の計算の結果、目的の結果を得たかどうかを判断し(ステップS54)、目的の結果を得た場合は(ステップS54のYES)本処理を終了し、得ていない場合は(ステップS54のNO)ステップS51に戻り、新たなジョブを生成する。
以下、本実施の形態に係る計算機システムを用いてニューラルネットワークの重み計算を行う例を説明する。
まず、ニューラルネットワークについて簡単に説明する。
ニューラルネットワークは、入力データに対する出力を予測するモデルである。
図17は、3層構造のニューラルネットワークの例を示す図である。
入力と出力との間に図中横方向に沿って素子が3列並んでおり、隣り合う列の素子間にはリンクが張られている。各リンクに適当な重みを設定することで予測モデルを構築する。ここでは、3次元の入力(x1, x2, x3)から出力(y)を予測するモデルを学習する場合を考える。但し、j番目のリンクの重みをwjとし、全体の重みをW(図示せず)とする。学習に用いる6組の学習データD1〜D6の例を図18に示す。i組目のデータはDiで表される。
ニューラルネットワークの重み計算では、全体の重みWの初期値(例えば時刻0における重み)W0を決め、モデルの性能が良くなるように順次この重みを更新し、収束判定することで最終的な重みを求める。時刻tにおける全体の重みWtから、次の時刻t+1における全体の重みWt+1を求める方法は、
Wt+1 = Wt + ΔWt ・・・(式1)
但し、ΔWt =定数×(Δwt1+Δwt2+Δwt3+Δwt4+Δwt5+Δwt6)
である。ここで、Δwti(i=1〜6)はDi(i=1〜6)(図18参照)から計算される差分の一要素である。
図19は、本計算機システムにより重み計算を行っている状態を示す図である。
ニューラルネットワークの重み計算をマスタ・ワーカ型で行う場合は、上述のΔwtiの計算をジョブiとしてワーカで処理する。即ち、Δwt1をジョブ1として、Δwt2をジョブ2として、・・・Δwt6をジョブ6として処理する。
通常の重み計算では、全てのジョブ1〜6を回収してΔWtを計算し、この後、重みの更新ステップを(式1)に従って一つ進める。
しかし、本実施の形態では、一部のジョブの回収が終了した時点で重みの更新ステップを進める。
例えば、図19に示すように、6台のワーカA〜Fのうち、「先着4台のジョブ結果を回収」という条件が、ジョブ結果回収終了判定手段20に与えられているとする。この場合、ジョブ2〜5の結果が、ジョブ1、6のよりも先に戻ってきたとすると、ジョブ結果回収終了判定手段20は、この時点でジョブ結果の回収の終了を判定し、制御手段19は重み計算の更新ステップを一つ進める。
より詳しくは、まず、重みの差分ΔWtを、
ΔWt =定数×(Δwt2+Δwt3+Δwt4+Δwt5)
として計算し、次いで、(式1)に従って、重みを更新する。
この後は、再び6つのジョブを生成し、各ジョブをワーカで実行させ、先着4台のジョブ結果を回収する。
上述の例では、ジョブ結果回収終了判定の条件として先着n個のジョブ結果を回収することを採用したが、その他の条件をこれに追加することもできる。例えば、先着4個ジョブを受け取った後、所定の時間(例えば2秒間)は、他のジョブの終了を待ち、その間に回収できたジョブ結果は計算に加えるなどとすることもできる。
以上のように、本実施の形態によれば、ジョブ結果の回収を終了するか否かをジョブ結果回収終了条件に基づいて判定するジョブ結果回収終了判定手段を設けたことにより、全てのジョブ結果を回収せずとも、一部のジョブ結果だけを用いて計算を進めることができる。このため、一部のワーカが高負荷で結果の返答が遅れたり、ワーカがダウンしたりした場合でも、全体の処理が遅れたり、全体の処理が停止したりすることはない。このように一部のジョブ結果のみを用いて処理を進めると全てのジョブ結果を用いた場合と比べて計算精度は落ちるが、即ち、耐故障性及び耐高負荷性と計算精度とはトレードオフの関係になるが、計算精度に厳密性が要求されない場合や、収束計算の初期ループ等では,本手法は有効なものとなるといえる。
(第7の実施の形態)
図20は、本発明の第7の実施の形態としての並列計算方法を実施するための計算機システムの基本的な構成を示した図である。
以下、本計算機システムの基本的な構成及び動作を説明し、その後、本計算機システムの具体的な適用例を説明する。
マスタ計算機11内のジョブプールは、マスタ計算機11によって生成された1つ以上のジョブを格納する。各ジョブはそれぞれ所定の価値を有する。
ジョブ多重化手段24は、ジョブの価値に応じて各ジョブの多重度を決定する。各ジョブは、決定された多重度によって実行される。即ち、多重度がnのジョブは、n台のワーカで実行される。ワーカによるジョブ結果はマスタ計算機11に返される。
ジョブ結果回収終了判定手段20は、ワーカからのジョブ結果に基づき、ジョブ結果の回収を終了するか否かの判定を行う。
制御手段19はマスタプログラムを実行してマスタ計算機11全体を制御する。ワーカA〜Eは、第1の実施の形態と同じワーカプログラムに従って動作する。
図21は、マスタ計算機11における制御手段19によって実行されるマスタプログラムのステップを示すフローチャートである。
まず、制御手段19は、ジョブを生成し、個々のジョブの価値を計算する(ステップS71)。
次に、ジョブ多重化手段24が、各ジョブについて、各ジョブの価値に応じた多重度を計算する(ステップS72)。
次に、制御手段19は、決定された多重度によって各ジョブをワーカに実行させる(ステップS73)。
制御手段19は、ワーカからのジョブ結果を逐一受け取り、ジョブ結果回収終了判定手段20は、予め与えられた条件に基づいて、ジョブ結果の回収を終了するか否かの判定をする(ステップS74)。
ジョブ結果回収終了判定手段20がジョブ結果の回収を終了しないと判定した場合は(ステップS74のNO)、制御手段19は再びワーカからのジョブ結果を待つ。
一方、ジョブ結果回収終了判定手段20がジョブ結果の回収を終了すると判定した場合は(ステップS74のYES)、次に、制御手段19は、ワーカからのジョブ結果を用いて所定の計算を行う(ステップS75)。
制御手段19は、所定の演算の結果、目的の結果を得た場合は(ステップS76のYES)本処理を終了し、得ていない場合は(ステップS76のNO)、ステップS71に戻り、再度、ジョブを生成する。
以下、本実施の形態に係る計算機システムを用いて遺伝的アルゴリズムに従った計算を行う例を説明する。
遺伝的アルゴリズムは最適化手法の一つである。この遺伝的アルゴリズムでは、まず、中間解と呼ばれる暫定解の集合を作り、その中の2つの暫定解から新たな解の候補を作るという作業を一回以上行う。次に、作られた解の候補を評価し、暫定解よりも良い解を新たな暫定解として残す。以上の作業を解の質が向上しなくなるまで行う。マスタ・ワーカ型の計算機システムで遺伝的アルゴリズムを処理する場合、例えば解の候補の評価にジョブを割り当てる。
図22は、本実施の形態に係る計算機システムにより遺伝的アルゴリズムに従って計算を行っている状態を示す図である。
いま、6つの暫定解1〜6が得られ、各暫定解1〜6が、マスタ計算機11内の記憶部25に格納されている。各暫定解の評価値が円の中に示される。
この状態において、次に解の候補を作成する。ここでは、暫定解1、4のペア、暫定解2、5のペア、及び暫定解3、6のペアからそれぞれ解の候補を作成したとする。
作成された解の候補の評価がそれぞれジョブ1,2,3として、ジョブプール14内に格納されている。各ジョブはそれぞれ価値を有する。
一般に、遺伝的アルゴリズムでは、良い暫定解から作られた解の候補は良い評価値を持つことが多く、悪い暫定解から作られた解の候補は悪い評価値を持つことが多い。したがって、解の候補の質を評価する指標として親の解の評価値の平均を求め、この値をジョブの価値とみなす。
ジョブ多重化手段24は、ジョブプール14内の各ジョブ1〜3をそれぞれの価値に応じて多重化する。ここでは、最も価値の高いジョブが2重化され、それ以外のジョブは多重化されないものとする。従って、本例では、最も高い価値「8」を有するジョブ1が2重化され、他のジョブ2、3は多重化されない。
制御手段19は、ジョブプール14内の各ジョブ1〜3をワーカA〜Dに割り当てる。ジョブ1は2重化され、2台のワーカA、Bで処理される。
ジョブ結果回収終了判定手段20は、ジョブ結果の回収を終了するか否かの判定を行う。ここでは、先着3台のジョブ結果を回収するという条件がジョブ結果回収終了判定手段20に与えられるとする。かかる条件の下、ワーカA、B、Dのジョブ結果がワーカCよりも先に戻ってきたとする。即ち、ジョブ1の実行結果が2つと、ジョブ3の実行結果が1つ戻ってきたとする。制御手段19は、ジョブ1の実行結果のうち1つを削除し、残りのジョブ1の実行結果とジョブ3の実行結果とを使って処理を進める。例えば、ジョブ1の実行結果として、新たな解の候補の評価値が、暫定解1あるいは4よりも大きければ新たな解の候補を暫定解として残し、これより低い評価値を有する暫定解1あるいは4あるいはこれらの両方を削除する。ジョブ3の実行結果についても同様にして処理する。
以上の処理を解の質が向上しなくなるまで続ける。
以上のように一部のジョブの実行結果だけを用いて計算を進めることで、一部のワーカが高負荷で結果の返答が遅れた場合でも全体の処理を遅らせることなく処理を進めることができ、また、一部のワーカが故障した場合でも全体の処理が停止することはない。また、良い解である可能性の高い解の候補は多重化されて実行されるので、得られた解を次のステップに残す可能性を高くできる。
以上のように、本実施の形態によれば、価値の高いジョブを多重化して実行するようにしたので、一部のジョブ結果を用いて処理を進める場合においても、有効な結果を得る可能性を高くできる。
ここで、本実施の形態は、第1の実施の形態と組み合わせることもできる。
図23は、図22の計算システムに対し、図1のワーカ有効度保持手段10、有効度閾値保持手段12及び有効度集計値保持手段17を追加した構成を示す図である。ジョブ多重化手段24は、有効度集計値が有効度閾値に満たないジョブをワーカに実行させる。
ワーカA〜Eは、それぞれ性能(例えば信頼性)が異なっており、Aの信頼性が他に比べて2倍高いとする。これに対応して、ワーカ有効度保持手段10には、ワーカA〜Eに対して、有効度2、1、1、1、1が格納されている。
ジョブプール14にはジョブ1〜3が格納され、ジョブ1、2、3の順に、価値が高い。従って、有効度集計値保持手段17内にジョブが図中左から1、2、3の順に格納される。各ジョブ1〜3の有効度閾値は、それぞれ3、2、1である。各ジョブ1〜3は、対応する有効度閾値に基づいてワーカに割り当てられて実行される。
例えば、ワーカAの有効度は2なので、ジョブ1はワーカA、Bの2台、ジョブ2はワーカC、Dの2台、ジョブ3はワーカEの1台で実行される。
ジョブ回収終了判定手段20は、所定の回収条件を満たしたら(例えばジョブ結果の回収数が規定数に達したら)、ジョブ結果の回収を終了することを判定する。
図23の計算機システムは、図22の計算機システムと比べてワーカをより有効に利用できる利点がある。即ち、本例では、ジョブ1は、有効度が2のAと有効度が1のBで実行する選択肢と、有効度が1のB、C、Dで実行する選択肢と生じる。これに対し、ワーカの有効度を利用する方法がない図22の構成であると、例えばジョブ1を2台のAとBで実行すれば十分な状況でも、全てのワーカの信頼度が同じだと仮定してA、B、Cの3台で実行なければならなくなる。
本発明の第1の実施の形態としての並列処理方法を実施するための計算機システムの基本的な構成を示した図である。 マスタ計算機によって実行されるマスタプログラムによるステップを示すフローチャートである。 ジョブ送信スレッドによるステップを示すフローチャートである。 ジョブ受信スレッドによるステップを示すフローチャートである。 ワーカプログラムによるステップを示すフローチャートである。 分枝限定法に従った計算を行っている最中における木の状態を示す図である。 ジョブプールを示す図である。 有効度集計値保持手段を示す図である。 ワーカに対するジョブの割り当ての様子を示す図である。 有効度保持手段を示す図である。 ワーカプールを示す図である。 ジョブプールを示す図である。 有効度集計値保持手段を示す図である。 グループ番号保持手段を示す図である。 本発明の第6の実施の形態としての並列計算方法を実施するための計算機システムの基本的な構成を示した図である。 マスタ計算機によって実行されるマスタプログラムのステップを示すフローチャートである。 3層ニューラルネットワークの構成図である。 3層ニューラルネットワークに与える学習データ例を示す図である。 図15の計算機システムがニューラルネットワークの重み計算を行う状態を示す図である。 本発明の第7の実施の形態としての並列計算方法を実施するための計算機システムの基本的な構成を示した図である。 マスタ計算機によって実行されるマスタプログラムのステップを示すフローチャートである。 図20の計算機システムが遺伝的アルゴリズムに従った計算を行う状態を示す図である。 図22の計算システムと図1の計算機システムとを組み合わせた構成例を示す。
符号の説明
10 ワーカ有効度保持手段
11 マスタ計算機
12 有効度閾値保持手段
13 通信手段
14 ジョブプール
15 有効度閾値算出手段
16 ジョブ管理手段
17 有効度集計値保持手段
18 ワーカプール
19 制御手段
20 ジョブ結果回収終了判定手段
24 ジョブ多重化手段
26 グループ番号保持手段

Claims (20)

  1. ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す各々有効度が付与された複数のワーカ計算機とを用いて並列計算処理を行う並列計算方法であって:
    前記マスタ計算機が、
    各々価値を有する複数のジョブを生成し;
    生成された前記ジョブをジョブ記憶部内に格納し;
    前記ジョブ記憶部に格納された前記ジョブの価値の大きさの順位に応じた有効度閾値を前記ジョブに対して算出し;
    前記ジョブ記憶部内の前記ジョブについて、前記ジョブを実行しているワーカ計算機の有効度を用いた演算によって有効度演算値を算出し;
    前記有効度演算値が前記有効度閾値に満たないジョブを空きの前記ワーカ計算機に実行させ;
    前記ワーカ計算機から前記ジョブの実行結果を受け取り、前記受け取ったジョブを前記ジョブ記憶部から削除する;
    並列計算方法。
  2. 各前記ワーカ計算機にはグループ番号が付与されており、前記マスタ計算機は、同一のジョブを複数の前記ワーカ計算機に実行させる場合は、それぞれ異なるグループ番号を有するワーカ計算機に前記ジョブを実行させることを特徴とする請求項1に記載の並列計算方法。
  3. 前記ワーカ計算機に付与されている有効度は、前記ワーカ計算機の信頼度及び計算能力のいずれかであることを特徴とする請求項1に記載の並列計算方法。
  4. 前記マスタ計算機は、前記ジョブの価値を用いた演算により前記ジョブの有効度閾値を算出することを特徴とする請求項1に記載の並列計算方法。
  5. 前記マスタ計算機は、前記ワーカ計算機からジョブの実行結果を受け取った後、当該ジョブを実行している他のワーカ計算機が存在する場合は、前記他のワーカ計算機に当該ジョブの実行を停止させることを特徴とする請求項1に記載の並列計算方法。
  6. 前記マスタ計算機は、ジョブの価値の大きさの順位と、有効度閾値とを対応付けたテーブルを保持しており、前記テーブルに基づいて、前記有効度閾値を算出することを特徴とする請求項1に記載の並列計算方法。
  7. 分岐限定法に従って最適化問題の計算を行うことを特徴とする請求項1に記載の並列計算方法。
  8. 前記マスタ計算機は、回収した前記ジョブの実行結果の数が規定数に達した場合は、前記ジョブの実行結果の回収を終了する判定を下すことを特徴とする請求項1に記載の並列計算方法。
  9. ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す複数のワーカ計算機とを用いて並列計算処理を行う並列計算方法であって:
    前記マスタ計算機が、
    複数のジョブを生成し;
    生成した前記ジョブを前記ワーカ計算機に実行させ;
    前記ワーカ計算機からジョブの実行結果を回収し;
    所定のジョブ結果回収終了条件に基づき、前記ジョブの実行結果の回収を終了するか否かを判定する;
    並列計算方法。
  10. 前記マスタ計算機は、回収した前記ジョブの実行結果の数が規定数に達した場合は、前記ジョブの実行結果の回収を終了する判定を下すことを特徴とする請求項9に記載の並列計算方法。
  11. ニューラルネットワークの重み計算を行うことを特徴とする請求項10に記載の並列計算方法。
  12. ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す複数のワーカ計算機とを用いて並列計算処理を行う並列計算方法であって:
    前記マスタ計算機が、
    各々価値を有する複数のジョブを生成し;
    前記ジョブの価値に基づいて各前記ジョブの多重度を算出し;
    算出された多重度に従って前記ジョブを前記ワーカ計算機に実行させ;
    前記ワーカ計算機からジョブの実行結果を回収し;
    所定のジョブ結果回収終了条件に基づき、前記ジョブの実行結果の回収を終了するか否かを判定する;
    並列計算方法。
  13. 前記マスタ計算機は、回収した前記ジョブの実行結果の数が規定数に達した場合は、前記ジョブの実行結果の回収を終了する判定を下すことを特徴とする請求項12に記載の並列計算方法。
  14. 遺伝的アルゴリズムに従った計算を行うことを特徴とする請求項13に記載の並列計算方法。
  15. ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す各々有効度が付与された複数のワーカ計算機とを用いて並列計算処理を行うシステムにおける前記マスタ計算機で実行する並列計算プログラムであって:
    各々価値を有する複数のジョブを生成するステップと;
    生成された前記ジョブをジョブ記憶部内に格納するステップと;
    前記ジョブ記憶部に格納された前記ジョブの価値の大きさの順位に応じた有効度閾値を前記ジョブに対して算出するステップと;
    前記ジョブ記憶部内の前記ジョブについて、前記ジョブを実行しているワーカ計算機の有効度を用いた演算によって有効度演算値を算出するステップと;
    前記有効度演算値が前記有効度閾値に満たないジョブを空きの前記ワーカ計算機に実行させるステップと;
    前記ワーカ計算機から前記ジョブの実行結果を受け取り、前記受け取ったジョブを前記ジョブ記憶部から削除するステップと;
    を備えた並列計算プログラム。
  16. ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す複数のワーカ計算機とを用いて並列計算処理を行うシステムにおける前記マスタ計算機で実行する並列計算プログラムであって:
    複数のジョブを生成するステップと;
    生成した前記ジョブを前記ワーカ計算機に実行させる実行ステップと;
    前記ワーカ計算機から前記ジョブの実行結果を回収する回収ステップと;
    所定のジョブ結果回収終了条件に基づき、前記ジョブの実行結果の回収を終了するか否かを判定する判定ステップと;
    を備えた並列計算プログラム。
  17. ジョブを生成するマスタ計算機と、前記ジョブを実行して実行結果を前記マスタ計算機に返す複数のワーカ計算機とを用いて並列計算処理を行うシステムにおける前記マスタ計算機で実行する並列計算プログラムであって:
    価値を有する複数のジョブを生成する生成ステップと;
    前記ジョブの価値に基づいて各前記ジョブの多重度を算出する算出ステップと;
    算出された多重度に従って前記ジョブを前記ワーカ計算機に実行させる実行ステップと;
    前記ワーカ計算機からジョブの実行結果を回収する回収ステップと;
    所定のジョブ結果回収終了条件に基づき、前記ジョブの実行結果の回収を終了するか否かを判定する判定ステップと;
    を備えた並列計算プログラム。
  18. 複数のワーカ計算機にジョブを実行させて、前記ワーカ計算機から前記ジョブの実行結果を受け取る計算機であって:
    価値を有するジョブを生成するジョブ生成部と;
    生成された前記ジョブを格納するジョブ記憶部と;
    前記ジョブ記憶部に格納された前記ジョブの価値の大きさの順位に応じた有効度閾値を前記ジョブに対して算出する有効度閾値算出部と;
    各前記ワーカ計算機に付与された有効度を格納した有効度記憶部と;
    前記ジョブ記憶部内の前記ジョブについて、前記ジョブを実行しているワーカ計算機の有効度を用いた演算によって有効度演算値を算出する有効度演算値算出部と;
    前記有効度演算値が前記有効度閾値に満たないジョブを空いている前記ワーカ計算機に実行させ、前記ワーカ計算機から前記ジョブの実行結果を受け取った場合は、前記受け取ったジョブを前記ジョブ記憶部から削除するジョブ管理部と;
    を備えた計算機。
  19. 複数のワーカ計算機にジョブを実行させて、前記ワーカ計算機から前記ジョブの実行結果を受け取る計算機であって:
    複数のジョブを生成するジョブ生成部と;
    生成した前記ジョブを前記ワーカ計算機に実行させ、前記ワーカ計算機からジョブの実行結果を回収するジョブ回収部と;
    所定のジョブ結果回収終了条件に基づき、前記ジョブ結果の回収を終了するか否かを判定する判定部と;
    を備えた計算機。
  20. 複数のワーカ計算機にジョブを実行させて、前記ワーカ計算機から前記ジョブの実行結果を受け取る計算機であって:
    各々価値を有する複数のジョブを生成するジョブ生成部と;
    前記ジョブの価値に基づいて各前記ジョブの多重度を算出するジョブ多重化部と;
    算出された多重度に従って前記ジョブを前記ワーカ計算機に実行させ、前記ワーカ計算機からジョブの実行結果を回収するジョブ回収部と;
    所定のジョブ結果回収終了条件に基づき、前記ジョブの実行結果の回収を終了するか否かを判定する判定部と;
    を備えた計算機。
JP2004327630A 2004-01-28 2004-11-11 並列計算方法、並列計算プログラム及び計算機 Expired - Fee Related JP4203001B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004327630A JP4203001B2 (ja) 2004-01-28 2004-11-11 並列計算方法、並列計算プログラム及び計算機
US11/040,011 US7707580B2 (en) 2004-01-28 2005-01-24 Parallel computing method, parallel computing program and computer

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004019632 2004-01-28
JP2004327630A JP4203001B2 (ja) 2004-01-28 2004-11-11 並列計算方法、並列計算プログラム及び計算機

Publications (2)

Publication Number Publication Date
JP2005242986A true JP2005242986A (ja) 2005-09-08
JP4203001B2 JP4203001B2 (ja) 2008-12-24

Family

ID=34840116

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004327630A Expired - Fee Related JP4203001B2 (ja) 2004-01-28 2004-11-11 並列計算方法、並列計算プログラム及び計算機

Country Status (2)

Country Link
US (1) US7707580B2 (ja)
JP (1) JP4203001B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011003052A (ja) * 2009-06-19 2011-01-06 Mitsubishi Electric Corp データ処理装置及び制御方法及びプログラム
EP2950212A2 (en) 2014-05-22 2015-12-02 Fujitsu Limited Parallel computer system and method for controlling parallel computer system
JP2020113032A (ja) * 2019-01-11 2020-07-27 富士通株式会社 通信装置、通信プログラム、および分散処理方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070033247A1 (en) * 2005-08-02 2007-02-08 The Mathworks, Inc. Methods and system for distributing data to technical computing workers
US8281313B1 (en) * 2005-09-29 2012-10-02 Hewlett-Packard Development Company, L.P. Scheduling computer processing jobs that have stages and precedence constraints among the stages
US8380880B2 (en) 2007-02-02 2013-02-19 The Mathworks, Inc. Scalable architecture
US20080189718A1 (en) * 2007-02-02 2008-08-07 The Mathworks, Inc. Scalable architecture
US7917705B2 (en) * 2007-05-17 2011-03-29 International Business Machines Corporation Scalable performance-based volume allocation in large storage controller collections
US8108409B2 (en) * 2007-07-19 2012-01-31 Hewlett-Packard Development Company, L.P. Determining top combinations of items to present to a user
US20090064141A1 (en) * 2007-08-29 2009-03-05 Microsoft Corporation Efficient utilization of transactions in computing tasks
US8589490B2 (en) * 2008-01-16 2013-11-19 Janos Tapolcai System, method, and computer program for solving mixed integer programs with peer-to-peer applications
US8527590B2 (en) * 2008-01-16 2013-09-03 Janos Tapolcai Solving mixed integer programs with peer-to-peer applications
JP5347648B2 (ja) * 2009-03-30 2013-11-20 富士通株式会社 プログラム、情報処理装置及び状態出力方法
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
US9459933B1 (en) * 2015-01-30 2016-10-04 Amazon Technologies, Inc. Contention and selection of controlling work coordinator in a distributed computing environment
EP3447690A4 (en) * 2016-04-19 2020-01-01 Cambricon Technologies Corporation Limited DEVICE AND METHOD FOR MAXOUT LAYER OPERATION
US10832209B2 (en) 2018-02-26 2020-11-10 Walmart Apollo, Llc Systems and methods for rush order fulfilment optimization

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04152451A (ja) 1990-10-16 1992-05-26 Fujitsu Ltd 分枝限定法高速実行処理方式
JPH06131312A (ja) * 1992-01-23 1994-05-13 Hitachi Ltd 並行処理方法およびシステム
US5404516A (en) * 1992-12-18 1995-04-04 Hughes Aircraft Company System for allocating resources and method
JP3279004B2 (ja) 1993-10-15 2002-04-30 株式会社日立製作所 冗長資源の管理方法及びそれを用いた分散型フォールトトレラントコンピュータシステム
US5768594A (en) * 1995-07-14 1998-06-16 Lucent Technologies Inc. Methods and means for scheduling parallel processors
JPH1185707A (ja) 1997-09-04 1999-03-30 Hitachi Ltd 並列計算機におけるジョブ投入計算機の選択方法及び装置
DE19800378A1 (de) 1998-01-08 1999-07-15 Cit Alcatel Verfahren zum Übergehen von Betriebsparametern von einer Zentrale an ein örtlich begrenztes drahtloses Telekommunikationssystem und entsprechendes drahtloses Telekommunikationssystem
US6345240B1 (en) * 1998-08-24 2002-02-05 Agere Systems Guardian Corp. Device and method for parallel simulation task generation and distribution
JP2001331461A (ja) 2000-05-19 2001-11-30 Nec Corp マルチプロセッサシステム及びプロセッサスケジュリング方法
US7945909B2 (en) * 2003-05-09 2011-05-17 Sap Aktiengesellschaft Initiating recovery of an executing task using historical information and task information

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011003052A (ja) * 2009-06-19 2011-01-06 Mitsubishi Electric Corp データ処理装置及び制御方法及びプログラム
EP2950212A2 (en) 2014-05-22 2015-12-02 Fujitsu Limited Parallel computer system and method for controlling parallel computer system
US9942309B2 (en) 2014-05-22 2018-04-10 Fujitsu Limited Parallel computer system and method for controlling parallel computer system
JP2020113032A (ja) * 2019-01-11 2020-07-27 富士通株式会社 通信装置、通信プログラム、および分散処理方法
JP7181663B2 (ja) 2019-01-11 2022-12-01 富士通株式会社 通信装置、通信プログラム、および分散処理方法

Also Published As

Publication number Publication date
US7707580B2 (en) 2010-04-27
JP4203001B2 (ja) 2008-12-24
US20050183087A1 (en) 2005-08-18

Similar Documents

Publication Publication Date Title
US7707580B2 (en) Parallel computing method, parallel computing program and computer
CN108829494B (zh) 基于负载预测的容器云平台智能资源优化方法
CN107329815B (zh) 一种基于BP-Tabu搜索的云任务负载均衡调度方法
CN103226467B (zh) 数据并行处理方法、系统及负载均衡调度器
Tziritas et al. Application-aware workload consolidation to minimize both energy consumption and network load in cloud environments
CN103227838B (zh) 一种多重负载均衡处理装置与方法
CN105157712B (zh) 一种车辆路径的规划方法和规划系统
Mehta et al. Comparing solution methods for the machine reassignment problem
CN101986272A (zh) 一种云计算环境下的任务调度方法
CN103617472A (zh) 多项目多任务管理中的资源平衡自适应调度方法
Zhang et al. A multi-agent learning approach to online distributed resource allocation
CN104679594A (zh) 一种中间件分布式计算方法
CN106681839A (zh) 弹性计算动态分配方法
CN111770477A (zh) 一种mec网络的保护资源的部署方法及相关装置
CN113835823A (zh) 资源调度方法和装置、电子设备、计算机可读存储介质
Khodar et al. New scheduling approach for virtual machine resources in cloud computing based on genetic algorithm
CN112256441B (zh) 神经网络推理的内存分配方法及装置
CN104239520B (zh) 一种基于历史信息的hdfs数据块放置策略
Mazrekaj et al. Distributed resource allocation in cloud computing using multi-agent systems
CN108055321B (zh) 基于国产化平台的高可靠集群构建方法
CN105138391A (zh) 面向广域分布云系统公平的多任务虚拟机分配方法
Patel et al. An efficient load balancing mechanism with cost estimation on GridSim
CN114595052A (zh) 一种基于图分割算法的分布式通信负载均衡方法
CN109040214B (zh) 一种云环境下可靠性增强的服务部署方法
KR20200102011A (ko) 가상화 기반 고가용성 클러스터의 라이브 마이그레이션 최소화 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080108

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: 20081003

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: 20081009

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111017

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111017

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121017

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees