JPH09146903A - Data transfer control method for parallel computer - Google Patents

Data transfer control method for parallel computer

Info

Publication number
JPH09146903A
JPH09146903A JP7307111A JP30711195A JPH09146903A JP H09146903 A JPH09146903 A JP H09146903A JP 7307111 A JP7307111 A JP 7307111A JP 30711195 A JP30711195 A JP 30711195A JP H09146903 A JPH09146903 A JP H09146903A
Authority
JP
Japan
Prior art keywords
data
function
window
computer
program
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
Application number
JP7307111A
Other languages
Japanese (ja)
Inventor
Nobutoshi Sagawa
暢俊 佐川
Naonobu Sukegawa
直伸 助川
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP7307111A priority Critical patent/JPH09146903A/en
Publication of JPH09146903A publication Critical patent/JPH09146903A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To transmit and receive messages safely on a parallel computer by using remote memory transfer. SOLUTION: When messages are transmitted to and received from the parallel computer by remote memory transfer, the respective element computers are provided with an arbitrary number of memory areas 122 and 123 that can be accessed remotely and their management areas 124 and 125, and flags for remote access inhibition are provided in the management areas for the respective memory areas, thereby optionally allowing the areas to be accessed remotely or inhibiting them from being accessed remotely. Consequently, data are prevented from being overwritten to the same memory area owing to multiple writing and illegal data are prevented from being read out owing to the repetition of writing to and reading from the same memory area.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する利用分野】本発明は複数の要素計算機
(プロセシングユニット、以下PU)を通信網によって
結合した並列計算機におけるPU間のデータ通信に係わ
り、特にデータ通信が相手PUの介入なしに行なわれる
リモートメモリへのデータ転送時のデータの安全性の確
保に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to data communication between PUs in a parallel computer in which a plurality of elemental computers (processing units, hereinafter referred to as PUs) are connected by a communication network, and particularly data communication is performed without intervention of a partner PU. Relating to ensuring data safety when transferring data to remote memory.

【0002】[0002]

【従来の技術】並列計算機は、複数のPUを通信網によ
って結合し、それらを同時に稼働させることによって処
理速度を向上させる。本発明では特に、各PUがそれに
付随するメモリ空間のみをアクセスすることができる分
散メモリ型の並列計算機を対象とする。分散メモリ型並
列計算機では、他のPUのメモリ上にあるデータを直接
アクセスすることはできない。データが必要となる度に
送受信を行なってそのデータを自PUに移動する必要が
ある。
2. Description of the Related Art A parallel computer improves processing speed by connecting a plurality of PUs via a communication network and operating them simultaneously. The present invention is particularly directed to a distributed memory type parallel computer in which each PU can access only the memory space associated with it. The distributed memory parallel computer cannot directly access the data in the memory of another PU. Every time data is needed, it is necessary to perform transmission / reception to move the data to its own PU.

【0003】分散メモリ型並列計算機では、PU間のデ
ータのやりとりをすべてプログラム中に記述する必要が
ある。ここで、PU間で受け渡されるデータをメッセー
ジと呼ぶ。並列計算機用プログラムでは、他のPUで必
要となるデータが自PUのメモリ上にある場合にはそれ
をあらかじめ送信し、他のPUのメモリ上にあるデータ
を自PUが必要とする場合にはあらかじめ受信しておく
ような指示を各PUのプログラム中に明示的に記述する
必要がある。多くの並列計算機システムでは、このよう
なPU間のメッセージの送受信をサポートする目的で、
メッセージパシングライブラリと呼ばれる関数(あるい
はサブルーチン)群があらかじめ用意されており、通信
は「C」や「FORTRAN」などのプログラムからの
関数コールとして記述できるようになっている。メッセ
ージパシングライブラリの中には、異なる並列計算機ハ
ードウェア上にインプリメントされ、事実上の標準とし
ての通信環境を提供するものも現われている。米国Oa
k Ridge National Laborato
ryで開発されたPVMや、近年標準化が進められてい
るMPI(Message Passing Inte
rface)はその例である。これらの通信ライブラリ
をコールすることにより書かれた並列プログラムは、異
なる並列計算機上でも再コンパイルのみで動作させ得る
可能性(可搬性)が高い。
In a distributed memory type parallel computer, it is necessary to describe all data exchange between PUs in a program. Here, the data passed between PUs is called a message. In a parallel computer program, if the data required by another PU is in the memory of its own PU, it is sent in advance, and if the data in the memory of another PU is needed by its own PU, It is necessary to explicitly describe the instruction to be received in advance in the program of each PU. In many parallel computer systems, in order to support the sending and receiving of messages between such PUs,
A group of functions (or subroutines) called a message passing library is prepared in advance, and communication can be described as a function call from a program such as "C" or "FORTRAN". Some message passing libraries have been implemented on different parallel computer hardware to provide a de facto standard communication environment. US Oa
k Ridge National Laborato
PVM developed by ry and MPI (Message Passing Inte), which has been standardized in recent years.
rface) is an example. A parallel program written by calling these communication libraries has a high possibility (portability) to be operated only by recompiling on a different parallel computer.

【0004】通信ライブラリでPU間のメッセージの受
け渡しを行なうには、2種類の方式が知られている。第
1は、送信側PUでメッセージの送信関数をコールし、
受信側PUでそれに対応するメッセージの受信関数をコ
ールし、これらの間でメッセージを送受信する方式であ
る。送信関数より受信関数が先にコールされた場合には
受信関数はデータの到着までブロック(停止)し、送信
関数が先にコールされた場合には受信関数の発行までブ
ロックするか、メッセージがシステム内にバッファリン
グされるのが一般的である。これはsend/rece
ive方式と呼ばれる。第2は、送信側PUでメッセー
ジの送信関数をコールしただけで(対応する受信関数の
発行なしに)メッセージを相手PUに書き込み、あるい
は受信関数のコールにより(対応する送信関数の発行な
しに)データを相手PUから読み込む方式である。これ
はput/get方式、あるいはリモートメモリコピー
方式と呼ばれ、送信関数はput関数、受信関数はge
t関数と呼ばれる。
Two types of methods are known for passing messages between PUs in a communication library. First, the sending PU calls the send function of the message,
This is a method in which a PU on the receiving side calls a corresponding message receiving function and a message is transmitted and received between them. If the receiving function is called before the sending function, the receiving function blocks (stops) until the arrival of data, and if the sending function is called first, blocks until the receiving function is issued, or the message is set by the system. It is generally buffered in. This is send / receive
It is called the ive method. Secondly, the sending PU writes the message to the other PU just by calling the message sending function (without issuing the corresponding receiving function), or by calling the receiving function (without issuing the corresponding sending function). This is a method of reading data from the partner PU. This is called the put / get method or the remote memory copy method. The send function is the put function and the receive function is the ge function.
It is called the t function.

