JPH0293936A - プロダクションシステムの並列実行方式 - Google Patents

プロダクションシステムの並列実行方式

Info

Publication number
JPH0293936A
JPH0293936A JP63246967A JP24696788A JPH0293936A JP H0293936 A JPH0293936 A JP H0293936A JP 63246967 A JP63246967 A JP 63246967A JP 24696788 A JP24696788 A JP 24696788A JP H0293936 A JPH0293936 A JP H0293936A
Authority
JP
Japan
Prior art keywords
execution
processor
processors
elements
production system
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
JP63246967A
Other languages
English (en)
Inventor
Yukari Nagano
長野 ゆかり
Kazumitsu Matsuzawa
松沢 和光
Takashi Yugawa
湯川 高志
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP63246967A priority Critical patent/JPH0293936A/ja
Publication of JPH0293936A publication Critical patent/JPH0293936A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プロダクションシステムに係り、特に実行処
理速度を高速化するのに好適なプロダクションシステム
の並列実行方式に関する。
〔従来の技術〕
AIシステムの実現方式として、プロダクションシステ
ムがある。プロダクションシステムは知識を記述した知
識ベースと推論を行う推論エンジンから構成される。
知識ベースは、事実に関する知識であるファクトと、規
則に関する知識であるルールからなる。
各々のファクトはワーキングメモリ要素(WME)とし
て記述され、ワーキングメモリ(WM)に記憶される。
また、各々のルールは条件を記述した条件部(LH3部
)と実行手続きを記述した動作部(R1−1s部)から
成る。すなわちルールは、if(条件部) then 
(!f1作部)形式で記述されている。ルールのLH5
部(条件部)は1つ以上の条件要素からなり1条件要素
には、1つ以上の条件式が記述される。RH8部413
作部)は1つ以上の実行要素からなり、実行要素にはW
MEの更新・表示および入力などの動作が記述される。
ルールのLH8部の全ての条件要素の全ての条件式を満
足するWME群が存在するとき、LH3部はそのWME
群によって満足されたという。
推論エンジンは、照合フェーズ、競合解消フェーズ、ル
ール実行フェーズの繰り返しによって推論を行う。この
一連の動作は認知サイクルと呼ばれる。この例を第2図
に示す。照合フェーズ201では、全てのWMEに対し
て、全てのルールのL HS部の条件要素に記述された
条件式を満足するか否かの照合を行い、LHS部を満足
するWME群とそれにより満足されたルールの組の集合
を生成する。この組をインスタンシェーション(jns
tantiation)と呼び、インスタンシェーショ
ンから成る集合を競合集合と呼ぶ。競合解消フェーズ2
02では、競合集合から実行すべきインスタンシェーシ
ョンを1つだけ選出する。ここで、選出に用いる方法を
戦略(strategy)と呼ぶ。ルール実行フェーズ
203では、競合解消フェーズ202で選出されたイン
スタンシェーション中のWME群に対して選出されたル
ールのRH8部(動作部)を作用させる。
このようなプロダクションシステムの処理を高速化する
ための並列方式として、本出願人は、先に複数台のプロ
セッサを用い、照合フェーズを並列実行する方法「プロ
ダクション・システム実行方式」を提案している(特願
昭62−309183号明細書参照)。 この方法では
、認知サイクルの照合フェーズを複数のプロセッサで分
担して行い、その照合結果をある1台のプロセッサに送
る。
その結果を受取ったプロセッサでは競合解消フェーズを
行い、ただ1つのインスタンシェーションを選択し、逐
次にルールを実行する。そして、その実行結果に対して
各プロセッサで再び照合が始まる。このような方式では
、通常、WMは全てのプロセッサからアクセス可能な共
通のメモリ上にとられる。これを共有WMと呼ぶ。この
方式では。
照合を複数のプロセッサで行うことにより全体の処理時
間は速くなるが、実行フェーズ中は1台のプロセッサ以
外は待ち状態となるため、システ11全体のプロセッサ
の稼働率が低くなるという問題があった。
そこで、上記の問題を解決する方法として、実行フェー
ズも複数台のプロセッサを用いて並列実行することが考
えられる。実際、上記の方式でルール実行を1台のプロ
セッサで行っているのは、実行するルールがひとつだか
らである。しかし次に示すように、ルールのRHS部(
動作部)は複数の実行要素からなることが多いので、こ
わを複数のプロセッサで実行することができる。
ルール(1): if a、b then modify a、al(a
をa、に更新)modify b 、 b 、 (bを
blに更新)ここで、ルール(1)の動作部は、2つの
実行要素: modifyからなり、それぞれa、bを
対象WMEとしている。ここで、modify a 、
 a□を実行■。
