JPS62114032A - 処理分割制御方式 - Google Patents

処理分割制御方式

Info

Publication number
JPS62114032A
JPS62114032A JP60255420A JP25542085A JPS62114032A JP S62114032 A JPS62114032 A JP S62114032A JP 60255420 A JP60255420 A JP 60255420A JP 25542085 A JP25542085 A JP 25542085A JP S62114032 A JPS62114032 A JP S62114032A
Authority
JP
Japan
Prior art keywords
processing
state
pointer
division
stack
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
JP60255420A
Other languages
English (en)
Inventor
Koichi Kumon
耕一 久門
Akihiro Itashiki
板敷 晃弘
Hideho Masuzawa
増沢 秀穂
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP60255420A priority Critical patent/JPS62114032A/ja
Publication of JPS62114032A publication Critical patent/JPS62114032A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔目 次〕 概要 産業上の利用分野 従来の技術 発明が解決しようとする問題点 問題点を解決するための手段 作用 実施例 プログラム実行部(第1図) 処理例(第2図) 発明の効果 〔概 要〕 PIiOI、OG等の非決定性プログラムの並列処理の
ための処理分割の制御方式である。未済の処理の情報を
スタックするゴールスタックから他の処理装置に処理を
分割するシステムで、ゴールスタック上で検索を開始す
べき項を指示するアドレスをポインタ部に保持し、ポイ
ンタ部で未済の処理の情報を持つ項を指示している状態
、分割する処理が無いことが検出されている状態、及び
何れとも不明の状態のうちの1状態を状態部に保持し、
分割を要する場合に、状態部を参照して検索の要否を決
定することにより、無駄な検索を除いて、処理□効率を
改善する。
〔産業上の利用分野〕
本発明はいわゆる非決定性プログラムの処理に係り、特
に該処理を複数の処理装置で並列処理するための処理分
割の制御方式に関する。
人工知能の研究分野等において、例えばPROl、OG
とよばれるような非決定性プログラミング言語が使用さ
れる。
よく知られているように、PROI、OGで記述される
プログラムは、ルールとよばれるデータの集まりで構成
され、質問データをルールと照合して、所定の関係を満
足するという意味で質問にマツチするルールを検索し、
マツチするルールによって、次の質問データを構成する
という処理の反復によって、プログラム実行が進行する
このような処理を、次々に構成される質問について進め
、各質問データを構成する処理において、変数の値が逐
次確定するというような過程を経て、最後に次の質問が
空になったときに、例えば所要の変数が持つ値によって
解が求まる。
■の質問にマツチするルールは一般に複数存在し得るの
で、PROLOGプログラムの実行の全体は、そのよう
な複数のルールがある処理ステップで分枝を有する探索
木を構成し、一般に、1の質問入力について複数組の解
が存在し得る。
従って、複数の処理装置の並列処理によって、複数組の
解の探索を並行に進めることは特に有用である。
〔従来の技術〕
+1 ROL OGプログラムは、ルールの集まりとし
て構成され、各ルールは下記の形式を有する。
ヘッドニーボディ こ\で、ヘッドは1個の述語、ボディは1個の述語か、
“、′で連結された2個以上の述語からなる述語列(即
ち、述語、述語1−’l述語)、又は空であり、ボディ
が空のルールはヘッドのみの形式とする。
i本譜は、 述語名(引数、引数1 ’−”l 引数)の形式を持つ
。こ−で引数は定数、変数又は構造体であり、定数は小
文字で始まる文字列、変数は大文字で始まる文字列であ
り、構造体は、構造体温(引数、引数1−’l 引数)
の形式を持つ。又、述語名及び構造体温は小文字で始ま
る文字列である。
このようなルールの列で構成されるPROLOGプロダ
ラムの実行は、例えば“?−述語列(又は述語)”の形
式で指定される質問を入力することによって開始される
。この質問の質問データである述語列(又は述語)をゴ
ールという。
プログラムの実行は、ゴールと同じ述語名のヘッドを持
つルールを探索し、一致したら両者の引数を比較して、
各対応位置の引数が所定の関係にあれば両者のマツチが
得られたとする。
マツチした場合には、そのルールのボディを新たにゴー
ルとして上記の処理を進める。このとき、ボディを構成
する述語の引数の変数に既に定まる値がある場合には、
その値によって置換する等の処理をして、新ゴールとす
る。(上記の、ゴールとルールのヘッドとのマツチを得
、要すればそのボディの変数に所要の置換を行う処理を
、以下においてユニファイという)。
このようにして、ゴールのすべての述語が、ボディの空
なルールとユニファイすることにより、解の一つに達す
るプログラム実行は終わる。
しかし、一つのルールの述語とユニファイされるルール
は複数個あり得るので、そのような場合にはそのステッ
プで探索木の分枝が生じ、それぞれの分枝についての個
別の実行が有り得る。
このような実行態様を考慮して、以下に述べるような並
列処理方式が提案されている。
即ち、前記のようにPROLOGプログラムの実行の全
体は探索木の構造となるが、その分枝点に到達した処理
装置が分枝の1技の処理を深める方向に処理を進めれば
、一般に未処理の技が残るようになる。
従って、分枝点において処理を分割することにすれば、
並列処理のための分割点の候補が、処理のiV行に伴っ
て自動的に設定される。
この分枝点とは、前記PROLOGプログラム実行の説
明から明らかなように、質問データを構成する1述語と
のマツチを探索する必要のあるルール、より具体的には
質問データの述語名と同じ述語名をヘッドに持つルール
、が複数個ある場合を言っている。
このような分枝点において、未処理の質問データの1&
F]を分割し、要すれば、走査開始点とすべき先頭のル
ールを指定して、それらを遊び状態の処理装置に渡せば
、その処理装置は以降の処理を、分割元との通信等の必
要無く、すべて牟独に実行することができる。
第3図は、このような方式で並列処理を実行するための
情報処理システムの一構成例である。
図において、各処理袋W1は、それぞれ独立にPROl
、OGを実行できる処理装置である。
各処理装置1は、隣の処理装置1で発信又は中継される
要求メソセージを、imm綿線2ら受は取る。このとき
、もし前記の意味で分割できる処理がある場合には、交
換機3を介して該要求の発信元処理装置1へ、前記のよ
うな所要の分割データを送ることにより、処理を分割す
る。
分割すべき処理が無い場合には、通知線2により、受信
した要求メソセージを次の処理袋M1へ中継する。又、
自身が遊び状態になった場合には、要求メソセージを生
成して、次の処理装置1へ発信する。
なお、各処理装置1は交換機3を介して周辺装置4と接
続し、プログラム、データ等の入出力及び外部との通信
を行うことができる。   ゛第4図は各処理装置1の
一構成例を示すブロック図である。
受信部20は交換機3を経て、周辺装置4又は他の処理
装置lから、ルールのデータ、質問データ及び所要の制
御情報等を受信して、プログラム実行部21に渡す。
プログラム実行部21は受は取った質問データによって
プログラムを実行し、又借せて処理を分割するための情
報を構成する。
1t11知制御部22は通知線23.24と接続し、通
知線23から要求元処理装置1のアドレスを表示する要
求メソセージを受信すると、これを分割制御部25に通
知し、分割制御部25から、分割する処理が無い旨の応
答が有ったときは、受信したメ・7セージを通知線24
により隣接処理装置へ中継する。又、遊び状態になると
、自処理装置アドレスを表示する要求メツセージを発信
する。
要求メソセージを受信し、プログラム実行部2Iに分割
する処理がある場合には、分割制御部25は所要の情報
をプログラム実行部21から取り出して、送信部26か
ら交換機3を経て、要求元処理装置宛に送出する。又、
プログラム実行部21内の該当処理を処理済とする。
第5図はプログラム実行部21の主要部の一構成例を示
すブロック図である。
処理部27は記憶部28のデータによってプログラムを
実行する。記憶部28のデータテーブル30にはプログ
ラムを構成するルールと、質問のデータがテーブル形式
で保持される。
ゴールスタック31は、データテーブル30上の、次に
探索するルールを指すポインタ (以下において、ルー
ルポインタという)と、ゴールのデータを指すポインタ
 (以下において、ゴールポインタという)の対、及び