【0005】上に挙げた標準的なメッセージパシングラ
イブラリのうちPVMではsend/receive方
式による通信のみをサポートしている。MPIもsen
d/receive方式のみをサポートしているが、時
期バージョンとして現在検討が進められているMPI−
2ではこれに加えてput/get方式による通信も取
り入れる計画がある。
Of the standard message passing libraries listed above, PVM only supports communication by the send / receive system. MPI is also sen
Only the d / receive system is supported, but MPI-which is currently under consideration as a time version
In 2 there is a plan to incorporate communication by the put / get method in addition to this.

【0006】send/receive方式は、送信
側、受信側のPUがそれぞれに送信、受信関数を発行し
て明示的にメッセージを受け渡すため、利用者はどのタ
イミングでメッセージが自PUのどのメモリ領域に送受
信されるかを制御することができる。しかし、利用者は
プログラム中で送信と受信の対応付けを常に行なわなく
てはならいので、プログラムの手間は大きい。これに対
し、put/get方式は送信側、受信側がそれぞれ一
方的に相手PU上にあるデータを読み書きする。データ
が必要になった時点でput、あるいはgetの一方を
発行すればよいので、プログラムの手間は少なくなる。
しかし、メッセージの送受信先メモリ領域を誤った場
合、あるいは2つ以上のPUがほぼ同時に同一のメモリ
領域に読み書きを行なった場合には、データを破壊した
り、データを上書きしたり、誤ったデータを読み出す恐
れがある。
In the send / receive system, since the PUs on the transmitting side and the receiving side each issue a sending function and a receiving function to explicitly deliver the message, the user is at which timing the message is sent to which memory area of its own PU. Can be sent and received. However, since the user must always associate transmission and reception in the program, the work of the program is great. On the other hand, in the put / get method, the transmitting side and the receiving side unilaterally read / write data on the partner PU. Since it is sufficient to issue either put or get when the data is needed, the labor of the program is reduced.
However, if the message sending / receiving memory area is wrong, or if two or more PUs read / write to the same memory area almost simultaneously, the data will be destroyed, the data will be overwritten, or the wrong data will be written. Might read out.

【0007】MPI−2では、送受信先メモリ領域の誤
りにより利用者プログラムが破壊されることを防ぐ目的
で、各PUにput/get専用のメモリ領域を確保す
る関数を提供している。put/get 操作は、各P
Uであらかじめ確保された領域に対してしかメッセージ
の送受信を行なえないので、それ以外のメモリ領域に誤
って書き出し、読み込みを行なう可能性がなくなる。
In MPI-2, in order to prevent the user program from being destroyed due to an error in the transmission / reception destination memory area, each PU is provided with a function for ensuring a memory area dedicated to put / get. Put / get operation is performed for each P
Since the message can be sent and received only to the area secured in advance by U, there is no possibility of accidentally writing and reading to other memory areas.

【0008】以下、メッセージパシングライブラリMP
I−2で提案されているput/get関数を用いたメ
ッセージ通信方法の概略を説明する。ただし、説明を簡
単にするために、関数仕様は一部簡略化して記述する。
Hereinafter, the message passing library MP
An outline of a message communication method using the put / get function proposed in I-2 will be described. However, in order to simplify the explanation, the function specifications are partially simplified.

【0009】MPI利用時には、まず通信に参画する全
プログラム上で次のようなMPI初期化関数をコールす
る。通常この処理は並列プログラムの先頭で行なう。
When using MPI, the following MPI initialization function is called on all programs participating in communication. Normally, this process is performed at the beginning of the parallel program.

【0010】Init() 本関数中で、メッセージパシングライブラリは必要な初
期化操作を行なう。以下に挙げる関数は、初期化関数を
コールした後でのみ使用することができる。
Init () In this function, the message passing library performs necessary initialization operations. The functions listed below can only be used after calling the initialization function.

【0011】初期か終了後put/getを用いる際に
は、全PU上でput/get用に専用のメモリ領域を
確保するための次の関数をコールする。
When using put / get at the initial stage or after the end, the following function for securing a dedicated memory area for put / get on all PUs is called.

【0012】Rmc_malloc(base, si
ze, id) ここでbaseは確保するメモリ領域(ウィンドウ)の
先頭アドレス、sizeはメモリ領域の長さである。i
dはウィンドウの識別子であり本関数の出力引き数であ
る。本関数を複数回コールすることにより、ウィンドウ
を一つのPU上に任意個数設けることができる。本関数
で生成したウィンドウには、get/put関数からセ
ットできるカウンタが自動的に付属する。このカウンタ
は直接利用者がアクセスすることはできないが、後述の
ハンドラを用いてその値を監視することで、ウィンドウ
に対するput/get操作の完了を検知することがで
きる。
Rmc_malloc (base, si
ze, id) where base is the start address of the memory area (window) to be secured, and size is the length of the memory area. i
d is a window identifier and is an output argument of this function. By calling this function multiple times, it is possible to provide an arbitrary number of windows on one PU. A counter that can be set from the get / put function is automatically attached to the window created by this function. Although this counter cannot be directly accessed by the user, the completion of the put / get operation for the window can be detected by monitoring the value of the counter using a handler described later.

【0013】他のPUのウィンドウに対するput操作
は次の関数コールにより実行する。 Put(origin_addr, origin_s
ize, target_rank, id, inc
r) ここでorigin_addr, origin_si
zeは送るべきメッセージが格納された自PUのメモリ
の先頭アドレスと長さである。target_rank
は送り先のPU番号である。idはputの対象となる
相手PU上のウィンドウを示す。incrは、当該ウィ
ンドウに付属するカウンタのインクリメント値を表わ
し、メッセージの書き込みと同時にput先ウィンドウ
のカウンタがここに指定した値だけインクリメントされ
る。
Put operations for windows of other PUs are executed by the following function call. Put (origin_addr, origin_s
size, target_rank, id, inc
r) where origin_addr, origin_si
ze is the start address and length of the memory of the own PU in which the message to be sent is stored. target_rank
Is the PU number of the destination. id indicates a window on the partner PU to be put. incr represents the increment value of the counter attached to the window, and at the same time as writing the message, the counter of the put-destination window is incremented by the value specified here.

【0014】一方、get操作は次の関数コールによ
る。
On the other hand, the get operation is performed by the following function call.