modify b 、 b工を実行■とすると、例えば
実行■をあるプロセッサで処理し、実行■を別のプロセ
ッサで処理することができる。よって、実行フェーズに
おいて1ルールしか実行しない場合でも。
1つ1つの実行要素を別々のプロセッサが処理すること
によって実行フェーズを並列処理すること。
ができる。しかしこのような方式では実行フェーズにお
いて、全プロセッサが同時に共有WMにアクセスするよ
うな競合が起こる。以下これを説明する。
共有WMを用いる際、プロセッサと共有WMは通常、共
通バス等で接続され、共有WMには一度に1台のプロセ
ッサしかアクセスできない。つまり、先に共通バスを使
うことができたプロセッサのみが共有WMにアクセスで
き、共通バスにアクセスできなかったプロセッサは、共
通バスを使用しているプロセッサが共有WMの更新を完
了させ、共通バスが空くまで待たなくてはならない。
これを第3図に、先に示したルールを適用して説明する
。初期WMの内容を(a+ b+ Q+ d)とし、プ
ロセッサ1で実行■を、プロセッサ2で実行■を処理す
る時、これらのプロセッサは同時に共有WMにアクセス
する。この例では、プロセッサ1が先に共有WMにアク
セスできたとすると、まずプロセッサ1が実行■を実行
する。実行■の処理に時間t、1 かかったとすると、
プロセッサ2はその間、共通バスが空くまで待ち状態と
なる。
時間t0後にプロセッサ1の実行が終了し、共通バスが
空いたとき、はじめて、プロセッサ2は共有WMにアク
セスでき、実行■を実行する。実行■の処理に時間t2
かかるとすると、ルール実行フェーズ全体の処理時間は
、(1よ+tz)となる。
これはルール(1)を1台のプロセッサで行った場合と
同じであるため、並列実行を行った効果が得られない。
このようにプロセッサ数をnとすると、ルール実行フェ
ーズの処理時間は(t□+t2+・・・tn)となり、
プロセッサが増え、高並列になればなるほど、処理時間
が長くなってしまう。
〔発明が解決しようとする課題〕
上記従来技術では、ルール実行フェーズにおいて複数の
プロセッサが同一のWM(共有WM)を用いると、全プ
ロセッサが同時に共有WMをアクセスする競合が起こり
、プロセッサは順次、共有WMにアクセスするため、処
理時間は逐次実行時と変わらず、処理の高速化が図れな
いという問題がある。また、共有WMにアクセスできる
までプロ。
セッサは待ち状態となるため、プロセッサの稼働率が低
いという問題があった。
本発明の目的は、このような従来の問題を解決し、アク
セス競合を起こすことなく、処理を高速に実行可能なプ
ロダクションシステムの並列実行方式を提供することに
ある。
〔課題を解決するための手段〕
上記目的を達成するため、本発明のプロダクションシス
テムの並列実行方式は、認知サイクルの繰り返しにより
推論実行を行うプロダクションシステムにおいて、複数
のプロセッサと、各プロセッサにそれぞれ設置された局
所メモリと、上記推論実行を制御する制御手段とを有し
、上記各プロセッサの局所メモリにワーキングメモリ要
素を分割して収容し、かつ該ワーキングメモリ要素はた
だ1つの局所メモリ上にのみ存在するものとし、上記認
知サイクルの競合解消フェーズの終了後、上記制御手段
は実行要素が削除および更新である場合に、該実行要素
の対象としているワーキングメモリ要素を自局所メモリ
に含んでいるプロセッサにのみ上記実行要素および対象
ワーキングメモリ要素を送信し、上記各プロセッサは送
信された上記実行要素をすべて実行することに特徴があ
る。
また、上記制御手段は、実行要素が削除および更新であ
る場合に、該実行要素および上記対象ワーキングメモリ
要素を全てのプロセッサに送信し、上記各プロセッサは
送信された実行要素の中から、自局所メモリの要素を対
象ワーキングメモリ要素とした実行要素のみを実行する
ことに特徴がある。
さらに、上記制御手段は、実行要素が生成である場合に
、上記全プロセッサの中から1つのプロセッサを選択し
、該選択されたプロセッサにのみ上記実行要素および上
記対象ワーキングメモリ要素を送信し、上記選択された
プロセッサは送信された上記実行要素をすべて実行する
ことにも特徴がある。
〔作用〕
本発明においては、ワーキングメモリ要素(W M E
 )を各プロセッサの局所メモリに重複しないよう、分