所要の制御情報を各1項として、いわゆるスタック方式
で格納する領域である。
スタックポインタ32はゴールスタック31の末尾の有
効型を指している。
作業域33には、処理中の述語内の変数の値及びその他
の制御情報等が保持される。
次に、下表に示す簡単なルールに、質問として?−f(
a、^)、p(B、C) がりえられた 場合を例として、処理の分割を説明する
裏 第6図は、該処理における、1つの処理装置lのデータ
テーブル30とゴールスタック31の状況を示す。図に
おいて、ゴールスタックの各項の、gはゴールポインタ
、rはルールポインタを示すものとする。
第(i図falに示す初期状態では、ゴールポインタが
データテーブルの最終型にある質問データの最初の述語
f (a、 A)を指し、ルールポインタは先頭のルー
ルのヘッドを指している。
従って、ルールの先頭からf(a、A)とマツチするル
ールを走査し、第3のルールf(a、b)でマツチす1
す るので、Aにはbが代入される。このルールはボディが
ないので、質問の次のゴールを処理するために、ゴール
スタックに第2項が追加されて、ゴールとしてp(B、
C)をポイントし、ルールポインタは先頭のルールを指
す。
又、ゴールスタックの第1項は、いわゆるバックトラッ
クのために、ルールポインタを次の第4のルールへ移し
、第6図(blの状態になる。
ゴールp(B、C)は、第1のルールとユニファイされ
るので、次のゴールは第1のルールのボディのf(X、
Y)になり、それを指すゴールポインタがゴールスタッ
クの第3項としてスタックされ、第2項のルールポイン
タは、前記と同様に、次の第2のルールへ移されて、第
6図(C1の状態になる。
このようにして、1つの処理装置f内の処理が進められ
るが、もし第6図(b)又はfC)の状態において、他
の処理装置1からの要求メツセージを受信した場合には
、例えば、ゴールスタックの最終型より前の1項(例え
ば、第6図tc+の場合の第1項又は第2項)のゴール
ポインタ及びルールポイン夕の情報、及び所要の変数値
等を通知し、自身のゴールスタックでは、その項を無効
表示することにより処理の分割ができる。
〔発明が解決しようとする問題点〕
第6図には説明のために、ルールの数が少なく、各ルー
ルの構成も簡単な例を示したので、ゴールスタックの項
数も少ないが、実用システムでは一般に、ゴールスタッ
クに多数の項がスタックされる。
そのようなゴールスタックから、他の処理装置の要求に
応じて前記のようにして処理を分割すると、無効の項が
逐次発生し、遂にある時点では分割すべき処理の無い状
態も生じ得る。
このような場合にも、ゴールスタックの全項を走査する
ことによって、初めて分割すべき処理をもつ有効型が無
いことを検出しなければならないので、無駄な制御時間
を消費するという問題がある。
〔問題点を解決するための手段〕
第1図は、本発明の構成を示すブロック図である。
図は、前記処理装置1のプログラム実行部21に代わる
、プログラム実行部の詳細構成を示し、40は処理分割
を制御する情報を保持する分割ポインタである。分割ポ
インタ40において、41はポインタ部、42は状態部
を示す。
〔作用〕
本発明のプログラム実行部は、以下に述べる分割処理の
他は、前記従来のプログラム実行部21と同様に動作す
る。
分割ポインタ40のポインタ部41は、分割処理におい
て走査を開始すべき、ゴールスタックの1項を指し、状
態部42は分割すべき処理の有無に関する状態を、分割
の可能性について「有り」、「不明」、及び「無し」の
3状態の1つとして表示する。
「有り」は、ポインタ部41の指す項が分割できる処理
に対応している状態、「無し」は分割対象の処理が無い
状態、「不明」は「有り」及び[無しl何れの状態にも
確定していない状態を示すようにする。
処理部27は、011記のように質問に基づく処理を実
行し、ゴールスタック31にゴールを指す項が2Sr還
以ヒになると、状態部42が「無し」であれば、「イ1
す」にし、ポインタ部41を最も古い有効項に設定する
処理分割の要求メソセージを受は取った場合には、分割
ポインタ40の状態部42を見て、「無し」であれば、
直ちに要求メソセージを次位処理装置へ中継する。
「有り」であれば、ポインタ部41の指す項の処理を、
前記従来と同様にして分割し、状態部42を「不明」に
変更する。
「不明」であれば、ポインタ部41で指す項以降の項を
走査し、分割可能な処理があれば、その処理を前記と同
様にして分割する。
走査の結果、分割すべき処理が無かった場合には、状態
部42を1無し」に変更し、要求メソセージを次位処理
装置へ中継する。
以上の制御により、前記従来の問題を除去して、分割処
理を効率よ(実行することができる。
〔実施例〕
!−勘イ(う、←プ冨tnド 第1図において、本発明のプログラム実行部は、以下に
述べる分割処理の他は、前記従来のプログラム実行部2
1と同様に動作する。
分割ポインタ40のポインタ部41は、分割処理におい
て走査を開始すべき、ゴールスタックの1項を指し、例
えばスタックポインタ32と同一のポインタ値に初期設
定して処理を開始する。
状態部42は分割すべき処理の有無に関する状態を、分
割の可能性についての「有り」、「不明」、「無し」の
3状態の1つとして表示するものとする。
以下に述べる制御により、「有り」は、ポインタ部41
の指す項が分割できる処理に対応している状態、「無し
」は分割対象の処理が無い状態、「不明」は「有り」及
び「無し」何れの状態にも確定していない状態を示すよ
うにする。
処理部27は、前記のように質問に基づく処理を実行し
、状態部42が1無し」の場合に、例えばポインタ部4
1の値とスタックポインタ32の値を比較することによ
って、ゴールスタック31にゴールを指す項が2項以上
になったことを検出すると、状態部42を「有り」にし
、要すればポインタ部41を設定して、ゴールスタック
31上で、ゴールをポイントしている有効項のうちで最
も古い項をポイントするようにする。
処理分割の要求メソセージを前記のように受は取った場
合には、分割処理の開始において分割ポインタ40の状
態部42を見る。
状態部42の表示が「無し」であれば、ゴールスタック
31を走査することなく、直ちに要求メソセージを次位
処理装置へ中継して、該メツセージに対する処理を終わ
る。
表示が「有り」であれば、ポインタ部41の指すゴール
スタック31の項がポイントする処理を、前記従来の制
御と同様にして分割し、ゴールスタック31の当該項を
無効にした後、状態部42の表示を「不明」に変更する
要求メツセージを受は取ったとき、状態部42の表示が
「不明」であれば、ポインタ部旧で指ず項以降スタック
ポインタ32の指す項に向かって、順次ポインタ部41
のポインタを進めて、ゴールスタック31の各項を走査
する。
走査して、分割可能な処理(ゴールをポイントする有効
項)が検出されれば、最初に検出された項のポイントす
る処理を前記と同様にして分割し、当該項を無効化する
。この場合に状態部42の表示は「不明」のま\とする
走査の結果、分割すべき処理が無かった場合、即ちポイ
ンタ部41がスタックポインタ32と一致するまで走査
して、ゴールをポイントする有効項が検出されなかった
場合には、状態部42を「無し」に変更し、要求メツセ
ージは従来と同様に次位処理装置へ中継する。
従って、その後処理をポイントする項が2項以上になれ
ば、前記と同様に状態部42に「有り」の表示が設定さ
れる。
処11例 以上の制御を前記第6図と同様の場合について、第2図
を参照して以下に説明する。
第2図fa)の状態では、分割ポインタ40のポインタ
部41は、ゴールスタック31の第1項のアドレス、状
態部42は「無し」に初期設定されている。
第2図fblの状態にスタックの項が追加されるとき、
状態部42は「有り」に変更される。ポインタ部41は
変化しない。この分割ポインタ40の内容は、その71
 (C1の状態のようにゴールスタック31の項が追加
されても維持される。
こ\で、もし他の処理装置から分割要求メソセージを受
は取って、分割処理が開始されると、状態部42が「有
り」であるので、ポインタ部41の指す、ゴールスタッ
ク31の第1項に対応する処理が、前記のようにして分
割される。
その結果、第2図(d+に示すように、ゴールスタック
31の第1項は、内容を例えばrnull−1記号に更
新することによって無効型の表示とし、状態部42は「
不明」表示に変更される。
従って、この状態で続いて分割要求メソセージを受ける
と、ポインタ部41に従って、スタックの第1項から検
索が行われ、第2項が分割対象として選択される。
以上は、PROI、OG言語のプログラムの処理を例と
して説明したが、本発明がPROLOGに限定されるこ
と無く、類似の非決定性プログラミング言語一般の処理
に適用され得ることは、以−にの説明から当分野の専門
家には明らかである。
〔発明の効果〕
以上の説明から明らかなように本発明によれば、PRO
LOGプログラム等の並列処理のための分割処理におけ
る、処理能力の浪費が避けられるので、情報処理システ
ムの性能、効率を改善するという著しい工業的効果があ
る。
【図面の簡単な説明】
第1図は本発明の実施例構成ブロック図、第2図は本発
明の処理説明図、 第3図は情報処理システムの一構成例ブロック図、第4
図は処理装置の一構成例ブロック図、第5図はプログラ
ム実行部の一構成例ブロック図、第6図は従来の処理説
明図である。   図において、 ■は処理装置、     2.23.24は通知線、3
は交換機、      4は周辺装置、20は受信部、
     21はプログラム実行部、22は通知制御部
、   25は分割制御部、26は送信部、     
27は処理部、28は記憶部、     30はデータ
テーブル、31はゴールスタック、 32はスタックポ
インタ、33は作業域、      40は分割ポイン
タ、41はポインタ部、   42は状態部本発明の実
施例構成ブロック図 第1図 情報処理システムの−構成例ブロック図交換機へ 処理装置の一構成例ブロック図 第4図 プログラム実行部の−構成例ブロック図第5図

Claims (1)

  1. 【特許請求の範囲】 1以上のルールからなるデータから、質問データと所定
    の関係を満足するルールを探索し、該関係を満足する1
    のルールと該質問データとに基づいて次の質問データを
    構成する処理を反復し、1の該質問データについての上
    記処理の、上記探索の対象とすべき所定条件を有する2
    以上のルールがある場合の、該質問データに始まる処理
    の未処理部分に関する制御情報を記憶するスタック(3
    1)を有する処理装置を複数台有し、 該各処理装置は他の処理装置からの要求があったとき、
    該スタック(31)の1項を検索して、該要求元処理装
    置に検索した当該処理を分割するようにした情報処理シ
    ステムにおいて、 前記スタック(31)上の、前記検索を開始すべき項を
    指示するアドレスを保持するポインタ部(41)と、 該ポインタ部(41)で指示する項が前記未処理部分の
    処理情報を指示している状態、前記分割の対象となる処
    理が存在しないことが検出された状態、及び該2状態の
    何れでもない状態のうちの1状態を表示する情報を保持
    する状態部(42)とを設けたことを特徴とする処理分
    割制御方式。
JP60255420A 1985-11-14 1985-11-14 処理分割制御方式 Pending JPS62114032A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60255420A JPS62114032A (ja) 1985-11-14 1985-11-14 処理分割制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60255420A JPS62114032A (ja) 1985-11-14 1985-11-14 処理分割制御方式

Publications (1)

Publication Number Publication Date
JPS62114032A true JPS62114032A (ja) 1987-05-25

Family

ID=17278512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60255420A Pending JPS62114032A (ja) 1985-11-14 1985-11-14 処理分割制御方式

Country Status (1)

Country Link
JP (1) JPS62114032A (ja)

Similar Documents

Publication Publication Date Title
US4905138A (en) Meta-interpreter
US4787035A (en) Meta-interpreter
US4868743A (en) Traversal method of processing tree structure information and apparatus using the same
US4951225A (en) Updating pattern-matching networks
US8635620B2 (en) Hardware device for processing the tasks of an algorithm in parallel
JPS63500479A (ja) パタ−ンをアドレス可能なメモリ
JPH0778739B2 (ja) パターン突合せネットワークの併合方法
JPS61210478A (ja) ベクトル処理装置
JPS62114032A (ja) 処理分割制御方式
Robič et al. Area optimization of dataflow-graph mappings
JPS6219962A (ja) 並列処理方式
JPS61279928A (ja) プロログ・プログラム並列処理方式
JPS61279939A (ja) 並列処理方式
Shakley et al. Parallel Artificial Intelligence Search Techniques for Real Time Applications
JPH0218641A (ja) データ管理方法
JPS63257030A (ja) 文字列検索回路
JPH0328929A (ja) 推論方法及び推論装置並びに定理証明方法及び定理証明装置
Parekh et al. A polynomial time incremental algorithm for regular grammar inference
JPS62133568A (ja) 省略語補完装置
Boström Generalizing the order of goals as an approach to generalizing number
JPH01120621A (ja) データベースの検索・更新方式
JPS63178321A (ja) 木走査方式
JPH03288967A (ja) データベース処理システム
JPH04315260A (ja) 文字列照合方式
JPH0231237A (ja) 最適分岐命令生成方式