【0015】Get(origin_addr, or
igin_size, target_rank, i
d, incr) 各引数の意味はgetの場合と同様である。ただし、本
関数ではメッセージが相手PUのウィンドウから読み出
され、自PUのorigin_addr以降のメモリに
受信される。
Get (origin_addr, or
igin_size, target_rank, i
d, incr) The meaning of each argument is the same as in the case of get. However, in this function, the message is read from the window of the partner PU and is received by the memory after the origin_addr of the own PU.

【0016】put/get操作の完了は、カウンタが
利用者があらかじめ指定した上限値を越えたかどうかで
判定する。ここで、カウンタの上限値は利用者がウィン
ドウごとに次の関数をコールすることにより設定するこ
とができる。
Completion of the put / get operation is judged by whether or not the counter exceeds the upper limit value designated by the user in advance. Here, the upper limit value of the counter can be set by the user by calling the following function for each window.

【0017】Set_counter_thresho
ld(id, count) idはウィンドウの識別子、countは設定すべき上
限値である。カウンタが上限値を超えた場合には、利用
者があらかじめ登録したハンドリング関数がMPIによ
りコールバックされる。ハンドリング関数の設定は、次
の関数コールにより行なう。
Set_counter_thresh
ld (id, count) id is a window identifier, and count is an upper limit value to be set. When the counter exceeds the upper limit value, the handling function registered in advance by the user is called back by MPI. The handling function is set by the following function call.

【0018】 Post_handler(id, handler) idはハンドリング関数の呼び出し対象となるウィンド
ウの識別子、handlerはハンドリング関数へのポ
インタである。ハンドリング関数自体は利用者が自由に
記述することができる。カウンタの上限値に1を指定
し、put/getの引き数incrにも1を指定すれ
ば、個々のput/getの終了時にハンドリング関数
を呼び出すことができる。また、カウンタの上限値とi
ncrで指定する値を適宜変更することで、複数回のp
ut/getが終了した時点でハンドリング関数をコー
ルすることも可能である。
Post_handler (id, handler) id is the identifier of the window that is the call target of the handling function, and handler is a pointer to the handling function. The handling function itself can be freely described by the user. If the upper limit value of the counter is designated as 1 and the argument incr of put / get is also designated as 1, the handling function can be called at the end of each put / get. In addition, the upper limit value of the counter and i
By changing the value specified by ncr as appropriate, p
It is also possible to call the handling function when ut / get ends.

【0019】以上が、MPIを用いた場合の利用者プロ
グラムからのput/get操作方法の説明である。
The above is a description of the put / get operation method from the user program when MPI is used.

【0020】[0020]

【発明が解決しようとする課題】上述のようにput/
get方式は潜在的にデータを破壊する可能性のある危
険な通信方式であるにもかかわらず、MPIを含む従来
のメッセージパシングライブラリでは2つ以上のPUが
同一のメモリ領域に読み書きを行なった場合に対する考
慮がなされていなかった。また、put/get操作に
よるデータの予期しない破壊が起こった場合に、利用者
からこれを検出する手段が設けられていなかった。
As described above, put /
Although the get method is a dangerous communication method that may potentially destroy data, two or more PUs read from and write to the same memory area in the conventional message passing library including MPI. No consideration was given to the case. Further, when the data is unexpectedly destroyed by the put / get operation, the user has no means for detecting it.

【0021】本発明の目的は、分散メモリ型並列計算機
のメッセージパシングライブラリにおいて、利用者がp
ut/get操作による同一メモリ領域へのメッセージ
の重複した書き込みを防止することと、同一メモリ領域
への重複した書き込みがあった場合にこれを検出するこ
とを可能とし、put/get方式による通信の安全性
を高めることにある。
An object of the present invention is to provide a message passing library for a distributed memory parallel computer in which
It is possible to prevent duplicate writing of messages to the same memory area by ut / get operation, and to detect when there is duplicate writing to the same memory area. It is to improve safety.

【0022】[0022]

【課題を解決するための手段】本発明は、put/ge
t方式による送受信おいて、複数のPUからの同一メモ
リ領域へのput/getの発行によるデータの上書き
や誤ったデータの読み出しを防ぐために、各PU上でp
ut/get用に確保したメモリ領域に対して書き込
み、読み出し禁止フラグを設け、そのフラグを利用者プ
ログラムから制御可能とすることにより、利用者が当該
メモリ領域への他PUからの書き込み、読み出しを禁止
するようにすることによって達成される。
The present invention is a put / ge
In transmission and reception by the t method, p is set on each PU in order to prevent data overwriting and erroneous data reading by issuing put / get from multiple PUs to the same memory area.
By providing a write / read prohibition flag to the memory area secured for ut / get and allowing the flag to be controlled by the user program, the user can write / read to / from the other PU in the memory area. Achieved by trying to ban.

【0023】また、同一メモリ領域への重複した書き込
み、読み出しを利用者が検出できるようにするために、
書き込み、読み出し禁止フラグの立ったメモリ領域への
put/getの発行を利用者に通知するようにするこ
とによって達成される。
In order to allow the user to detect duplicate writing and reading in the same memory area,
This is achieved by notifying the user of the issue of put / get to the memory area in which the write / read prohibition flag is set.

【0024】[0024]

【発明の実施の形態】以下、図を参照して本発明の詳細
を説明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS The details of the present invention will be described below with reference to the drawings.

【0025】まず、本発明の実装方法の具体例を図を参
照して説明する。図1に本発明の全体構成図を示す。1
01,102はPUを示し、103,104はそれらの
CPU、105,106はメモリである。107はそれ
らPUを結ぶ通信路である。PUの数は実際には任意で
あるが、ここでは説明のために2つのPUからなる並列
機を示している。108,109は各PUのOS(オペ
レーティングシステム)である。利用者プログラムを実
行する際には、各PUのメモリ上にプログラムがローデ
ィングされる(110,111)。利用者プログラム
は、あらかじめ本発明のメッセージパシングライブラリ
(114,115)とリンクされている。利用者プログ
ラム中には、他のPUからリモートメモリ転送により読
み書きが可能なメモリ領域(122,123)を設ける
ことができる。さらに、並列プログラムの実行開始と同
時に、put/getデーモンプロセス(112,11
3)が各PUごとに起動される。メッセージパシングラ
イブラリ中には、put/getデーモンからの割り込
み要求によって起動される特別なルーチン(割り込みハ
ンドラ)120,121およびput/get用のメモ
リ領域の管理情報を格納するウィンドウ情報テーブル
(124,125)が設けられる。割り込みハンドラ中
には、put要求にたいする割り込みを処理するput
ハンドラと、get要求に対する割り込みを処理するg
etハンドラが存在する。
First, a specific example of the mounting method of the present invention will be described with reference to the drawings. FIG. 1 shows an overall configuration diagram of the present invention. 1
Reference numerals 01 and 102 denote PUs, 103 and 104 are their CPUs, and 105 and 106 are memories. 107 is a communication path connecting these PUs. The number of PUs is actually arbitrary, but a parallel machine composed of two PUs is shown here for the sake of explanation. Reference numerals 108 and 109 denote the OS (operating system) of each PU. When executing the user program, the program is loaded on the memory of each PU (110, 111). The user program is linked with the message passing library (114, 115) of the present invention in advance. In the user program, it is possible to provide a memory area (122, 123) that can be read and written by another PU by remote memory transfer. Further, at the same time when the execution of the parallel program is started, the put / get daemon process (112, 11
3) is activated for each PU. In the message passing library, special routines (interrupt handlers) 120 and 121 activated by an interrupt request from the put / get daemon, and a window information table (124, 124) storing management information of a put / get memory area. 125) is provided. In the interrupt handler, the put that handles the interrupt for the put request
Handler and g that handles interrupts for get requests
There is an et handler.