割して収容しくこの局所メモリを以下、分散WMと呼ぶ
)、各プロセッサはルール実行フェーズにおいて、他の
プロセッサの分散WMは用いずに、プロセッサ自身の分
散WMだけを用いて自分の分散WMの要素を実行対象と
した実行要素だけを実行する。
第4図に、本方式によって並列実行を行った例を示す。
プロセッサ1の分散WM上は(a、c)、プロセッサ2
の分散WM2は(b、d)とし、ルール(1)が両方の
プロセッサに送られたとすると、実行ので更新するaは
、分散WM、にあるためプロセッサ1で実行■を実行し
、実行■で更新するbは分散WM、にあるためプロセッ
サ2で実行■を実行する。プロセッサ1.プロセッサ2
の実行部では、分散W M +、 、分散WM、にアク
セスし、WMEをal。
blに変更する。ここで、実行■の処理時間をしい実行
■の処理時間をt2とすると、各プロセッサは、他プロ
セツサの実行状態とは関係なく分散WMにアクセスする
ことができるので、ルール実行にかかる全体の時間は1
時間t工とし2の大きい方、ここでは時間上〇となる。
実際、常にmax(t工・・・tn)<(t□+・・・
+tn)であるから、本方式により、従来の逐次方式よ
りも高速化されることがわかる。また、各プロセッサは
待ち状態になることが少ないので稼働率も上がる。
〔実施例〕
以下、本発明の一実施例を、図面により詳細に説明する
第1図は9本発明の実施例を示すプロダクションシステ
ム実行装置の構成図である。
第1図において、PEOはルール照合および競合解消を
行うホストプロセッサ、PE□、PE2゜・・・、PE
nはルール実行を行うサブプロセッサ。
10は本プロダクションシステム実行装置、11゜12
、・・・・1nはワーキングメモリ要素(WME)を重
複しないように分割して収容した分散WM、20はrH
−thenJ形式のルール(プロダクション)が格納さ
れている主記憶、30は競合解消フェーズで選択された
実行要素を対象WMEに含んでいるプロセッサに送信す
る制御部である。
ここで、ホストプロセッサPE0はサブプロセッサの機
能を有していても良いことは言うまでもない。すなわち
、ホストプロセッサPE、においてルール実行を行って
も良い。また、各分散WMに分割して収容されたWME
はただ1つの分散WM上にのみ存在するものとする。
第5図は、第1図におけるプロダクション実行装置の処
理の流れを示す図である。ここでは、ホストプロセッサ
PEoとサブプロセッサPE、との間で認知サイクルを
作り、初期データに基づいてホストプロセッサPEQで
主記憶20上のルールを照合し、戦略に基づいて競合解
消を行い、サブプロセッサPE1で自分の分散WMII
だけを用いて自分数WMIIの要素を実行対象とした実
行要素だけを実行することを示している。他のプロセッ
サにおいても同様に自分の分散WMだけを用いて自分数
WMの要素を実行対象とした実行要素だけを実行する。
以下、第1図および第5図を用いて、本実施例の動作を
詳細に説明する。
まず、ホストプロセッサPE、は主記憶20上のルール
を参照して、与えられたルールとの照合を行う。
次に、照合したルールとWMEの組はインスタンシェー
ション50とし、競合解消フェーズとなる。競合解消フ
ェーズでは戦略に基づいて1つのインスタンシェーショ
ンを選択し、制御部30に送る。制御部30では、ルー
ルの動作部に記述されている実行要素を1つ1つ調べ、
例えば実行要素が更新あるいは削除である場合は、この
実行要素が対象としているWME(以下、対象WMEと
呼ぶ)に付記されている分散WMi%を調べる。
そしてその結果が分散WMIIを示す番号である場合、
実行要素および対象WMEの組から成る起動データ70
をこの分散WMIIを持つプロセッサPE□に共通バス
40を介して送信する。すなわち、制御部30では、ル
ールの実行要素ごとに、対象WMEに付記されている分
散WM番号を調べ、この分散WMを有するプロセッサだ
けに実行要素とその対象WMEを送信する。
その起動データ70を受けたサブプロセッサPE工では
、送信されてきた全起動データに対してその処理を行う
。すなわちサブプロセッサPE1では1分散WMIIに
アクセスし、対象WMEに関して分散WMIIの内容を
書換える。このような認知サイクルをルール照合フェー
ズにおいて照合するルールがなくなるまで繰り返す。
上記本実施例では、制御部30は、実行要素が削除ある
いは更新である場合、対象WMEにこのWMEを含んで
いる分散WMの番号を付記する方法を用いて起動データ
を送るプロセッサを決定していたが、WMEと分WIW
Mの対応表を設け、制御部ではこの対応表を用いて対象
WMEの含まれている分散WMを検索し、実行要素並び
に対象WMEを送信するプロセッサを決める方法でも良
い。
これらの方法により、各プロセッサでは送信されてきた
実行要素をすべて自分の分散WMだけを対象として実行
することができる。また、本実施例では、共通バスを介
して起動データを送信する方法を採っているが1通信線
等により送信する方法でも良いことは言うまでもない。
なお、上述した起動データは各プロセッサがこのデータ
をもとに実行要素を処理できればどのような内容でもか
まわないことは明白である。すなわち上記では、起動デ
ータとして直接、実行要素と対象WMEを用いたが、各
プロセッサが実行要素の内容を予め分散WM(局所メモ
嘗月内の一部に記憶している場合などでは、実行要素を
示す実行要素番号を用いることもできる。また、対象W
MEの代わりとして、分散WMに記憶されている対象W
MEのアドレス番号を用いることもできる。
次に、実行要素が削除あるいは更新である場合の他の実
施例について説明する。ここにおいても。
プロダクション・システム実行装置の構成は、第1図と
同様であるとする。前述した実施例との相違は、制御部
における判断を一部プロセッサに持たせた点である。
すなわち、実行要素が削除あるいは更新である場合、制
御部30においてこの実行要素に関する起動データを全
てのサブプロセッサに送信する。
このとき各サブプロセッサでは、実行要素1つ1つにつ
いてこの実行要素の対象WMEが分散WMに含まれてい
るかを調べ、含まハでいる場合はこの実行要素の処理を
行う。この方法によって各プロセッサは自分の分散WM
だけを対象として実行要素を実行できる。
最後に、実行要素が生成である場合の実施例について説
明する。ここにおいても、プロダクション・システム実
行装置の構成は、第1図と同様であるとする。
実行要素が生成である場合は、制御部30においてこの
実行要素を処理するサブプロセッサを1つだけ選択し、
このサブプロセッサだけに起動データを送信する。すな
わち、実行要素が生成である場合は、既存のWMEを用
いることがないので、分散WMの内容に関係なくどのサ
ブプロセッサでも実行できる。したがって制御部30が
なんらかの方法を用いて、生成処理を行うサブプロセッ
サを選択する必要がある。ここでの選択方法は、処理を
行うプロセッサが一部に決まればどのような方法をとっ
てもよいが、例えば次のような方法がある。
■乱数等を用いてランダムに一台のサブプロセッサを選
択する。
■制御部30内にカウンタを設け、順番にサブプロセッ
サを指定する。
■分散WMの要素数が一番少ないサブプロセッサを選択
する。
■制御部30は実行要素が生成以外のものを先に送信し
、これらの実行要素の処理を終了したサブプロセッサか
、あるいは処理すべき実行要素がなく起動していないサ
ブプロセッサに、改めて生成の指示を送る。
上記■の方法では各プロセッサの稼働状態を平均的にす
ることができる。
このように5水力式のルール実行フェーズでは、各プロ
セッサは他のプロセッサの分散WMを用いることなく、
各プロセッサ内の分散WMだけを用いることによって、
WMの競合を起こさずに並列実行することができ、逐次
方式よりも高速にプロダクション・システムを実行する
ことができる。tなお、ワーキングメモリ(WM)を分
割する方法は、分割されたWMがプロセッサごとに均等
であることが望ましいのは明らかだが、本実施例におい
て特に規定されるものではなく、どのように分割しても
良い。
上記実施例では、競合解消フェーズにおいて1つのルー
ルを選択した場合について説明したが、複数のルールが
選択された場合でもこれらのルールを並列実行すること
ができるのは言うまでもない。
また、上記ホストプロセッサPEOにおける照合処理お
よび競合解消処理を逐次的に実行するか。
並列的に実行するかは、本実施例において本質的に規定
されるものではなく、どちらの方法をとっても良い。す
なわち、本実施例は、照合フェーズにおける照合処理お
よび競合解消フェーズにおける競合解消処理が逐次的に
実行される場合でも、並列的に実行される場合でも、そ
れとは独立に実行フェーズを並列処理できる。
〔発明の効果〕
以上説明したように、本発明によれば、ルール実行フェ
ーズにおいてアクセス競合を起こすことなく、並列実行
を行うことができるので、プロダクションシステムの処
理の高速化が図れる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すプロダクションシステ
ム実行装置の構成図、第2図はプロダクションシステム
の認知サイクルを説明するための図、第3図は従来のプ
ロダクション・システムの実行方式を説明する図、第4
図は本発明のプロダクション・システム実行方式の原理
的説明をする図、第5図は第1図におけるプロダクショ
ン実行装置の処理の流れを示す図である。 PE、:ホストプロセッサ、PE工、PE2.  ・・
・・、PEn:サブプロセッサ、1o:プロダクション
システム実行装置、11,12.  ・・・・1n:分
散WM、20:主記憶、3o:制御部、40 :共通バ
ス、5o:インスタンシェーション、70:起動データ

Claims (3)

    【特許請求の範囲】
  1. (1)認知サイクルの繰り返しにより推論実行を行うプ
    ロダクションシステムにおいて、複数のプロセッサと、
    各プロセッサにそれぞれ設置された局所メモリと、上記
    推論実行を制御する制御手段とを有し、上記各プロセッ
    サの局所メモリにワーキングメモリ要素を分割して収容
    し、かつ該ワーキングメモリ要素はただ1つの局所メモ
    リ上にのみ存在するものとし、上記認知サイクルの競合
    解消フェーズの終了後、上記制御手段は実行要素が削除
    および更新である場合に、該実行要素の対象としている
    ワーキングメモリ要素を自局所メモリに含んでいるプロ
    セッサにのみ上記実行要素および対象ワーキングメモリ
    要素を送信し、上記各プロセッサは送信された上記実行
    要素をすべて実行することを特徴とするプロダクション
    システムの並行実行方式。
  2. (2)上記制御手段は、実行要素が削除および更新であ
    る場合に、該実行要素および上記対象ワーキングメモリ
    要素を全てのプロセッサに送信し、上記各プロセッサは
    送信された実行要素の中から、自局所メモリの要素を対
    象ワーキングメモリ要素とした実行要素のみを実行する
    ことを特徴とする請求項1記載のプロダクションシステ
    ムの並行実行方式。
  3. (3)上記制御手段は、実行要素が生成である場合に、
    上記全プロセッサの中から1つのプロセッサを選択し、
    該選択されたプロセッサにのみ上記実行要素および上記
    対象ワーキングメモリ要素を送信し、上記選択されたプ
    ロセッサは送信された上記実行要素をすべて実行するこ
    とを特徴とする請求項1または請求項2記載のプロダク
    ションシステムの並行実行方式。
JP63246967A 1988-09-30 1988-09-30 プロダクションシステムの並列実行方式 Pending JPH0293936A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63246967A JPH0293936A (ja) 1988-09-30 1988-09-30 プロダクションシステムの並列実行方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63246967A JPH0293936A (ja) 1988-09-30 1988-09-30 プロダクションシステムの並列実行方式

Publications (1)

Publication Number Publication Date
JPH0293936A true JPH0293936A (ja) 1990-04-04

Family

ID=17156389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63246967A Pending JPH0293936A (ja) 1988-09-30 1988-09-30 プロダクションシステムの並列実行方式

Country Status (1)

Country Link
JP (1) JPH0293936A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007074998A (ja) * 2005-09-14 2007-03-29 Yanmar Co Ltd コンバイン

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007074998A (ja) * 2005-09-14 2007-03-29 Yanmar Co Ltd コンバイン

Similar Documents

Publication Publication Date Title
Baer A survey of some theoretical aspects of multiprocessing
JP2778913B2 (ja) マルチプロセッサシステム及びメモリアロケーション方法
US7080377B2 (en) Method for effective utilizing of shared resources in computerized system
US5010482A (en) Multi-event mechanism for queuing happened events for a large data processing system
JPS646488B2 (ja)
WO1994003860A1 (en) Massively parallel computer including auxiliary vector processor
JPH0293936A (ja) プロダクションシステムの並列実行方式
JPH03122727A (ja) 仮想計算機システムのタイマ制御方式
CN87102161A (zh) 具有多个控制存贮器的用于微程序控制数据处理系统的装置和方法
JPH06175911A (ja) メモリ制御方式
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
JPS63636A (ja) タスク制御方式
JP3211093B2 (ja) ファジィ推論処理方法および装置
JP3012444B2 (ja) プロセスディスパッチ方法
JP3022398B2 (ja) 仮想計算機方式
JPH01161444A (ja) 仮想計算機システム
JPS6340971A (ja) マルチプロセツサ画像処理装置
JP2663600B2 (ja) 制御表再配置処理方式
JPH02199537A (ja) プロダクション・システムの非同期実行方式
JPH04288660A (ja) 複数処理装置の並列処理方式
JPH0683640A (ja) 割込応答処理方式
JPH07200542A (ja) ベクトル処理装置
JPH0253103A (ja) リンク式データ伝送ラインの子局
JPH03137774A (ja) アーキテクチャ合成システム
JPH0260018B2 (ja)