JPH10171673A - Network using method - Google Patents
Network using methodInfo
- Publication number
- JPH10171673A JPH10171673A JP8333383A JP33338396A JPH10171673A JP H10171673 A JPH10171673 A JP H10171673A JP 8333383 A JP8333383 A JP 8333383A JP 33338396 A JP33338396 A JP 33338396A JP H10171673 A JPH10171673 A JP H10171673A
- Authority
- JP
- Japan
- Prior art keywords
- task
- load
- computer
- server
- tasks
- 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.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、ネットワーク、特
にローカルエリアネットワーク(LAN)全体を一つの疎
結合並列コンピュータとして利用する方法に関するもの
である。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for utilizing a network, in particular, an entire local area network (LAN) as one loosely coupled parallel computer.
【0002】[0002]
【従来の技術】汎用ワークステーションを複数台接続し
て一つの並列コンピュータとして利用するワークステー
ションクラスタと呼ばれる技術が知られている。この技
術により従来スーパコンピュータが必要であった大規模
計算が、ワークステーションクラスタにより低コストで
可能になった。2. Description of the Related Art There is known a technique called a workstation cluster in which a plurality of general-purpose workstations are connected and used as one parallel computer. With this technology, large-scale calculations that previously required a supercomputer can now be performed at low cost with a workstation cluster.
【0003】しかし、ワークステーションクラスタの構
築には、高速かつ専用のネットワークが必要である。ま
た、ワークステーション自体も一般のパーソナルコンピ
ュータに比べれば高価であり、その構築費用を考慮する
と依然として特殊用途向きであるといえる。However, the construction of a workstation cluster requires a high-speed and dedicated network. Further, the workstation itself is more expensive than a general personal computer, and it can be said that the workstation is still suitable for special use in view of the construction cost.
【0004】一方、普通のオフィス等で利用されている
LANは、多数の安価なパーソナルコンピュータと一台あ
るいは数台のサーバコンピュータをイーサネットケーブ
ル等の低コストのケーブルで接続することにより構築さ
れる。On the other hand, it is used in ordinary offices and the like.
The LAN is constructed by connecting a large number of inexpensive personal computers and one or several server computers with low-cost cables such as Ethernet cables.
【0005】LANの主な用途は、ディスク共用、プリン
タ共用、そしてCPU共用である。ディスク共用により、
サーバコンピュータのディスクに格納された情報をオフ
ィス全体で共有することができる。プリンタ共用により
少数のプリンタ(サーバコンピュータに接続されている
ケースが多い)を多人数で利用することができる。CPU
共用によりサーバコンピュータのCPUをパーソナルコン
ピュータ等から利用することができる。[0005] The main uses of LANs are disk sharing, printer sharing, and CPU sharing. By sharing disks,
Information stored on the disk of the server computer can be shared throughout the office. By sharing printers, a small number of printers (often connected to a server computer) can be used by many people. CPU
By sharing, the CPU of the server computer can be used from a personal computer or the like.
【0006】CPU共用は、リモートプロシージャコール
(RPC, 遠隔プロシージャ呼びだし)あるいはリモートメ
ソッドインボケーション (RMI, 遠隔メソッド呼びだし)
等の技術を使って、サーバコンピュータ上のプログラ
ムを呼び出すことにより行なう。 CPU 共用の例として
は、サーバコンピュータ上でデータベースサーバを走ら
せ、クライアントからの問合せに応じてデータベースの
検索等を行なうシステムなどがある。[0006] CPU sharing is a remote procedure call
(RPC, remote procedure call) or remote method invocation (RMI, remote method call)
This is done by calling a program on the server computer using such a technique. An example of CPU sharing is a system that runs a database server on a server computer and searches a database in response to an inquiry from a client.
【0007】いずれの利用法も LAN 上の少数のサーバ
コンピュータのリソースのみを利用する方法である。[0007] Each of the methods uses only the resources of a small number of server computers on the LAN.
【0008】さて、遺伝的アルゴリズム(GA)は、種々の
分野の組合せ最適化問題に応用されている。例えば、GA
によるバス仕業ダイヤ作成装置(特開平8−22740
9号公報)がある。GAは、CPUパワーを多く必要とする
が、近年のパーソナルコンピュータの性能向上によりパ
ーソナルコンピュータ上でも、バス仕業ダイヤ作成など
の実問題を扱うことが可能となった。The genetic algorithm (GA) has been applied to combinatorial optimization problems in various fields. For example, GA
Bus schedule diagram creation device (JP-A-8-22740)
No. 9). GAs require a lot of CPU power, but recent improvements in the performance of personal computers have made it possible to handle real problems, such as creating bus schedules, on personal computers.
【0009】GAは、多くの個体を並列に処理することか
ら分散処理向きとされているが、並列計算のための専用
機が必要となる。The GA is suitable for distributed processing because it processes many individuals in parallel, but requires a dedicated machine for parallel computation.
【0010】[0010]
【発明が解決しようとする課題】パーソナルコンピュー
タの性能向上は目覚しく、ワークステーションの下位機
種を上回る性能を持つに至った。これはユーザがより使
いやすいグラフィックユーザインタフェース(GUI)を求
めた結果であり、GUIの実現には高速なCPUが不可欠であ
る。The performance of personal computers has been remarkably improved, and the performance of personal computers has surpassed that of lower models of workstations. This is the result of a desire for a user-friendly graphical user interface (GUI), and a high-speed CPU is indispensable for realizing the GUI.
【0011】ところが、GUIにおいては、常に大量のCPU
パワー(単位時間あたりにCPUが処理する計算の量)が必
要とされるわけではない。例えば、ユーザがディスプレ
イに表示された文章を読んでいる時あるいは文字入力を
している時などは、CPUパワーのほとんどが使われてい
ない。したがって、LAN全体で見ると、多くのCPUパワー
が余っていることになる。However, in the GUI, a large amount of CPU is always used.
Power (the amount of computation processed by the CPU per unit time) is not required. For example, most of the CPU power is not used when the user is reading a sentence displayed on the display or performing character input. Therefore, when looking at the entire LAN, a lot of CPU power is left.
【0012】本発明の目的は、LANにおいて有効に使わ
れていない余ったCPUパワーを集めて、大規模計算等に
利用することである。本発明では、従来使われていなか
ったCPUパワーを有効利用するため、コストがほとんど
かからずに大規模計算を行なうことができる。例えば、
GAに基づいた解法をLANを用いて高速に実行することが
できる。It is an object of the present invention to collect surplus CPU power not effectively used in a LAN and use it for large-scale calculations and the like. In the present invention, a large-scale calculation can be performed with little cost because the CPU power that has not been used conventionally is effectively used. For example,
A solution based on GA can be executed at high speed using LAN.
【0013】[0013]
【課題を解決するための手段】大規模計算を行なうプロ
グラムを並列実行可能な多数のプロセスに分割し、各プ
ロセスをLAN上の各コンピュータ上で並列処理する。こ
こで、並列処理する最小単位をタスクと呼ぶ。タスク
は、タスク単体で計算可能な処理と他のタスクとの相互
作用を行なう処理とからなる。処理内容は、種々のコン
ピュータ上で実行可能である必要がある。A program for performing a large-scale calculation is divided into a number of processes that can be executed in parallel, and each process is processed in parallel on each computer on a LAN. Here, the minimum unit for parallel processing is called a task. A task includes a process that can be calculated by itself and a process that performs an interaction with another task. The processing content needs to be executable on various computers.
【0014】例えば、仮想マシン(あるいは実在するマ
シン)のバイナリコードでタスクを記述し、各コンピュ
ータにこのバイナリコードを解釈実行するインタープリ
タを実装する。あるいはインタープリタの代わりに、タ
スクを実行する直前にそれぞれのコンピュータで処理で
きるコードに変換するコンパイラを実装してもよい。For example, a task is described by a binary code of a virtual machine (or an actual machine), and an interpreter for interpreting and executing the binary code is mounted on each computer. Alternatively, instead of the interpreter, a compiler that converts the code into a code that can be processed by each computer immediately before executing the task may be implemented.
【0015】ここで、タスクを受け入れ実行するプログ
ラムをタスクサーバと呼ぶ。あらかじめタスクサーバを
LAN上の各コンピュータに常駐させておく。すなわち通
常の業務の処理とは別にバックグラウンドでタスクサー
バを走らせる。ただし、通常の業務におけるGUIの操作
感に影響を与えないようにするため、タスクサーバは低
い優先順位で走らせる。Here, a program that accepts and executes a task is called a task server. Task server in advance
Make it resident on each computer on the LAN. In other words, the task server is run in the background separately from the normal business processing. However, the task server runs at a low priority so as not to affect the operational feeling of the GUI in normal business.
【0016】タスクサーバは、そのコンピュータのCPU
パワーが余っているか否かを判断するために、コンピュ
ータの負荷を監視する。負荷が軽い時は、タスク受け入
れ要請に対して受け入れ許可を返す。負荷が重い時は、
タスクの受け入れを減らしたりあるいは受け入れを中止
する。また、任意に選んだ他のコンピュータへタスク受
け入れ要請を送り、許可が返ってきたコンピュータへ現
在処理中のタスクを移動することにより、処理すべきタ
スクの数を減らす。The task server is a CPU of the computer.
Monitor the computer load to determine if there is excess power. When the load is light, an acceptance permission is returned to the task acceptance request. When the load is heavy,
Reduce or stop accepting tasks. Further, a task acceptance request is sent to another computer arbitrarily selected, and the task currently being processed is moved to the computer for which permission has been returned, thereby reducing the number of tasks to be processed.
【0017】マルチユーザ・マルチタスクOSの場合は、
多数のユーザが同時に利用することから負荷の変動が緩
やかである。したがって負荷の変化を検出してからタス
クを送受しても負荷分散を図ることができる。ところが
パーソナルコンピュータで主に使われているシングルユ
ーザ・マルチタスクOSの場合は、ユーザがアプリケーシ
ョンを立ち上げる時など、負荷が急激に変化する。した
がって負荷の変化を検出してからタスクを送受したので
はパフォーマンスの低下は避けられない。すなわちユー
ザは、アプリケーションの起動が遅い、などの使い勝手
の低下を感じることになる。In the case of a multi-user multi-task OS,
The load fluctuates slowly because many users use it at the same time. Therefore, even if a task is transmitted and received after detecting a change in load, load distribution can be achieved. However, in the case of a single-user multitasking OS mainly used in personal computers, the load changes abruptly when a user starts an application. Therefore, if a task is transmitted / received after detecting a change in load, a decrease in performance cannot be avoided. That is, the user feels a decrease in usability such as a slow start of the application.
【0018】そこで、負荷が急激に変化するコンピュー
タは複数個集めて単一のタスクサーバとして扱う。これ
をタスクサーバクラスタと呼ぶ。タスクサーバクラスタ
のうちの一つのコンピュータにマスタタスクサーバ(以
下「マスタ」と略記)を常駐させ、それ以外のコンピュ
ータにはスレーブタスクサーバ(以下「スレーブ」と略
記)を常駐させる。Therefore, a plurality of computers whose load changes rapidly are collected and handled as a single task server. This is called a task server cluster. A master task server (hereinafter abbreviated as “master”) resides on one computer of the task server cluster, and a slave task server (hereinafter abbreviated as “slave”) resides on the other computers.
【0019】スレーブは、時々刻々検出した負荷をマス
タへ送り、マスタは各スレーブの負荷およびマスタ自身
が検出した負荷の平均値を算出する。マスタは負荷の平
均値が軽い時は、タスク受け入れ要請に対して受け入れ
許可を返す。負荷の平均値が重い時は、タスクの受け入
れを減らしたりあるいは受け入れを中止する。The slave sends the load detected every moment to the master, and the master calculates the average value of the load of each slave and the load detected by the master itself. When the average value of the load is light, the master returns acceptance permission in response to the task acceptance request. If the average load is heavy, reduce or stop accepting tasks.
【0020】マスタが受け入れたタスクは、他のスレー
ブへコピーされる。ただし、タスクを実行できるのはク
ラスタ内で最も負荷が軽いコンピュータだけであり、そ
の他のコンピュータでは実行待ち状態にしておく。そし
て、タスクを実行中のコンピュータの負荷が高くなった
時は、速やかにその実行を停止し、タスクの実行続行に
必要な最低限のデータのみを、その時点でクラスタ内で
最も負荷が軽いコンピュータへ転送し、タスクの実行を
引き継ぐ。The tasks accepted by the master are copied to other slaves. However, the task can be executed only by the computer with the lightest load in the cluster, and the other computers are in a state of waiting for execution. When the load on the computer that is executing the task increases, the execution is immediately stopped, and only the minimum data necessary to continue the execution of the task is transferred to the computer with the lightest load in the cluster at that time. To take over the task execution.
【0021】タスク実行時に必要となるデータが膨大で
ある場合は、クラスタのコンピュータ間でディスクを共
有し、そのディスクにデータを置くことにより転送すべ
きデータ量を減らせばよい。あるいはタスク実行中に、
データを逐次クラスタ内の他のコンピュータに転送して
おき、タスク引き継ぎ時に転送するデータ量を減らして
もよい。When a large amount of data is required when executing a task, a disk may be shared between the computers in the cluster, and the amount of data to be transferred may be reduced by placing data on the disk. Or during task execution,
The data may be sequentially transferred to another computer in the cluster, and the amount of data transferred when the task is taken over may be reduced.
【0022】ユーザがアプリケーションを立ちあげた
時、あるいは処理に時間がかかる計算を開始させた時な
ど、負求する処理のパフォーマンスがそれの処理量を減
らす。負荷が急に重くなった場合は、ユーザが要求する
処理のパフォーマンスが低下しないように、処理中のタ
スクそれぞれの処理量を減らしたり、一時中断してもよ
い。あるいは負荷の変化を検出するのではなく、OSのシ
ステムコールを監視することによって負荷の変化を予測
し、実際に負荷が重くなる前にタスクの移動等の対策を
行なってもよい。When a user starts an application or starts a calculation that takes a long time to process, the performance of the requested process reduces the amount of processing. When the load suddenly increases, the processing amount of each task being processed may be reduced or temporarily interrupted so that the performance of the processing requested by the user does not deteriorate. Alternatively, instead of detecting a change in load, a change in load may be predicted by monitoring a system call of the OS, and measures such as task movement may be taken before the load actually becomes heavy.
【0023】さて、大規模計算を始めるには、まず複数
のタスクを生成する。タスクを生成するプログラムをク
ライアントと呼ぶ。クライアントはLANを通してユニー
クな番号を持ち、生成したタスクにその番号を与える。
次にクライアントはタスクサーバに、タスク受け入れ要
請を送り、受け入れを許可したタスクサーバにタスクを
送る。To start large-scale calculation, first, a plurality of tasks are generated. A program that generates a task is called a client. The client has a unique number through the LAN and gives the created task that number.
Next, the client sends a task acceptance request to the task server, and sends the task to the task server that has accepted the task.
【0024】タスク実行時に必要となるメモリ量の概算
を、タスク受け入れ要請と一緒に送り、タスクサーバ
は、タスクが必要とするメモリ量がその時点での空きメ
モリ容量を上回る場合は受け入れ許可を出さないように
してもよい。同じクライアント番号を持つタスク同士
は、LANを介して相互作用する。また、タスクはあらか
じめクライアントが指定した条件が成立した時、例えば
タスクの計算が終了した時など、その時点での処理状況
および計算結果などをクライアントに通知する。An estimate of the amount of memory required for executing the task is sent together with the task acceptance request, and the task server issues an acceptance permission if the amount of memory required by the task exceeds the available memory at that time. It may not be necessary. Tasks with the same client number interact via LAN. Also, the task notifies the client of the processing status and the calculation result at that time, such as when the condition specified by the client is satisfied in advance, for example, when the calculation of the task is completed.
【0025】クライアントは、その番号と共にメッセー
ジを各タスクサーバに送ることにより、同じクライアン
ト番号を持つタスクの処理状況、計算結果などを、クラ
イアントへ通知させる。あるいはクライアント番号と共
に計算終了要求メッセージを送ることにより、同じクラ
イアント番号を持つタスクの計算を終了させ、そのタス
クを消滅させる。The client sends a message together with the number to each task server to notify the client of the processing status of the task having the same client number, the calculation result, and the like. Alternatively, by sending a calculation end request message together with the client number, the calculation of the task having the same client number is ended, and the task is deleted.
【0026】[0026]
【発明の実施の形態】以下、バス会社の一営業所のLAN
に対する一実施例を用いて、本発明を詳細に説明する。
図1に構成図を示す。営業所では、バスダイヤ作成、バ
ス運行管理、従業員管理等の目的で数台〜十数台のコン
ピュータが使われており、バスダイヤデータベース等を
共有する目的でLANで結ばれている。BEST MODE FOR CARRYING OUT THE INVENTION A LAN of a branch office of a bus company will be described below.
The present invention will be described in detail with reference to an example.
FIG. 1 shows a configuration diagram. In business offices, several to dozens of computers are used for the purpose of creating bus schedules, managing bus operations, managing employees, and the like, and are connected via a LAN to share bus schedule databases and the like.
【0027】営業所においてCPUパワーが必要となる計
算は、バス仕業ダイヤの作成、すなわちバスの運行それ
ぞれに乗務員を割り当てるスケジューリングである。バ
ス仕業ダイヤ作成をGAに基づいて解く手法は、上記の従
来例に記載されている。この解法では、中規模の営業所
において制約条件を満たす仕業ダイヤを生成するには、
通常のパーソナルコンピュータで十数分程度を要する。The calculation that requires the CPU power at the sales office is the preparation of a bus schedule, that is, the scheduling of assigning crew members to each bus operation. The method of solving the bus schedule diagram based on GA is described in the above-mentioned conventional example. In this solution, in order to generate a working schedule that satisfies the constraints in a medium-sized office,
It takes about 10 minutes with a normal personal computer.
【0028】そこで、このGAをLAN上で分散実行するこ
とによりバス仕業ダイヤの作成に要する時間を短縮する
方法を説明する。LAN上の各コンピュータ110にタスクサ
ーバ120を常駐させる。タスクサーバは、負荷監視部12
1,タスク管理部122,タスク実行部123からなる。A method for reducing the time required for creating a bus schedule by distributing and executing the GA on a LAN will be described. A task server 120 is resident on each computer 110 on the LAN. The task server is a load monitoring unit 12
1. It comprises a task management unit 122 and a task execution unit 123.
【0029】負荷監視部121は、コンピュータ110の負荷
を監視する。一般にマルチタスクOSは、“run queue”
と呼ばれる実行可能なスレッドの実行待ち行列を持つ。
この行列長の時間平均をロードアベレージと言う。ロー
ドアベレージの数値が大きいほど、コンピュータの負荷
が重い。つまり、プログラムの実行速度が遅くなる。そ
こで、run queueの行列長の30秒間の平均値を、コンピ
ュータ110の負荷l(エル)と呼ぶ。The load monitor 121 monitors the load on the computer 110. Generally, multitask OS is “run queue”
It has an execution queue of executable threads called.
The time average of this matrix length is called the load average. The higher the load average value, the heavier the computer load. That is, the execution speed of the program is reduced. Therefore, the average value of the queue length of the run queue for 30 seconds is referred to as the load 1 (ell) of the computer 110.
【0030】タスク管理部122は、負荷監視部121で算出
した負荷lが3未満であれば、LAN経由で送られてくるタ
スク受け入れ要請に対し、lW秒待ってから受け入れ許可
を返す。負荷lが3以上であれば、タスク受け入れ要請
を無視する。Wは、コンピュータの性能に基づいて定め
る。すなわち高性能のコンピュータは、Wの値を小さく
設定し、能力が低いコンピュータはWの値を大きく設定
する。許可を返した後、タスクが送られてきた場合は、
それを受け入れタスク実行部123へ渡す。If the load 1 calculated by the load monitoring unit 121 is less than 3, the task management unit 122 waits 1W seconds for a task acceptance request sent via the LAN, and then returns acceptance. If the load 1 is 3 or more, the task acceptance request is ignored. W is determined based on the performance of the computer. That is, a high-performance computer sets a small W value, and a low-performance computer sets a large W value. If you receive a task after returning permission,
It is accepted and passed to the task execution unit 123.
【0031】負荷lが4以上の場合は、タスク実行部123
で実行中のタスクの一つを任意に選び、その実行を停止
し、そのタスクを他のコンピュータへ移動させる。移動
先は、まず全てのタスクサーバに受け入れ要請を送り、
最初に許可が返ってきたタスクサーバとする。移動が完
了した後、クライアント101に移動先を通知する。When the load 1 is 4 or more, the task execution unit 123
Arbitrarily selects one of the running tasks, stops its execution, and moves the task to another computer. The destination first sends an acceptance request to all task servers,
The task server to which permission is returned first is assumed. After the movement is completed, the client 101 is notified of the destination.
【0032】負荷lが4未満の場合は、タスク実行部123
で実行中のタスクそれぞれに対し現在の負荷を通知す
る。なお、タスクは低い優先順位で実行するため、負荷
が重くなるとタスクの実行に費やされるCPU時間は減
る。If the load 1 is less than 4, the task execution unit 123
Notifies the current load to each of the running tasks. Since tasks are executed with a low priority, when the load becomes heavy, the CPU time spent for executing the tasks decreases.
【0033】クライアント101は、全てのタスクサーバ
にタスク受け入れ要請を送り、早く受け入れ許可が返っ
てきたタスクサーバから順にN個のタスクサーバへそれ
ぞれタスクを送る。クライアントはタスクを送ったタス
クサーバのリスト102を記憶していて、タスクの移動が
起こった時はタスクサーバから移動先の通知を受け、リ
ストを更新する。The client 101 sends a task acceptance request to all task servers, and sends tasks to the N task servers in order from the task server to which acceptance acceptance is returned earlier. The client stores a list 102 of the task servers that have sent the task, and when the task is moved, receives a notification of the destination from the task server and updates the list.
【0034】タスクは次に列挙する変数およびメソッド
から構成される。 I:クライアント番号 H:転出先タスクサーバ T:転出間隔 Mmax,Mmin: 個体数の上下限 R:転出数 S:個体集合 GAメソッド 転入メソッド 負荷調整メソッド 個体集合Sに含まれる個体それぞれが一つのバス仕業ダ
イヤに対応する。個体集合は、クライアントがタスクの
生成する時にランダムに生成される。したがって、その
初期の個体に対応するバス仕業ダイヤは、制約条件を満
たさない質の低いものであるが、GAメソッドの実行によ
りバス仕業ダイヤが「進化」すなわち改良され、十分世
代交代を進めることにより最適な仕業ダイヤを得られ
る。GAメソッドは、タスク実行部123で起動され、タス
クが消滅終了するまで継続して実行される。A task is composed of the following variables and methods. I: Client number H: Transfer destination task server T: Transfer interval Mmax, Mmin: Upper and lower limit of number of individuals R: Number of transfers S: Individual set GA method Transfer method Load adjustment method Each individual included in individual set S is one bus Corresponds to the work schedule. The individual set is randomly generated when a client generates a task. Therefore, the bus schedule corresponding to the initial individual is of low quality that does not satisfy the constraints, but by executing the GA method the bus schedule is `` evolved '', that is, improved, and by sufficiently changing generations, You can get the best work schedule. The GA method is started by the task execution unit 123 and is continuously executed until the task ends.
【0035】GAメソッドのフローチャートを図2に示
す。ステップ202〜ステップ205は、GAの遺伝的操作であ
り、上述した従来技術と同様である。この遺伝的操作を
T回繰り返した後、転出操作208〜210を行なう。FIG. 2 shows a flowchart of the GA method. Steps 202 to 205 are genetic manipulations of the GA, which are the same as those in the above-described conventional technology. This genetic manipulation
After repeating T times, the transfer operations 208 to 210 are performed.
【0036】転出操作は、個体集合からランダムに選ん
だR個体を、転出先タスクサーバHへ送る操作である。ま
ずステップ208において、タスクサーバHにクライアント
番号Iを持つタスクが存在するかをタスクサーバHへ問い
合わせる。The transfer operation is an operation of sending an R individual randomly selected from the individual set to the transfer destination task server H. First, in step 208, the task server H is inquired about whether a task having the client number I exists in the task server H.
【0037】クライアント番号Iを持つタスクが、他の
タスクサーバへ移動していてHには存在しない場合は、
クライアント番号Iを持つタスクが存在する別のタスク
サーバをクライアント101に問い合わせ(ステップ209)、
転出先タスクサーバHの値を更新する。クライアント101
は、この問い合わせに対し、サーバリスト102の中から
ランダムに選んだタスクサーバを返す。If the task having the client number I has moved to another task server and does not exist in H,
Inquire the client 101 of another task server where a task having the client number I exists (step 209),
Update the value of the transfer destination task server H. Client 101
Returns a task server randomly selected from the server list 102 in response to this inquiry.
【0038】タスクがHに存在する場合は、ステップ210
において転出先タスクサーバHへR個の個体を送る。個体
が送られてきたタスクサーバの側では、対応するクライ
アント番号を持つタスクの転入メソッドを呼び出すこと
により、そのタスクの個体集合に個体を追加する。GAメ
ソッドと転入メソッドは非同期に実行されるので、個体
集合への変更が排他的に行なわれるようにするためセマ
フォを用いる。If the task exists in H, step 210
Sends R individuals to the transfer-destination task server H. The task server to which the individual has been sent adds the individual to the individual set of the task by calling the transfer method of the task having the corresponding client number. Since the GA method and the transfer method are executed asynchronously, a semaphore is used to exclusively change the set of individuals.
【0039】負荷調整メソッドは、負荷lが3未満の
時、タスク管理部によって呼ばれる。負荷調整メソッド
は、lが大きければ個体数の上限Mmaxを下限Mmin近くに
設定する。例えば、Mmax←Mmin+(Mmax−Mmin)/10
とする。また、lが小さければ個体数の上限を大きくす
る。例えばMmax←Mmin×(4−l)とする。The load adjustment method is called by the task manager when the load 1 is less than 3. The load adjustment method sets the upper limit Mmax of the number of individuals close to the lower limit Mmin if l is large. For example, Mmax ← Mmin + (Mmax−Mmin) / 10
And If l is small, the upper limit of the number of individuals is increased. For example, Mmax ← Mmin × (4-1).
【0040】転入/転出により個体数は変動する。そこ
で、個体数がMmin以上かつMmax以下であるように、交差
増殖202および自然淘汰204において調節する。すなわ
ち、個体数がMminを下回る時は、交差により生成する個
体数を増やし、個体数がMmaxを上回る時は、自然淘汰に
より取り除く個体数を増やす。The number of individuals fluctuates due to in / out. Therefore, adjustment is performed in the cross-proliferation 202 and the natural selection 204 so that the number of individuals is not less than Mmin and not more than Mmax. That is, when the number of individuals is below Mmin, the number of individuals generated by crossing is increased, and when the number of individuals exceeds Mmax, the number of individuals to be removed by natural selection is increased.
【0041】クライアント101は、サーバリスト102の各
タスクサーバに対し定期的にその時点における最優良個
体の評価値を問い合わせる。各タスクサーバのうちで最
も評価値が高い個体に対応するバス仕業ダイヤを、ダイ
ヤ編成システム103へ送り、ユーザに提示する。ユーザ
は、表示されたバス仕業ダイヤが満足する水準であると
判断した時、停止ボタンを押す。するとクライアントは
終了メッセージを各タスクサーバに送ることにより計算
を終了させる。The client 101 periodically inquires each task server in the server list 102 about the evaluation value of the best individual at that time. The bus schedule corresponding to the individual with the highest evaluation value among the task servers is sent to the diamond composition system 103 and presented to the user. When the user determines that the displayed bus schedule is at a satisfactory level, the user presses the stop button. Then, the client ends the calculation by sending an end message to each task server.
【0042】バス仕業ダイヤが満たすべき水準をあらか
じめタスクのGAメソッドに設定しておき、最優良個体の
評価値がその水準を上回った時クライアントにその旨通
知し、計算を終了させてもよい。The level to be satisfied by the bus schedule may be set in advance in the GA method of the task, and when the evaluation value of the best individual exceeds the level, the client may be notified of that and the calculation may be terminated.
【0043】[0043]
【発明の効果】使いやすいGUIには、高速なCPUが必要で
ある。しかしユーザが画面上の文字を読んだり、文字を
入力している時などはCPUパワーのほとんどを利用して
いない。余っているCPUパワーはLAN全体で見ると膨大な
ものとなる。本発明により、これらの余っているCPUパ
ワーを利用することが可能となる。既存のLANを用いる
ため、極めて低コストで大規模並列計算を行なうことが
できる。As described above, an easy-to-use GUI requires a high-speed CPU. However, when the user is reading or typing characters on the screen, most of the CPU power is not used. The surplus CPU power is enormous when viewed over the entire LAN. According to the present invention, it is possible to utilize the surplus CPU power. Because an existing LAN is used, large-scale parallel computation can be performed at extremely low cost.
【0044】GAに基づく解法を、LAN上の多数のコンピ
ュータ上で分散実行することにより計算時間を短縮する
ことができる。あるいは同じ計算時間ではより多くの個
体を評価できるため、質の高い解を得ることができる。
例えばバス仕業ダイヤ作成の例では、従来十数分程度か
かっていた計算を数十台のコンピュータで分散して処理
することにより一分以内で解くことができる。このた
め、種々の条件 (例えばバスの発着時間) を変更しつつ
仕業ダイヤ生成を繰り返す試行錯誤を十分に繰り返すこ
とが可能になる。The computation time can be reduced by executing the GA-based solution on a large number of computers on a LAN in a distributed manner. Alternatively, more individuals can be evaluated in the same calculation time, so that a high-quality solution can be obtained.
For example, in the example of creating a bus schedule, it can be solved within one minute by dispersing and processing the calculations that conventionally took about ten and several minutes by several tens of computers. Therefore, it is possible to sufficiently repeat the trial and error of repeating the generation of the work schedule while changing various conditions (for example, the departure and arrival times of the bus).
【図1】本発明の実施例を示すブロック図である。FIG. 1 is a block diagram showing an embodiment of the present invention.
【図2】GAメソッドのフローチャートである。FIG. 2 is a flowchart of a GA method.
Claims (3)
パーソナルコンピュータあるいはサーバコンピュータの
それぞれに、他のコンピュータからネットワークを介し
て送られてくるタスクを処理するプログラムを常駐さ
せ、ローカルエリアネットワークを一つの疎結合並列コ
ンピュータとして利用する方法であって、 前記プログラムは、そのプログラムが常駐するコンピュ
ータの負荷を監視し、 負荷が軽い時は多くの前記タスクを受け入れ、負荷が重
い時は受け入れるタスクを減らすことを特徴とするネッ
トワーク利用方法。1. A program for processing a task sent from another computer via a network is resident on each of a personal computer and a server computer connected to a local area network, and the local area network is loosely coupled to one. A method for utilizing as a parallel computer, wherein the program monitors a load of a computer in which the program resides, and accepts many tasks when the load is light, and reduces tasks to accept when the load is heavy. And how to use the network.
タからなるグループで同一のタスクを受け入れ、受け入
れ時点で最も負荷の軽いコンピュータが前記タスクを処
理し、他のコンピュータでは前記タスクの実行を待ち状
態にしておくことを特徴とする請求項1に記載のネット
ワーク利用方法。2. When the load is heavy, a group of a plurality of computers accepts the same task, and the computer with the lightest load processes the task at the time of acceptance, and the other computers wait for the execution of the task. 2. The network using method according to claim 1, wherein the network is used.
が重くなった時、前記グループに属するコンピュータの
他のマシンへ、前記タスクの継続実行に必要なデータを
転送してタスクの処理を引き継ぐことを特徴とする請求
項1に記載のネットワーク利用方法。3. When the load of a computer processing the task becomes heavy, transferring data necessary for the continuous execution of the task to another machine of the computers belonging to the group and taking over the task processing. The method according to claim 1, wherein:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8333383A JPH10171673A (en) | 1996-12-13 | 1996-12-13 | Network using method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8333383A JPH10171673A (en) | 1996-12-13 | 1996-12-13 | Network using method |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10171673A true JPH10171673A (en) | 1998-06-26 |
Family
ID=18265511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8333383A Pending JPH10171673A (en) | 1996-12-13 | 1996-12-13 | Network using method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH10171673A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008165301A (en) * | 2006-12-27 | 2008-07-17 | Fujitsu Ltd | Load aggregation program, recording medium storing it, load aggregation device, and load aggregation method |
JP2010086145A (en) * | 2008-09-30 | 2010-04-15 | Hitachi East Japan Solutions Ltd | Distributed processing system |
JP2010134518A (en) * | 2008-12-02 | 2010-06-17 | Hitachi Ltd | Method of managing configuration of computer system, computer system, and program for managing configuration |
JP2014074998A (en) * | 2012-10-03 | 2014-04-24 | Fujitsu Frontech Ltd | Server device, distributed processing method and distributed processing program |
JP2019079137A (en) * | 2017-10-20 | 2019-05-23 | トヨタ自動車株式会社 | Vehicle and computing system |
-
1996
- 1996-12-13 JP JP8333383A patent/JPH10171673A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008165301A (en) * | 2006-12-27 | 2008-07-17 | Fujitsu Ltd | Load aggregation program, recording medium storing it, load aggregation device, and load aggregation method |
JP2010086145A (en) * | 2008-09-30 | 2010-04-15 | Hitachi East Japan Solutions Ltd | Distributed processing system |
JP2010134518A (en) * | 2008-12-02 | 2010-06-17 | Hitachi Ltd | Method of managing configuration of computer system, computer system, and program for managing configuration |
JP2014074998A (en) * | 2012-10-03 | 2014-04-24 | Fujitsu Frontech Ltd | Server device, distributed processing method and distributed processing program |
JP2019079137A (en) * | 2017-10-20 | 2019-05-23 | トヨタ自動車株式会社 | Vehicle and computing system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8640132B2 (en) | Jobstream planner considering network contention and resource availability | |
Liu et al. | Efficient dependent task offloading for multiple applications in MEC-cloud system | |
CN103092698B (en) | Cloud computing application automatic deployment system and method | |
US5325527A (en) | Client/server communication system utilizing a self-generating nodal network | |
Son et al. | Improving the performance of time-constrained workflow processing | |
Buyya et al. | Nimrod/G: An architecture for a resource management and scheduling system in a global computational grid | |
US7185046B2 (en) | Submitting jobs in a distributed computing environment | |
GB2320594A (en) | Dispatching client method calls to parallel execution threads within a server | |
WO2023168923A1 (en) | Robotic process automation cloud service system and implementation method | |
Tang et al. | Nanily: A qos-aware scheduling for dnn inference workload in clouds | |
CN113326111A (en) | Distributed monitoring and scheduling method for quantum computer cluster | |
US7657590B2 (en) | Load balancing system and method | |
JPH10171673A (en) | Network using method | |
US7143128B1 (en) | Interactive data processor controlled display interface for tracking of allocated messages in a dynamic workload balancing communication system | |
Cao et al. | Performance prediction technology for agent-based resource management in grid environments | |
Kumar et al. | Load balancing with the help of round robin and shortest job first scheduling algorithm in cloud computing | |
GB2390776A (en) | Method and apparatus for automated network polling | |
US7043730B2 (en) | System and method for demand oriented network resource management | |
CN111506407A (en) | Resource management and job scheduling method, system and medium combining Pull mode and Push mode | |
US20020143947A1 (en) | Interactive data processor controlled display interface for tracking allocated messages in a dynamic workload balancing communication system | |
JPH1185694A (en) | Inter-server link job operating system | |
Ho et al. | GRASG-a framework for" gridifying" and running applications on service-oriented grids | |
Banerjee et al. | Advanced task scheduling for cloud service provider using genetic algorithm | |
KR101282786B1 (en) | A multi-agent system and a method for managing of an agent in multi-agent system | |
Balashov et al. | Resource Management in Private Multi-Service Cloud Environments |