【0026】以上の構成要素のうち、メッセージパシン
グライブラリとput/getデーモンとが本発明の特
徴をなす構成要素である。以下、これら2つの構成要素
について詳細に説明する。
Of the above components, the message passing library and the put / get daemon are the components that characterize the present invention. Hereinafter, these two components will be described in detail.

【0027】(メッセージパシングライブラリのインタ
ーフェイス)本発明におけるメッセージパシングライブ
ラリ(114,115)について説明する。メッセージ
パシングライブラリは利用者の並列プログラムからコー
ルすることにより、put/getデーモンプロセスを
介してメッセージパシングを実行するための関数群であ
る。
(Interface of Message Passing Library) The message passing library (114, 115) in the present invention will be described. The message passing library is a group of functions for executing message passing through the put / get daemon process by calling from the parallel program of the user.

【0028】以下に、メッセージパシングライブラリの
関数インターフェイスを説明する。本実施例では上述の
MPI−2の仕様を基本とし、それに必要な変更を加え
ることによって関数インターフェイスを構築する。実際
には関数名称、引き数名称などは任意であり、必ずしも
ここで説明する仕様と同じである必要はない。
The function interface of the message passing library will be described below. In the present embodiment, the function interface is constructed based on the above-mentioned MPI-2 specifications and by making necessary changes. Actually, the function name, the argument name, etc. are arbitrary and do not necessarily have the same specifications as those described here.

【0029】(1)Init() 本関数のインターフェイスは上述のMPIと同様であ
る。
(1) Init () The interface of this function is the same as that of MPI described above.

【0030】(2)RMC_Malloc(base,
size, counter, counter_s
uccess, id) 自PU上にput/getウィンドウを確保する関数で
ある。引き数base, size, counte
r, idの意味は、従来の技術の項で述べたMPIの
場合と同様である。counter_successは
本発明にて新たに設けられたカウンタであり、利用法は
後述する。
(2) RMC_Malloc (base,
size, counter, counter_s
access, id) A function that secures a put / get window on its own PU. Arguments base, size, count
The meanings of r and id are the same as in the case of MPI described in the section of the related art. The counter_success is a counter newly provided in the present invention, and its usage will be described later.

【0031】(3)Get(origin_addr,
origin_size, target_ran
k, id, incr) 本関数インターフェイスと引き数の意味は上述のMPI
の場合と同様である。
(3) Get (origin_addr,
origin_size, target_ran
k, id, incr) This function interface and the meanings of the arguments are the same as the above MPI.
Is the same as

【0032】(4)Put(origin_addr,
origin_size, target_ran
k, id, incr) 本関数インターフェイスと引き数の意味は上述のMPI
の場合と同様である。
(4) Put (origin_addr,
origin_size, target_ran
k, id, incr) This function interface and the meanings of the arguments are the same as the above MPI.
Is the same as

【0033】(5)Set_counter_thre
shold(id, count) 本関数インターフェイスと引き数の意味は上述のMPI
の場合と同様である。
(5) Set_counter_thre
hold (id, count) This function interface and the meaning of the arguments are the same as the above MPI.
Is the same as

【0034】(6)Post_handler(id,
count) 本関数インターフェイスと引き数の意味は上述のMPI
の場合と同様である。
(6) Post_handler (id,
(count) This function interface and the meaning of the arguments are as described above
Is the same as

【0035】(7)Window_lock(id) 本関数と次のWindow_unlock関数は本発明
に特徴的なものである。本関数が利用者プログラムから
呼び出されると、引き数idで指定されたウィンドウ識
別子に対応するウィンドウをput/get禁止とす
る。本操作をウィンドウのロックと呼ぶ。このウィンド
ウを対象とするput/get操作は、同じウィンドウ
に対して次のWindow_unlock関数がコール
されるまで行なうことができない。ロックされたウィン
ドウに対してput操作を行なった場合には、そのメッ
セージは破棄される。ロックされたウィンドウにたいし
てget操作を行なった場合には、メッセージは読みだ
されず、get関数の戻り値としてエラーコードが返さ
れる。
(7) Window_lock (id) This function and the following Window_unlock function are characteristic of the present invention. When this function is called from the user program, put / get is prohibited for the window corresponding to the window identifier specified by the argument id. This operation is called window locking. The put / get operation for this window cannot be performed until the next Window_unlock function is called for the same window. When a put operation is performed on the locked window, the message is discarded. When the get operation is performed on the locked window, the message is not read and an error code is returned as the return value of the get function.

【0036】 (8)Window_unlock(id) 本関数は、idで指定されたウィンドウ識別子に対する
ウィンドウのput/get禁止を解除する。本操作を
ウィンドウのアンロックと呼ぶ。
(8) Window_unlock (id) This function cancels the put / get prohibition of the window for the window identifier designated by id. This operation is called unlocking the window.

【0037】(メッセージパシングライブラリの動作)
以下、本発明のリモートメモリへのデータ転送制御方式
における上記各関数の実現方法を示す。
(Operation of message passing library)
Hereinafter, a method of realizing each of the above functions in the remote memory data transfer control method of the present invention will be described.

【0038】(1)Initの動作 メッセージパシングライブラリの初期化関数は、利用者
プログラムからコールされると、図2に示すウィンドウ
情報テーブルをライブラリのメモリ領域(図1の10
5,106)上に作成する。ウィンドウ情報テーブル
は、ウィンドウ識別子のカラム、ウィンドウ開始アドレ
スのカラム、ウィンドウ末尾アドレスのカラム、カウン
タ値のカラム、成功カウンタ値のカラム、カウンタの上
限値のカラムおよびウィンドウのロック状態を示すフラ
グ(一般的にこの情報を保持できるものであればよい)
のフィールドを有する。ついで、生成されたテーブルの
各カラムを初期化する。初期値には、カウンタ上限値の
カラムのみ1、他のすべてのカラムは0を用いる。上述
のように利用者は初期化関数を全PUから呼び出すの
で、ウィンドウ情報テーブルも全PU上に作成される。
(1) Operation of Init When the initialization function of the message passing library is called from the user program, the window information table shown in FIG. 2 is displayed in the memory area of the library (10 in FIG. 1).
5, 106). The window information table includes a window identifier column, a window start address column, a window end address column, a counter value column, a successful counter value column, a counter upper limit value column, and a flag indicating a window lock state (general Anything that can hold this information in)
Field. Then, each column of the generated table is initialized. As the initial value, 1 is used only for the counter upper limit value column and 0 is used for all other columns. Since the user calls the initialization function from all PUs as described above, the window information table is also created on all PUs.

【0039】(2)Rmc_malloc関数の動作 ウィンドウ生成関数Rmc_mallocがコールされ
た場合の動作を図3に示す。まず、関数の引き数として
与えられたウィンドウの先頭アドレスbuffと長さs
izeを用いてウィンドウ用メモリを確保する(30
1)。ウィンドウ情報テーブルのidのカラムをスキャ
ンし、idが0(初期値)であるカラムを見つける(3
02)。そのカラムの行番号をウィンドウの識別子とし
て採用し、対応するカラムに格納する(303)。次い
で、ウィンドウの先頭アドレスのカラムにbuffで与
えられたアドレスを格納し、ウィンドウ末尾アドレスに
buff+sizeの値を格納する(304,30
5)。
(2) Operation of Rmc_malloc Function FIG. 3 shows the operation when the window generation function Rmc_malloc is called. First, the start address buff and the length s of the window given as the arguments of the function
Secure window memory using size (30
1). Scan the id column of the window information table and find the column whose id is 0 (initial value) (3
02). The line number of that column is adopted as the window identifier and stored in the corresponding column (303). Next, the address given by buff is stored in the column of the head address of the window, and the value of buff + size is stored in the window end address (304, 30).
5).

【0040】カウンタ値、カウンタ最大値、ロック状態
フラグは初期値のまま変化させない。
The counter value, the maximum counter value, and the lock state flag remain unchanged as initial values.

【0041】(3)Put関数の動作 次に、Put関数がコールされた場合の動作を説明す
る。図4に処理の流れを示す。まず、相手PU上のpu
t/getデーモンに対し、put要求が出されたこと
を通知する短いメッセージ(put要求)を送り、次い
で関数の引き数として与えられた送信先ウィンドウの識
別子とインクリメント値を、同じく引き数target
_rank中で指定された相手PU上のput/get
デーモンに送信する(401)。(put/getデー
モンの動作は後述する。)この送信は、通常のsend
関数を用いて行なう。送信後、同デーモンからの認識信
号(ack)を待ち、ブロックする(402)。ack
が到着したならば、同デーモンに対して、引き数のor
igin_addrおよびorigin_sizeで示
される送信バッファの内容を送信する(403)。この
送信もsend関数によって行なう。送信バッファの内
容がすべて送出されたならば、利用者プログラムへリタ
ーンする。
(3) Operation of Put Function Next, the operation when the Put function is called will be described. FIG. 4 shows the flow of processing. First, pu on the partner PU
A short message (put request) is sent to the t / get daemon to notify that a put request has been issued. Then, the identifier of the destination window and the increment value given as the arguments of the function are also used as the argument target.
Put / get on the partner PU specified in _rank
Send to the daemon (401). (The operation of the put / get daemon will be described later.) This transmission is a normal send.
Use a function. After the transmission, it waits for the recognition signal (ack) from the daemon and blocks (402). ack
If is received, the or
The contents of the transmission buffer indicated by igin_addr and origin_size are transmitted (403). This transmission is also performed by the send function. When all the contents of the send buffer have been sent, return to the user program.

【0042】(4)Get関数の動作 同様に、Get関数がコールされた場合の動作を図5を
用いて説明する。まず、まず、相手PU上のput/g
etデーモンに対し、put要求が出されたことを通知
する短いメッセージ(get要求)を送り、次いで関数
の引き数として与えられた送信先ウィンドウの識別子と
インクリメント値を、同じく引き数target_ra
nk中で指定された相手PU上のput/getデーモ
ンに送信する(501)。この送信は、通常のsend
関数を用いて行なう。送信後、同デーモンを対象として
receive関数を発行しデータの到着を待つ。受け
取ったメッセージは、引き数のorigin_addr
およびorigin_sizeで指定された受信バッフ
ァに格納する(502)。受信バッファへ内容がすべて
格納されたならば、利用者プログラムへリターンする。
(4) Operation of Get Function Similarly, the operation when the Get function is called will be described with reference to FIG. First of all, put / g on the other party's PU
A short message (get request) is sent to the et daemon to notify that a put request has been issued, and then the identifier of the destination window and the increment value given as the arguments of the function are also used as the argument target_ra.
It is transmitted to the put / get daemon on the partner PU designated in nk (501). This transmission is a normal send
Use a function. After the transmission, the receive function is issued to the daemon to wait for the arrival of data. The received message is the argument origin_addr
And store in the receive buffer specified by origin_size (502). When all the contents are stored in the receive buffer, return to the user program.

【0043】(5)Set_counter_thre
shold関数の動作 本関数がコールされると、自PUのウィンドウ情報テー
ブル(図2)から引き数で指定された識別子を持つ行を
サーチし、その行のカウンタ上限値のカラムに引き数で
指定されたカウンタ上限値を格納する。
(5) Set_counter_thre
Operation of the hold function When this function is called, it searches the window information table of its own PU (Fig. 2) for the row with the identifier specified by the argument, and specifies it in the column of the counter upper limit value of that row by the argument. Stores the counter upper limit value.

【0044】(6)Post_hander関数の動作 本関数がコールされると、自PUのウィンドウ情報テー
ブル(図2)から引き数で指定された識別子を持つ行を
サーチし、その行のハンドラのカラムに引き数で指定さ
れたハンドリング関数のポインタを格納する。
(6) Operation of Post_hander function When this function is called, the window having the identifier specified by the argument is searched from the window information table of its own PU (FIG. 2) and the handler column of that row is searched. Stores the pointer of the handling function specified by the argument.

【0045】(7)Window_lock関数の動作 本関数がコールされると、自PUのウィンドウ情報テー
ブル(図2)から引き数で指定された識別子を持つ行を
サーチし、その行のロック状態フラグ(書き込み、読み
出し禁止フラグ)をonにする。
(7) Operation of Window_lock Function When this function is called, the window having the identifier specified by the argument is searched from the window information table of the own PU (FIG. 2), and the lock status flag ( The write / read prohibition flag) is turned on.

【0046】(8)Window_unlock関数の
動作 本関数がコールされると、自PUのウィンドウ情報テー
ブル(図2)から引き数で指定された識別子を持つ行を
サーチし、その行のロック状態フラグ(書き込み、読み
出し禁止フラグ)をoffにする。
(8) Operation of the window_unlock function When this function is called, the window having the identifier specified by the argument is searched from the window information table of its own PU (FIG. 2), and the lock state flag ( The write / read prohibition flag) is turned off.

【0047】以上が本発明のリモートメモリ転送制御方
式における各関数の実現方法の例である。
The above is an example of the method of realizing each function in the remote memory transfer control system of the present invention.

【0048】(9)putハンドラの動作 メッセージパシングライブラリ中には、利用者からコー
ルされる上記の関数群以外に、put/getデーモン
プロセスからの割り込みによって起動されるput/g
etハンドラが存在する。このうちputハンドラの動
作を図7を参照して説明する。割り込みを受け付ける
と、put/getデーモンプロセスからの受信待ち状
態に移行し、ウィンドウ識別子とカウンタのインクリメ
ント値を受け取る(701)。識別子を受け取ると、そ
れを用いて自PU上のウィンドウ情報テーブル(図2)
をサーチし、対応するカウンタを受け取ったインクリメ
ント値にしたがってインクリメントする。また、ロック
フラグのカラムを調べて当該ウィンドウがロック状態に
あるか否かを調べる(704)。ロックされていない場
合には、put/getデーモンプロセスにackを返
し(702)、続いてput/getデーモンプロセス
から送信されてくるメッセージ本体を受け取り、ウィン
ドウに格納する(703)。また、対応する成功カウン
タの値をインクリメント値にしたがってインクリメント
する(706)。ロックされていた場合にはput/g
etデーモンプロセスにnackを返す(705)。最
後にカウンタ値とカウンタ上限値とを比較し、カウンタ
値が等しいか大きくなっていればカウンタをクリアして
対応する利用者定義のハンドラに制御を移す(70
7)。 (10)getハンドラの動作 getハンドラの動作を図8を参照して説明する。割り
込みを受け付けると、put/getデーモンプロセス
からの受信待ち状態に移行し、ウィンドウ識別子を受け
取る(801)。識別子を受け取ると、それを用いて自
PU上のウィンドウ情報テーブル(図2)をサーチし、
ロックフラグのカラムを調べて当該ウィンドウがロック
状態にあるか否かを調べる(804)。ロックされてい
ない場合には、put/getデーモンプロセスにac
kを返し(802)、続いてウィンドウに格納されてい
るメッセージ本体をput/getデーモンプロセスに
送信する(803)。ロックされていた場合にはput
/getデーモンプロセスにnackを返す(80
5)。最後にカウンタ値とカウンタ上限値とを比較し、
カウンタ値が等しいか大きくなっていればカウンタをク
リアして対応する利用者定義のハンドラに制御を移す
(807)。
(9) Operation of put handler In the message passing library, in addition to the above-mentioned function group called by the user, put / g activated by interruption from the put / get daemon process
There is an et handler. The operation of the put handler will be described with reference to FIG. When the interrupt is accepted, the process shifts to a reception waiting state from the put / get daemon process, and the window identifier and the increment value of the counter are received (701). When it receives an identifier, it uses it to display the window information table on its own PU (Fig. 2)
Is searched and the corresponding counter is incremented according to the increment value received. Also, the column of the lock flag is checked to see if the window is in the locked state (704). If it is not locked, ack is returned to the put / get daemon process (702), then the message body sent from the put / get daemon process is received and stored in the window (703). Further, the value of the corresponding success counter is incremented according to the increment value (706). Put / g if locked
A nack is returned to the et daemon process (705). Finally, the counter value is compared with the counter upper limit value, and if the counter values are equal or larger, the counter is cleared and control is transferred to the corresponding user-defined handler (70
7). (10) Operation of get handler The operation of the get handler will be described with reference to FIG. When the interrupt is accepted, the process shifts to a wait state for receiving from the put / get daemon process and receives the window identifier (801). When it receives the identifier, it searches the window information table (FIG. 2) on its own PU,
The column of the lock flag is checked to see if the window is in the locked state (804). If it is not locked, ac to the put / get daemon process
k is returned (802), and then the message body stored in the window is transmitted to the put / get daemon process (803). Put if locked
/ Nack is returned to the daemon process (80
5). Finally, compare the counter value with the counter upper limit value,
If the counter values are equal or larger, the counter is cleared and control is transferred to the corresponding user-defined handler (807).

【0049】(11)ロックされているウィンドウに対
するput/getの検出 本発明では、何等かの原因でロックされているウィンド
ウにメッセージがput/getされた場合、これを次
のようにして検出することができる。
(11) Detection of put / get for locked window In the present invention, when a message is put / get in a locked window for some reason, it is detected as follows. be able to.

【0050】get関数に対しては、get先のget
ハンドラからnackが返された場合、put/get
デーモンプロセスはget関数発行元にたいしてエラー
コードを返す(619)。したがって、利用者はget
関数のリターン値がエラーコードであった場合には、ロ
ックされたウィンドウに対してgetが発行されたこと
を検知できる。
For the get function, the get of the get destination
When the handler returns nack, put / get
The daemon process returns an error code to the issuer of the get function (619). Therefore, the user can get
When the return value of the function is an error code, it can be detected that get is issued to the locked window.

【0051】put関数は、相手PUに対してメッセー
ジを送信した後直ちにリターンするので、リターンコー
ドによってロックされたウィンドウに書き込みを行なお
うとしたことを検出できない。しかし、putハンドラ
はputが成功した場合には成功カウンタとカウンタの
双方をインクリメントするのに対して、putが成功し
なかった場合には成功カウンタをインクリメントしな
い。したがって、利用者はput関数の完了ハンドリン
グ関数中で両者の値を比較することにより、ロックした
ウィンドウへのputが行われたことを検知できる。す
なわち、ロックされたウィンドウへputが行われた場
合には、成功カウンタの値がカウンタの値よりも小さく
なっているはずである。
Since the put function returns immediately after sending a message to the partner PU, it cannot detect an attempt to write to the window locked by the return code. However, the put handler increments both the success counter and the counter if the put succeeds, but does not increment the success counter if the put does not succeed. Therefore, the user can detect that the locked window is put by comparing the two values in the completion handling function of the put function. That is, when put is performed on the locked window, the value of the success counter should be smaller than the value of the counter.

【0052】(put/getデーモンの実現方法)次
に、本発明のリモートメモリ転送方式におけるput/
getデーモンの実現方法の例を図6を参照して説明す
る。
(Put / get Daemon Implementation Method) Next, put / get in the remote memory transfer system of the present invention will be described.
An example of a method for implementing the get daemon will be described with reference to FIG.

【0053】put/getデーモンは通常はいずれか
のPUのユーザプログラムからのput/get要求待
ちでブロック状態にある(601)。put/get関
数コールによりput/get要求を受信すると、それ
がput要求であるかget要求であるかによって分岐
し(602)、各々に対応する処理に入る。put要求
であった場合には、まず送信されてくるウィンドウ識別
子とインクリメント値を読み込んで記憶し(603)、
put要求元プログラムにackを返す(604)。次
いで、put要求元から送信されてくるメッセージ本体
を受信して記憶し(605)、メッセージをすべて受診
すると自PU上の利用者プログラムにたいして割り込み
を発生する(606)。(この割り込みによって利用者
プログラム側ではputハンドラがコールされ、受信待
ち状態となる。)デーモンは利用者プログラムに対し
て、603にて記憶したウィンドウ識別子を送信し、肯
定応答(ack)または否定応答(nack)を待って
処理を分岐する(610)。ackを受け取った場合に
は、当該ウィンドウはロック状態にはないので、605
にて記憶したメッセージ本体を利用者プログラムに送信
して処理を終了する。nackを受け取った場合には、
当該ウィンドウはロックされているので、メッセージを
破棄して処理を終了する。一方602にてget要求へ
分岐した場合には、要求元PUからウィンドウ識別子を
受け取り(612)、自PU上の利用者プログラムに割
り込みをかける(613)。(この割り込みによって利
用者プログラム側ではgetハンドラがコールされ、受
信待ち状態となる。)デーモンは利用者プログラムに対
して、612にて記憶したウィンドウ識別子を送信し、
肯定応答(ack)または否定応答(nack)を待っ
て処理を分岐する(618)。ackを受け取った場合
には、当該ウィンドウはロック状態にはないので、利用
者プログラムのget処理ハンドリング関数よりメッセ
ージが送られてくる。これを記憶し、get要求元に送
信して処理を終了する(616,617)。nackを
受け取った場合には、当該ウィンドウはロックされてお
りメッセージは送られてこないので、get要求元にエ
ラーコードを返す(619)。
The put / get daemon is normally in a blocked state waiting for a put / get request from a user program of any PU (601). When a put / get request is received by a put / get function call, it branches depending on whether it is a put request or a get request (602), and the processing corresponding to each is started. If it is a put request, first, the window identifier and increment value transmitted are read and stored (603),
ack is returned to the put request source program (604). Next, the message body transmitted from the put request source is received and stored (605), and when all the messages are received, an interrupt is generated to the user program on the own PU (606). (This interrupt calls the put handler on the user program side, and waits for reception.) The daemon sends the window identifier stored in 603 to the user program, and sends an affirmative response (ack) or negative response. The process branches after waiting for (nack) (610). When ack is received, the window is not locked, so 605
The message body stored in step 1 is transmitted to the user program, and the process ends. If you receive a nack,
Since the window is locked, the message is discarded and the processing ends. On the other hand, when the process branches to the get request at 602, the window identifier is received from the requesting PU (612), and the user program on the own PU is interrupted (613). (This interrupt calls the get handler on the side of the user program and waits for reception.) The daemon sends the window identifier stored at 612 to the user program,
The process branches after waiting for an affirmative response (ack) or a negative response (nack) (618). When ack is received, the window is not in the locked state, so a message is sent from the get processing handling function of the user program. This is stored, transmitted to the get request source, and the processing ends (616, 617). When the "nack" is received, the window is locked and the message is not sent, so an error code is returned to the get request source (619).

【0054】以上がput/getデーモンの実現方法
の例である。
The above is an example of the method for implementing the put / get daemon.

【0055】[0055]

【発明の効果】本発明のリモートメモリ転送制御方式に
よれば、メッセージパシングライブラリを用いたput
/get方式のメッセージ通信において、put/ge
t用のメモリ領域を利用者プログラム中からロック、ア
ンロックすることが可能となる。これによって利用者は
put/get用のメモリ領域に複数のPUからのデー
タが上書きされたり、不正なデータが読みだされたりす
ることを防止することができ、put/get方式によ
るメッセージ通信をより安全に行なうことができるよう
になる。
According to the remote memory transfer control method of the present invention, a put using a message passing library is put.
In message communication of the / get system, put / ge
The memory area for t can be locked and unlocked from within the user program. As a result, the user can prevent data from multiple PUs from being overwritten in the put / get memory area, and illegal data can be read out, and message communication by the put / get method can be further improved. You can do it safely.

【0056】また、本発明のリモートメモリ転送制御方
式によれば、何等かの原因でロックされたメモリ領域に
たいして誤ったput/getがなされた場合に、これ
を検出することができる。これによって利用者は、適当
なエラーリカバリをプログラム中に組み込むことが可能
となり、put/get方式を用いて信頼性の高いプロ
グラムを作成することができる。
Further, according to the remote memory transfer control method of the present invention, when an erroneous put / get is made to the locked memory area for some reason, this can be detected. As a result, the user can incorporate an appropriate error recovery into the program, and can create a highly reliable program using the put / get method.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の実施例の全体構成図。FIG. 1 is an overall configuration diagram of an embodiment of the present invention.

【図2】ウィンドウ情報テーブルの説明図。FIG. 2 is an explanatory diagram of a window information table.

【図3】ウィンドウ生成関数の動作説明図。FIG. 3 is an operation explanatory diagram of a window generation function.

【図4】put関数の動作説明図。FIG. 4 is an operation explanatory diagram of a put function.

【図5】get関数の動作説明図。FIG. 5 is an operation explanatory diagram of a get function.

【図6】put/getデーモンプロセスの動作説明
図。
FIG. 6 is an operation explanatory diagram of a put / get daemon process.

【図7】putハンドラの動作説明図。FIG. 7 is an operation explanatory diagram of a put handler.

【図8】getハンドラの動作説明図。FIG. 8 is an operation explanatory diagram of a get handler.

【符号の説明】[Explanation of symbols]

101,102...要素計算機 103,104...CPU 105,106...メモリ 107...通信路 108,109...オペレーティングシステム 110,111...利用者プログラム 112,113...put/getデーモンプロセス 114,115...メッセージパシングライブラリ 120,121...put/get割り込みハンドラ 122,123...put/get用ウィンドウ。 101, 102. . . Element calculator 103, 104. . . CPU 105, 106. . . Memory 107. . . Communication paths 108, 109. . . Operating system 110, 111. . . User program 112, 113. . . put / get daemon process 114, 115. . . Message passing library 120, 121. . . put / get interrupt handler 122, 123. . . A window for put / get.

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】複数台の計算機を通信路によって結合して
なり、該計算機がデータ転送先の計算機のメモリ領域を
指定してデータ転送を行う並列計算機におけるデータ転
送制御方法であって、 各々の計算上で、他の計算機上で実行されているプログ
ラムからデータの読み出し、書き込みを行なうことので
きるメモリ領域を、自計算機上で実行されているプログ
ラムから任意個数指定し、 該指定された複数のメモリ領域の各々について、他の計
算機上で実行されているプログラムからのデータの読み
出しおよび書き込みが禁止されていることを示す情報を
保持し、自計算機上で実行されているプログラムから該
情報を制御することにより、該メモリ領域へのデータの
読みだしおよび書き込みを禁止することを特徴とする並
列計算機におけるデータ転送制御方法。
1. A data transfer control method in a parallel computer, comprising a plurality of computers connected by a communication path, wherein the computers specify a memory area of a data transfer destination computer to transfer data. In the calculation, an arbitrary number of memory areas in which data can be read and written from a program executed on another computer are specified from the program executed on the own computer, and a plurality of the specified plurality of specified memory areas are specified. For each of the memory areas, hold information indicating that reading and writing of data from a program running on another computer is prohibited, and control the information from the program running on its own computer. By prohibiting reading and writing of data in the memory area, the data in the parallel computer is characterized by Transfer control method.
【請求項2】該指定された複数のメモリ領域のうち、他
の計算機上で実行されているプログラムからのデータの
読み出しおよび書き込みを禁止された該メモリ領域に対
し、他の計算機で実行されているプログラムからデータ
の読み出しが要求された場合、該他の計算機上のプログ
ラムに対しエラーを通知することを特徴とする請求項1
記載の並列計算機におけるデータ転送制御方法。
2. Among the designated plurality of memory areas, a memory area for which reading and writing of data from a program executed on another computer is prohibited is executed by another computer. The error is notified to the program on the other computer when the reading of the data is requested by the existing program.
A data transfer control method in the described parallel computer.
【請求項3】該指定された複数のメモリ領域のうち、他
の計算機上で実行されているプログラムからのデータの
読み出しおよび書き込みを禁止された該メモリ領域に対
し、他の計算機上で実行されているプログラムからデー
タの書き込みが要求された場合、該データを破棄し、 該データを破棄した計算機において、該データの破棄
を、該計算機上で実行されているプログラムに対して通
知することを特徴とする請求項1記載の並列計算機にお
けるデータ転送制御方法。
3. A memory area, of the specified plurality of memory areas, for which the reading and writing of data from a program executed on another computer is prohibited, is executed on another computer. When the writing of data is requested by the program, the computer discarding the data notifies the program executing on the computer of the discarding of the data. A data transfer control method in a parallel computer according to claim 1.
JP7307111A 1995-11-27 1995-11-27 Data transfer control method for parallel computer Pending JPH09146903A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7307111A JPH09146903A (en) 1995-11-27 1995-11-27 Data transfer control method for parallel computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7307111A JPH09146903A (en) 1995-11-27 1995-11-27 Data transfer control method for parallel computer

Publications (1)

Publication Number Publication Date
JPH09146903A true JPH09146903A (en) 1997-06-06

Family

ID=17965172

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7307111A Pending JPH09146903A (en) 1995-11-27 1995-11-27 Data transfer control method for parallel computer

Country Status (1)

Country Link
JP (1) JPH09146903A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351798B1 (en) 1998-06-15 2002-02-26 Nec Corporation Address resolution unit and address resolution method for a multiprocessor system
WO2006004196A1 (en) * 2004-07-02 2006-01-12 Nec Corporation Multi-processor system and memory access processing method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351798B1 (en) 1998-06-15 2002-02-26 Nec Corporation Address resolution unit and address resolution method for a multiprocessor system
WO2006004196A1 (en) * 2004-07-02 2006-01-12 Nec Corporation Multi-processor system and memory access processing method
US7664900B2 (en) 2004-07-02 2010-02-16 Nec Corporation Multiprocessor system and method for processing memory access

Similar Documents

Publication Publication Date Title
US6161198A (en) System for providing transaction indivisibility in a transaction processing system upon recovery from a host processor failure by monitoring source message sequencing
US5423044A (en) Shared, distributed lock manager for loosely coupled processing systems
US6446153B2 (en) Shared embedded microcontroller interface
US6633925B2 (en) Operating system for generating overlapped input-output requests to a device in a disk array storage
US7870296B2 (en) High availability system and execution state control method
EP0563623B1 (en) Communicating messages between processors and a coupling facility
US5317739A (en) Method and apparatus for coupling data processing systems
US5802280A (en) Security apparatus and method
US6735636B1 (en) Device, system, and method of intelligently splitting information in an I/O system
US5392397A (en) Command execution system for using first and second commands to reserve and store second command related status information in memory portion respectively
US20020004810A1 (en) System and method for synchronizing disparate processing modes and for controlling access to shared resources
US7797292B2 (en) Apparatus, system, and method for an alternate lock facility connection path
US5339405A (en) Command quiesce function
US6081664A (en) Method for monitoring a BIOS
JPH06161932A (en) Apparatus and method for control of input/output
JPH07311660A (en) Data processing method of software control system for early detection of fault
US7080128B2 (en) Inter-processor communication method using a disk cache in a network storage system
US6986009B1 (en) Intercepting control of a host I/O process
US20020161816A1 (en) Clean thread termination
KR0182632B1 (en) Client server system performing automatic reconnection and control method thereof
US5343480A (en) System for detecting loss of message
JPH09146903A (en) Data transfer control method for parallel computer
WO2001016741A2 (en) Semaphore control of shared-memory
JPH04291660A (en) Inter-processor communication method and its parallel processor
JP3407358B2 (en) Assurance of completion of asynchronous communication in barrier synchronization