DE4422637A1 - Rechnersystem und Verfahren zum Problemlösen - Google Patents
Rechnersystem und Verfahren zum ProblemlösenInfo
- Publication number
- DE4422637A1 DE4422637A1 DE4422637A DE4422637A DE4422637A1 DE 4422637 A1 DE4422637 A1 DE 4422637A1 DE 4422637 A DE4422637 A DE 4422637A DE 4422637 A DE4422637 A DE 4422637A DE 4422637 A1 DE4422637 A1 DE 4422637A1
- Authority
- DE
- Germany
- Prior art keywords
- competing
- task
- procedures
- search
- block
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
Die vorliegende Erfindung betrifft einen
Parallelverarbeitungsrechner und ein Verfahren zum
Problemlösen unter Verwendung solcher Rechner.
Parallelverarbeitung bietet einen schnellen Weg
geschäftliche und wissenschaftliche Probleme zu lösen.
Parallelverarbeitungsrechner können Rechner mit mehreren
Zentraleinheiten (CPUs) sowie Rechner mit einer einzigen
CPU und mindestens einem Koprozessor umfassen.
Die Anwendung der Parallelverarbeitung ermöglicht die
Verteilung der Rechnerbelastung auf mehrere
Verarbeitungselemente und zugehörige Betriebsmittel, um das
gewünschte Ergebnis schneller als in Einzel-
Verarbeitungseinrichtungen zu erzeugen. Die übliche Art die
Rechnerbelastung zu verteilen ist es, in jedem Prozessor
des Rechners den gleichen Algorithmus oder kooperierende
Teile eines Algorithmus auf unterschiedliche Datenelemente
anzuwenden. Jedes Betriebsmittel kann einen Teilsatz eines
längeren Algorithmus durchführen.
Bei rechenintensiven Tasks (Aufgaben), beispielsweise einer
Suche, um Daten ausfindig zu machen, oder einer Suche, um
einen Lösungsweg für ein komplexes Problem zu erzeugen,
liegt der größte Unwirtschaftlichkeitsfaktor in der Auswahl
des Suchalgorithmus. (Der Algorithmus ist der Plan oder die
Methodik, die verwendet wird, um die Suche durchzuführen).
Sogar bei einer Parallelverarbeitung können abhängig von
der Auswahl des Algorithmus große Unterschiede bei der Zeit
entstehen, die zum Abschließen einer Suche erforderlich
ist. Große Unterschiede bei der Zeitdauer können aus feinen
Unterschieden bei der Problembeschreibung oder bei den
Daten entstehen, die gesucht werden, so daß die Auswahl
eines optimalen Algorithmus vor oder sogar während des
Ablaufens der Suche schwierig oder unmöglich sein kann.
Der Erfindung liegt die Aufgabe zugrunde, ein
Parallelverarbeitungs-Rechnersystem und ein Verfahren zum
Problemlösen zu schaffen, die eine verbesserte
Wirtschaftlichkeit vorsehen und die deshalb eine
Verringerung der Zeit ermöglichen, die zum Lösen eines
spezifischen Problems erforderlich ist.
Die vorliegende Aufgabe wird im Hinblick auf das Verfahren
gemäß der Merkmale des Patentanspruchs 1 und im Hinblick
auf das Parallelverarbeitungs-Rechnersystem gemäß der
Merkmale des Patentanspruchs 8 gelöst.
Vorteilhafte Ausgestaltungen sind Gegenstand von
Unteransprüchen.
Gemäß einem bevorzugten Ausführungsbeispiel der
vorliegenden Erfindung wird ein Parallelsuchverfahren
vorgesehen. Das Parallelsuchverfahren verwendet
unterschiedliche und konkurrierende Suchabläufe, um eine
Gruppe von Daten zu suchen. Ein Suchproblem wird durch eine
Datenverwaltungsanwendung formuliert. Die konkurrierenden
Suchabläufe werden aus der Formulierung des Suchproblems
und zuvor vorhandenen Regeln erzeugt. Die konkurrierenden
Abläufe werden ausgeführt. Zusätzlich kann die Ausführung
der konkurrierenden Suchabläufe überwacht werden, um
Informationen über die Wirksamkeit der konkurrierenden
Abläufe zu erhalten, und die konkurrierenden Abläufe können
aufgrund der Informationen geändert werden. Bei solchen
Suchfällen, bei denen eine Zeitbeschränkung notwendig ist,
wird zu Beginn der Ausführung ein Zeitgeber gestartet und
die erste Lösung innerhalb der Zeitdauer oder die beste
Lösung unter vorbestimmten Kriterien wird zur
Datenverwaltungsanwendung zurückgegeben.
Bei der vorliegenden Erfindung wird die
Parallelverarbeitung unter Verwendung paralleler
Betriebsmittel, beispielsweise Rechnerprozessoren
durchgeführt, um alternative Algorithmen auszuführen oder
um Variationen zu einem gegebenen Algorithmus auszuführen,
wobei die Suchaufgabe an jedem Betriebsmittel dupliziert
wird. Bei einer Suche in einer Datenbasis würde das
erfindungsgemäße Verfahren zum Beispiel unterschiedliche
Suchpläne erzeugen und diese Pläne gleichzeitig ausführen.
Bei einer Suche mit künstlicher Intelligenz läßt das
erfindungsgemäße Verfahren die gleiche Suche unter
Verwendung unterschiedlicher Algorithmen oder unter
Verwendung unterschiedlicher heuristischer Wichtung mit den
gleichen Algorithmen ablaufen.
Das erfindungsgemäße Verfahren unterscheidet sich von
bestehenden Parallelverarbeitungsverfahren, da
unterschiedliche Aufgaben durch Segmente der verfügbaren
Rechnerbetriebsmittel durchgeführt werden, anstelle daß
jedes Betriebsmittel einen Untersatz eines größeren
Algorithmus ausführt. Die einzige gemeinsame Verarbeitung
für die kombinierte Aufgabe ist es, die konkurrierenden
Suchvorgänge einzuleiten, Zwischen- und Endergebnisse
aufzuzeichnen oder zu vergleichen, während sie
zurückgegeben werden, falls erforderlich irgendwelche
Betriebsmittel umzuleiten und die Aktivität an allen
verbleibenden Betriebsmitteln zu beenden, falls eine
befriedigende Lösung zurückgegeben wurde oder falls eine
Zeitbegrenzung erreicht wurde.
Die vorliegende Erfindung unterscheidet sich auch von den
bestehenden Verfahren, da die letztgenannten typischerweise
einen erhöhten Informationsaustausch unter den
Betriebsmitteln erfordern. Falls ein einzelner
Suchalgorithmus verwendet wird und lediglich die Daten
unterteilt werden, machen zunehmend feinere Unterteilungen
gewöhnlich zunehmend häufigere Informationsaustausche
notwendig. Deshalb sind die bestehenden Verfahren
beispielsweise in dem Umfang begrenzt, in dem sie einen
praktischen Nutzen der Rechner mit sich bringen können, für
die die Kommunikationshäufigkeit zwischen den Rechnern ein
Engpaß darstellen könnte.
Ein Hauptvorteil der offenbarten Idee ist die verringerte
Kommunikationshäufigkeit, die unter den Rechnersystem-
Betriebsmitteln erforderlich ist. Falls, wie bei früheren
Anwendungen von Parallelverarbeitungsrechnern, jedes
Betriebsmittel kooperiert, um ein größeres Problem zu
lösen, kann eine häufigere Kommunikation erforderlich sein,
um sicherzustellen, daß alle Betriebsmittel Fortschritte
auf ein gemeinsames Ziel hin machen. Bei der offenbarten
Erfindung arbeiten die Betriebsmittel mit konkurrierenden
Methoden, um das Problem zu lösen, und können deshalb
völlig unabhängig betrieben werden.
Ein Ausführungsbeispiel der Erfindung wird nachstehend
anhand der Zeichnung näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm eines Parallelverarbeitungs-
Rechnersystems,
Fig. 2 ein Blockdiagramm des Arbitrationselements der
Fig. 1,
Fig. 3 ein Blockdiagramm des Taskinitiators der Fig. 2,
Fig. 4 ein Blockdiagramm des Taskterminators der Fig. 2,
Fig. 5 ein Blockdiagramm der Regelaktualisiereinrichtung
der Fig. 2,
Fig. 6 ein Flußdiagramm, das den Betrieb des
Rechnersystems darstellt,
Fig. 7 ein Flußdiagramm, das den Betrieb des
Taskinitiators des Rechnersystems darstellt,
Fig. 8A-C Flußdiagramme, die den Betrieb des
Taskterminators des Rechnersystems darstellen und
Fig. 9 ein Flußdiagramm des Betriebs der
Regelaktualisiereinrichtung des Rechnersystems.
In Fig. 1 schließt ein Parallelverarbeitungssystem 10 ein
Anwendungselement 12, ein Vorrangsschaltungs- bzw.
Arbitrationselement 14, ein erstes Problemelement 16 und
ein zweites Problemelement 18 ein.
Das Anwendungselement 12 führt Problemanweisungen aus, die
durch einen Benutzer eingegeben werden. Das
Anwendungselement 12 kann ein Personalcomputer (PC) oder
ein anderer Arbeitsplatzrechner oder ein großer Server
sein. Das Anwendungselement 12 umfaßt eine
Anwendungselement-CPU 20, einen Anwendungsspeicher 22, eine
Anwendungseingabeeinrichtung 24 und eine Anwendungsanzeige
26. Die Anwendungseingabeeinrichtung 24 kann eine
Tastatureingabeeinrichtung aufweisen.
Das Arbitrationselement 14 steuert den Betrieb des ersten
und des zweiten Problemelements 16 bzw. 18 entsprechend
Anweisungen vom Anwendungselement 12. Das
Arbitrationselement 14 umfaßt eine Arbitrationselement-CPU
28, einen Arbitrationsspeicher 30 und Arbitrations-E/A
(Eingabe/Ausgabe)-Einrichtungen 32. Das
Arbitrationselement 14 kann ein vorhandener
Arbeitsplatzrechner mit höherer Leistung oder ein Knoten in
einer großen Parallelverarbeitungsmaschine sein.
Das erste und das zweite Problemelement 16 bzw. 18 lösen
Probleme und geben ihre Lösungen über das
Arbitrationselement 14 zum Anwendungselement 12 zurück. Das
erste Problemelement 16 umfaßt eine erste Problem-CPU 44,
einen ersten Problemspeicher 46 und eine erste Problem-E/A-
Einrichtung 48. Das zweite Problemelement 18 umfaßt eine
zweite Problem-CPU 50, einen zweiten Problemspeicher 54 und
eine zweite Problem-E/A-Einrichtung 52. Das erste und das
zweite Problemelement 16 bzw. 18 können Arbeitsplatzrechner
mit hoher Leistung, Datenbasisserver oder separate Knoten
in einer großen Parallelverarbeitungsmaschine sein.
Das erste und das zweite Problemelement 16 bzw. 18
enthalten ausreichend CPU-, Speicher- und E/A-
Einrichtungskapazität, um anstehende Probleme lösen zu
können, wobei sie die ihnen gegebenen algorithmischen
Variationen unabhängig verwenden. Zum Beispiel könnte eine
Datenbasis dupliziert werden, so daß eine Kopie sowohl am
ersten als auch am zweiten Problemelement 16 bzw. 18
vorliegt, und jedes Problemelement könnte so seine eigene
Kopie der Datenbasis-Software haben.
Nimmt man nun auf Fig. 2 bezug, so umfaßt die Arbitrations-
CPU 28 ferner einen Taskinitiator 34, einen Taskterminator
36, einen Zeitgeber 38 und eine Regelaktualisiereinrichtung
40. Vorzugsweise sind diese Komponenten als Software
implementiert, können aber auch als Hardware implementiert
sein. Der Taskinitiator 34 beginnt mit der
Problemverarbeitung an dem ersten und dem zweiten
Problemelement 16 bzw. 18 und verwendet Regeln, um die
Zuweisung algorithmischer Veränderungen bzw. Variationen
zum ersten und zweiten Problemelement 16 bzw. 18 zu
bestimmen.
Der Taskterminator 36 nimmt Problemlösungsmeldungen vom
ersten und vom zweiten Problemelement 16 bzw. 18 an und
wählt die bevorzugte Antwort aus, um diese zum
Anwendungselement 12 zurückzugeben.
Nachdem ein vorbestimmtes Zeitinterval durchlaufen ist,
meldet der Zeitgeber 38 dem Taskterminator 36, daß keine
Antwort oder keine weitere Antwort vom ersten und vom
zweiten Problemelement 16 bzw. 18 empfangen wurde.
Die Regelaktualisiereinrichtung 40 setzt Regeln in
gemeinsam verwaltete Speicher 41 (z. B. Arbeitsspeicher und
einzelne Speicherelemente), die außerhalb der Arbitrations-
CPU 28 dargestellt sind. Die gemeinsam verwalteten Speicher
41 umfassen den Arbitrationsspeicher 30 und die
Arbitrations-E/A-Einrichtungen 32.
Wie aus Fig. 3 ersichtlich, umfaßt der Taskinitiator 34
eine Eingabebearbeitungstask 60, eine Statusberichttask 62,
eine Problemanalysetask 64, eine Algorithmuszuweisungstask
66 und eine Profilerzeugungstask 68. Die
Eingabebearbeitungstask 60 nimmt
Verarbeitungsaufforderungen vom Anwendungselement 12 an,
prüft und organisiert diese. Die Eingabebearbeitungstask 60
leitet diese Aufforderungen auch zu deren nächsten
Bestimmungsort innerhalb des Taskinitiators 34, und zwar
entweder zur Problemanalysetask 64 oder zur
Statusberichttask 62.
Die Statusberichttask 62 berichtet dem Anwendungselement 12
den Status von anstehenden Problemausführungstasks. Sie
berichtet jegliche erfaßte interne Fehler beim Bearbeiten
dieser Aufgabe bzw. Task und zeigt Statistiken an, die
diese Bearbeitung kennzeichnen.
Die Problemanalysetask 64 entscheidet, wie ein Problem vom
Anwendungselement zu behandeln ist. Sie kann
problemspezifische Regeln anwenden, um ein Problem zu
analysieren.
Die Algorithmuszuweisungstask 66 sendet die
unterschiedlichen algorithmischen Variationen, die durch
die Problemanalysetask 64 ausgewählt wurden, zu dem ersten
und dem zweiten Problemelement 16 bzw. 18.
Die Profilerstellungstask 68 erstellt eine abstrakte
Version eines gegebenen Problems einschließlich Abschluß-
bzw. Endbedingungen und sendet sie zum Taskterminator 36.
Wie aus Fig. 4 ersichtlich, umfaßt der Taskterminator 36
eine Eingabebearbeitungstask 70, eine Statusberichttask 72,
eine Fertigstellungs-Entscheidungstask 74, eine
Antwortkompiliertask 76 und eine Profilfertigstellungstask
78. Die Eingabebearbeitungstask 70 nimmt Verarbeitungs-
Fertigstellungsnachrichten sowohl von den Problemelementen
16 und 18 als auch Zeitintervallablauf-Nachrichten vom
Zeitgeber 38 an und überprüft und organisiert diese. Die
Eingabebearbeitungstask 70 nimmt auch Nachrichten,
beispielsweise Problemprofile vom Taskinitiator 34 an.
Die Statusberichttask 72 des Taskterminators 36 meldet dem
Anwendungselement 12 den Fertigstellungsstatus laufender
Problemverarbeitungstasks, jegliche erfaßte interne Fehler
und damit verbundene Statistiken.
Die Fertigstellungs-Entscheidungstask 74 verwendet entweder
Regeln von gemeinsam verwalteten Speichern 41 oder vom
Anwendungselement 12 gesendete Informationen, um zu
bestimmen, wann eine gegebene Problemtask abgeschlossen
werden soll.
Die Antwortkompiliertask 76 macht dem Anwendungselement 12
von der Taskfertigstellung und dem Ergebnis dieser
Fertigstellung Meldung.
Die Profilfertigstellungstask 78 aktualisiert die
Statistiken oder die beschreibenden Daten über die
fertiggestellte Task und leitet diese Informationen und das
Problemprofil zur Regelaktualisiereinrichtung 40 weiter.
Wie aus Fig. 5 ersichtlich, weist die
Regelaktualisiereinrichtung 40 eine Eingabebearbeitungstask
80, eine Statusberichttask 82 und eine Regelverwaltungstask
84 auf. Die Eingabebearbeitungstask 80 verarbeitet
Nachrichten bzw. Meldungen vom Anwendungselement 12 und vom
Taskterminator 36, wobei sie diese Nachrichten zur
Regelverwaltungstask 84 und zur Statusberichttask 82
verteilt.
Die Statusberichttask 82 meldet dem Anwendungselement 12
den Status und wechselt gemäß Regeln, die in den gemeinsam
verwalteten Speichern 41 gespeichert sind, zum
Anwendungselement 12.
Die Regelverwaltungstask 84 führt eine manuelle Verwaltung
durch, wobei vom Anwendungselement 12 gesendete Regeln
sortiert werden. Die Regelverwaltungstask 84 ändert auch
jene Regeln über eine automatische Verwaltung, wobei die
Regeln aufgrund von Taskergebnissen sortiert werden, die
mit Problemprofilen vom Taskterminator 36 gesendet wurden.
Anhand der Fig. 6 wird nun der Betrieb des Rechnersystems
10 entsprechend dem erfindungsgemäßen Verfahren in
Einzelheiten erläutert, wobei der Ablauf bei "START" 90
begonnen wird. Bei einem Block 92 erzeugt das
Anwendungselement 12 eine Problemanweisung und sendet diese
zum Arbitrationselement 14. Diese Problemanweisung könnte
eine Datenbasisabfrage oder eine heuristische Suche sein.
In einem einfachen Fall könnte ein Benutzer ein Problem oder
eine Abfrage auf der Tastatur einer Kundenmaschine
eingeben. In einem komplizierteren Fall kann die
Benutzereingabe unter Verwendung von Hart- und Software im
Anwendungselement 12 vorverarbeitet werden. Ein Beispiel
einer solchen Vorverarbeitung wäre die Umwandlung einer
Benutzerabfrage in eine Standard-Datenbasisterminologie.
Der Ausdruck "Suche" hat so, wie er in dieser Beschreibung
verwendet wird, eine allgemeine Bedeutung, die sowohl
allgemeine Begriffe wie "nach etwas sehen" als auch
feldspezifische Definitionen einschließt. Der Ausdruck kann
am ehesten dem Ausdruck "konstruktives Suchen" ähneln, wie
er bei künstlicher Intelligenz verwendet wird. Eine
konstruktive Suche ist ein "allgemeingültiger Problemlöse-
Mechanismus, bei dem die Abfolge von Aktionen, die für
Lösungen erforderlich sind, nicht im vorhinein bekannt ist,
sondern durch eine systematische, empirische Untersuchung
von Alternativen" bestimmt werden muß. Alles, was zum
Formulieren eines Suchproblems erforderlich ist, ist ein
Satz von Zuständen des Problems, eine Gruppe von
Operatoren, die den Zustand verändern können, ein
anfänglicher Zustand und eine Beschreibung des
Zielzustands. Die Task besteht dann darin, eine Abfolge von
Operatoren aufzufinden, die den anfänglichen Zustand in
einen Zielzustand überführen.
Ein wichtiger, oft vorliegender Unterschied zwischen einer
Suche mittels künstlicher Intelligenz und einer Suche, die
in anderen Bereichen der Rechner- bzw. Computerwissenschaft
durchgeführt wird, betrifft die ausdrückliche vorherige
Existenz der zu suchenden Dinge. Bei einer Datenbasissuche
liegen zum Beispiel die zu suchenden Daten üblicherweise
vor. Die zentrale Überlegung besteht darin, wie diese Daten
für ein späteres Zugreifen am besten zu organisieren sind.
Bei einer Suche mittels künstlicher Intelligenz wird die
"Problemlösung" üblicherweise erzeugt, während die Suche
fortschreitet, so daß vor dem Herausfinden der Lösung
lediglich grobe Annäherungen an das gewünschte Endergebnis
geschaffen werden können.
Eine Suche mittels künstlicher Intelligenz unterscheidet
sich auch insofern, als daß das Ziel oder der Zweck der
Suche typischerweise in sehr allgemeiner Weise ausgedrückt
wird, so daß eine breite Auswahl spezifischer Antworten
oder Antwortmuster letztendlich als "die Lösung"
herauskommen kann. Das heißt, es gibt gewöhnlich viele
mögliche alternative Lösungen. Bei einer Suche, die Teil
eines Spiel-Programms ist, könnte beispielsweise jedes
"Gewinnspiel" ein annehmbares Ziel darstellen.
Unter dem erfindungsgemäßen Verfahren können
Problemanweisungen, die zum Arbitrationselement 14 gesendet
wurden, spezifizieren, wie die konkurrierenden
Betriebsmittel zu nutzen sind. Beispielsweise könnte die
Problemanweisung anweisen, die erste Antwort entweder vom
Problemelement 16 oder 18 zurückzugeben, welches das
Problem auch immer zuerst löst, oder die Problemanweisung
könnte anweisen, in irgendeiner vorgeschriebenen Art und
Weise die beste Antwort zurückzugeben, die innerhalb einer
vorgegeben Zeitdauer aufgefunden wird.
Schreitet man zu einem Block 94 fort, so erzeugt das
Arbitrationselement 14 algorithmische Variationen, um das
Problem zu lösen.
Bei einem Block 96 sendet das Arbitrationselement 14 die
Problemanweisung und eine algorithmische Variation sowohl
zu dem ersten als auch zu dem zweiten Problemelement 16
bzw. 18 und startet den Zeitgeber 38.
Beim Block 96 versucht sowohl das erste als auch das zweite
Problemelement 16 bzw. 18 das Problem in seiner
vorgeschriebenen Weise zu lösen. Das erste Problemelement 16
versucht, das Problem unter Verwendung der ersten
algorithmischen Variation zu lösen, und gibt eine Lösung
zum Arbitrationselement 14 zurück, während das zweite
Problemelement 18 versucht, das Problem unter Verwendung
der zweiten algorithmischen Variation zu lösen.
Bei einem Block 98 wartet die Arbitrations-CPU 28 auf eine
vorbestimmte Kombination von Antworten vom ersten und vom
zweiten Problemelement 16 bzw. 18 sowie vom Zeitgeber 38.
Bei einem Block 99 bestimmt das Verfahren, ob zumindest
eine Lösung innerhalb der zugewiesenen Zeit zurückgegeben
wurde. Wenn keines der Problemelemente 16 oder 18 eine
Lösung fertigstellt, ermöglicht der Zeitgeber 38 des
Arbitrationselements 14 es dem Arbitrationselement 14, in
einem Block 100 eine Fehlerantwort zum Anwendungselement 12
zurückzugeben, und das Verfahren endet bei einem Block 109.
Wenn zumindest eines der Problemelemente 16 oder 18 eine
Lösung zurückgegeben hat, dann schreitet das Verfahren zu
einem Block 102 fort.
Beim Block 102 bestimmt das Arbitrationselement 14, ob
eines oder ob beide der Problemelemente 16 bzw. 18 eine
Lösung zurückgegeben haben. Falls nur ein Problemelement
das Problem in der zugeteilten Zeit gelöst hat, dann gibt
das Arbitrationselement 14 diese Lösung bei einem Block 104
zum Anwendungselement 12 zurück und das Verfahren schreitet
zu einem Block 108 fort. Falls die Problembeschreibung nach
einer Rückgabe der ersten gefundenen Lösung fragt, dann
wird diese durch das Arbitrationselement 14 zu diesem
Zeitpunkt zum Anwendungselement 12 zurückgegeben und die
auf dem verbleibenden Problemelement laufende Task wird
annulliert.
Falls beide Problemelemente 16 bzw. 18 das Problem in der
zugeteilten Zeit lösen, dann kann das Arbitrationselement
14 bei einem Block 106 entsprechend einer bevorzugten
Anweisung, so wie diese durch die Problemanweisung
vorgeschrieben ist, entweder beide Lösungen oder lediglich
eine der Lösungen zum Anwendungselement 12 zurückgeben.
Bei einem Block 108 empfängt und verarbeitet das
Anwendungselement 12 die Lösung und das Verfahren endet.
Das Anwendungselement 12 kann die Lösung im
Anwendungsspeicher 22 abspeichern, die Lösung auf der
Anwendungsanzeige 26 anzeigen oder die Lösung in andere
Anwendungs-E/A-Einrichtungen einschreiben.
Zusätzlich sei angemerkt, daß das Anwendungselement 12 mit
dem Arbitrationselement 14 über den Fortschritt größerer
Jobs sowie über den allgemeinen Zustand oder die
Wirksamkeit der internen Tasks des Arbitrationselements 14
in einen Dialog treten kann. Zu diesem Zweck weist jedes
der drei internen Taskelemente (Initiator 34, Terminator 36
und Regelaktualisiereinrichtung 40) seine eigene
Statusbericht-Subtask (siehe Fig. 7-9) auf. Für das
Anwendungselement 12 kann es auch erforderlich sein,
Aktualisierungen der Regeln durchzuführen, die durch den
Taskinitiator 34 verwendet werden, beispielsweise wenn neue
Tabellen zu einer Datenbasis hinzugefügt werden.
Bei einem Block 109 endet das Verfahren.
In Fig. 7 wird der Betrieb des Taskinitiators 34 in
genaueren Einzelheiten dargestellt, wobei der Ablauf bei
"START" 110 beginnt. Bei einem Block 112 wartet der
Taskinitiator 34 auf eine Eingabe vom Anwendungselement 12.
Beim einem Block 114 nimmt der Taskinitiator 34 eine
Eingabenachricht vom Anwendungselement 12 an. Vom
Anwendungselement 12 durch das Arbitrationselement 14
empfangene Problemanweisungen werden zum Verarbeiten durch
die Eingabebearbeitungstask 60 in einer Warteschlange
eingereiht. (Das eigentliche Einreihen in die Warteschlange
kann durch Betriebssystem-Software durchgeführt werden, wie
dies typischerweise für Mehrfach-Anwendungstasks bei
Rechnersystemen des Standes der Technik durchgeführt wird).
Bei einem Block 116 bestimmt der Taskinitiator 34, ob die
Nachricht eine Statusanfrage ist. Einfache
Statusberichttasks werden durch die Statusberichttask 62
gehandhabt. Antworten zu Statusberichten werden direkt zum
Anwendungselement 12 zurückgegeben. Falls die Nachricht
eine Statusanfrage ist, erzeugt der Taskinitiator 34 bei
einem Block 118 einen Eingabestatusbericht und gibt eine
Statusnachricht bei einem Block 120 zum Anwendungselement
12 zurück. Bei einem Block 121 springt das Verfahren zum
START 110 zurück.
Geht man noch einmal vom Block 116 aus, so verwendet der
Taskinitiator 34 dann, falls die Nachricht keine
Statusanforderung ist, Regeln, die aus dem
Arbitrationsspeicher 30 oder den anderen Arbitrations-E/A-
Einrichtungen 32 ausgelesen werden, um bei einem Block 122
zu entscheiden, welche Regeln für das erste und für das
zweite Problemelement 16 bzw. 18 zu verwenden sind. Die
Problemanalysetask 64 entscheidet, wie das Problem im
allgemeinen zu behandeln ist - zum Beispiel, welcher Satz
von Regeln beim Analysieren des Problems anzuwenden ist.
Die Problemanalysetask 64 führt dann eine genaue Analyse
aus, um die algorithmischen Variationen zu ermitteln, die
am ersten und die am zweiten Problemelement 16 bzw. 18 zu
versuchen sind. Beispielsweise können die Regeln
Erklärungen sein, wie "Falls das Problem die Verbindung von
drei Tabellen in einer Datenbasis erfordert, dann startet
das erste Problemelement 16, wobei die ersten zwei Tabellen
zuerst zu verbinden sind, und startet das zweite
Problemelement 18, wobei die letzten beiden Tabellen zuerst
zu verbinden sind".
Bei einem Block 124 startet der Taskinitiator 34 den
Zeitgeber 38 über die Algorithmuszuweisungstask 66.
Bei einem Block 126 sendet die Algorithmuszuweisungstask 66
die verschiedenen algorithmischen Variationen mit der
Problemanweisung zum ersten und zum zweiten Problemelement
16 bzw. 18 und startet das erste und das zweite
Problemelement 16 bzw. 18 gleichzeitig mit dem Start des
Zeitgebers 38.
Bei einem Block 128 erzeugt der Taskinitiator 34 eine
Problemprofilnachricht. Diese Problemprofilnachricht
identifiziert das Problem, zeigt an, daß mit der
Problemlösung durch das erste und das zweite Problemelement
16 bzw. 18 begonnen wurde, und teilt dem Taskterminator 36
mit, auf welche Weise zu entscheiden ist, wann eine Antwort
zum Anwendungselement 12 zurückzugeben ist. Zum Beispiel
könnte eine Problemprofilnachricht dem Taskterminator 36
anzeigen, daß die erste Lösung ausreicht, die von einem der
Problemelemente empfangen wird.
Bei einem Block 130 sendet die Profilerstellungstask 68 die
Problemprofilnachricht, die diese Information enthält, zum
Taskterminator 36, ehe bei einem Block 132 zum START 110
zurückgesprungen wird.
In den Fig. 8A-C ist der Betrieb des Taskterminators 36 in
Einzelheiten dargestellt, wobei der Ablauf bei "START" 140
beginnt. Bei einem Block 142 wartet der Taskterminator 36
auf eine Eingabe vom Taskinitiator 34, vom Zeitgeber 38,
vom ersten und vom zweiten Problemelement 16 bzw. 18 oder
vom Anwendungselement 12.
Bei einem Block 144 nimmt der Taskterminator 36 eine
Eingabenachricht an. Die Eingabenachricht kann eine
Problemprofilanweisung vom Taskinitiator 34, eine
Lösungsnachricht vom ersten und vom zweiten Problemelement 16
bzw. 18 oder eine Zeitüberschreitungs- (time out-)
Nachricht vom Zeitgeber 38 sein. Alle derartigen
Nachrichten werden zum Verarbeiten durch die
Eingabebearbeitungstask 70 in eine Warteschlange
eingereiht. Problemprofilanweisungen werden in den
gemeinsam verwalteten Speichern 41 für eine spätere
Steuerung der Problembeendigung oder für eine
Statusberichterstellung abgespeichert.
Deshalb bestimmt das Verfahren bei Blöcken 146-152 die Art
der Eingabenachricht. Nachrichten vom ersten und vom
zweiten Problemelement 16 bzw. 18 oder vom Zeitgeber 38
werden durch die Fertigstellungs-Entscheidungstask 74
gesichert, falls vor der Zeit auftreten, zu der sie
verarbeitet werden können (beispielsweise, falls sie dem
Empfang der passenden Problemprofilanweisung vorausgehen)
oder falls entschieden wurde, daß die Problemfertigstellung
ein späteres Ereignis abwarten soll (beispielsweise, wenn
konkurrierende Lösungen verglichen werden sollen).
Falls die Nachricht beim Block 146 eine Statusanfrage vom
Anwendungselement 12 ist, schreitet das Verfahren deshalb
zu einem Block 154 fort, bei dem der Taskterminator 36
einen Eingabestatusbericht erzeugt. Bei einem Block 156
gibt der Taskterminator 36 eine Nachricht zum
Anwendungselement 12 zurück, bevor bei einem Block 158 zum
START 140 zurückgesprungen wird.
Falls die Nachricht beim Block 148 eine
Zeitüberschreitungsnachricht vom Zeitgeber 38 ist,
protokolliert das Verfahren die Zeitüberschreitung bei
einem Block 160, bevor zu Block 162 fortgeschritten wird,
um das Verfahren der Fig. 8B-C auszuführen.
Falls die Nachricht beim Block 150 eine
Problemprofilanweisung vom Taskinitiator 34 ist,
protokolliert das Verfahren das Profil bei einem Block 164,
bevor es zu Block 166 fortschreitet, um das Verfahren der
Fig. 8B-C auszuführen.
Falls die Nachricht beim Block 152 eine Problemlösung vom
ersten Problemelement 16 darstellt, protokolliert das
Verfahren die Lösung bei einem Block 168, bevor es zu einem
Block 170 fortschreitet, um das Verfahren der Fig. 8B-C
auszuführen.
Falls das Verfahren einen Block 155 erreicht, muß die
Nachricht eine Lösung vom zweiten Problemelement 18
darstellen. Bei einem Block 155 protokolliert das Verfahren
die Lösung, bevor es zu einem Block 172 fortschreitet, um
das Verfahren der Fig. 8B-C auszuführen.
Unter bezug auf Fig. 8B entscheidet der Taskterminator 36
bei einem Block 174, ob ein Profil bereits für die
Problemanweisung protokolliert wurde. Wenn dieser
entscheidet, daß kein Profil protokolliert wurde, kehrt das
Verfahren bei einem Block 186 zum START 140 (Fig. 8A)
zurück.
Falls der Taskterminator 36 entscheidet, daß das Profil
protokolliert wurde, bestimmt er bei einem Block 176, ob
auch eine Zeitüberschreitung für die Problemanweisung
protokolliert wurde. Falls dies so ist, markiert der
Taskterminator 36 bei einem Block 188 die Problemanweisung
als "fertiggestellt" und das Verfahren schreitet bei einem
Block 190 zu Fig. 8C fort.
Falls keine Zeitüberschreitung protokolliert wurde,
bestimmt der Taskterminator 36 bei einem Block 178, ob auf
Lösungen von sowohl dem ersten als auch dem zweiten
Problemelement 16 bzw. 18 zu warten ist. Falls dies so ist,
bestimmt der Taskterminator 36 bei einem Block 192, ob
beide Lösungen protokolliert wurden. Falls nicht, springt
das Verfahren bei einem Block 194 zum START 140 zurück.
Bejahendenfalls markiert der Taskterminator 36 bei einem
Block 196 die Problemanweisung als "fertiggestellt" und das
Verfahren schreitet bei einem Block 198 zu Fig. 8C fort.
Geht man zum Block 178 zurück, so bestimmt der
Taskterminator 36, falls er entscheidet, nicht auf beide
Lösungen zu warten, bei einem Block 180, ob er die Lösung
vom ersten Problemelement 16 protokolliert hat. Falls dies
der Fall ist, markiert der Taskterminator 36 bei einem
Block 200 die Problemanweisung als "fertiggestellt" und das
Verfahren schreitet bei einem Block 202 zu Fig. 8C fort.
Falls der Taskterminator 36 entscheidet, daß er die Lösung
vom ersten Problemelement 16 nicht protokolliert hat, dann
entscheidet er bei einem Block 182, ob er die Lösung vom
zweiten Problemelement 18 protokolliert hat. Falls dies so
ist, markiert der Taskterminator 36 bei einem Block 204 die
Problemanweisung als "fertiggestellt" und das Verfahren
schreitet bei einem Block 206 zu Fig. 8C fort.
Falls der Taskterminator 36 entscheidet, daß er die Lösung
vom zweiten Problemelement 18 nicht protokolliert hat, dann
springt das Verfahren bei einem Block 184 zum START 140
zurück.
In Fig. 8C wählt der Taskterminator 36 bei einem Block 208
eine zurückzugebende Antwort aus, die auf den Daten
basiert, die für die Problemanweisung protokolliert wurden.
Bei einem Block 210 gibt der Taskterminator 36 die
ausgewählte Antwort an das Anwendungselement 12 zurück.
Wenn die Problemfertigstellung auf eine logische Weise
gemäß entweder den Regeln oder der durch das
Anwendungselement 12 gesendeten Information als ein Teil
der Problemanweisung bestimmt wurde, dann leitet die
Fertigstellungs-Entscheidungstask 74 die sachdienliche
Probleminformation zu der Antwortkompiliertask 76. Diese
Task ist dafür verantwortlich, dem Anwendungselement 12
zusammen mit dem Liefern einer geeigneten Beschreibung der
favorisierten Lösung, die vorgesehen wurde, von der
Fertigstellung Meldung zu machen. So wie dies bei den
anderen Subtasks des Taskterminators 36 ist, aktualisiert
auch die Antwortkompiliertask 76 den Status dieses Problems
und des Rechnersystems.
Bei einem Block 212 stellt der Taskterminator 36 das Profil
für die Problemanweisung aufgrund der ausgewählten Antwort
fertig.
Bei einem Block 214 sendet der Taskterminator 36 das Profil
zur Regelaktualisiereinrichtung 40. Die
Profilfertigstellungstask 78 aktualisiert die Statistiken
oder die beschreibenden Daten darüber, wie das Problem
gelöst wurde, und leitet das Profil mit den Ergebnissen für
dieses Problem an die Regelaktualisiereinrichtung 40
weiter.
Bei einem Block 216 springt das Verfahren zum START 140
zurück.
In Fig. 9 wird der Betrieb der Regelaktualisiereinrichtung
40 in genaueren Einzelheiten dargestellt, wobei der Ablauf
bei "START" 220 beginnt. Bei einem Block 222 wartet die
Regelaktualisiereinrichtung 40 auf eine Eingabe vom
Anwendungselement 12 oder vom Taskterminator 36.
Bei einem Block 224 nimmt die Regelaktualisiereinrichtung
40 eine Eingangsnachricht an. Die Eingabebearbeitungstask
80 verarbeitet in Warteschlange eingereihte Nachrichten vom
Anwendungselement 12 und vom Taskterminator 36.
Bei einem Block 226 bestimmt die
Regelaktualisiereinrichtung 40, ob die Nachricht eine
Statusanfrage vom Anwendungselement 12 ist. Falls dies so
ist, erzeugt die Regelaktualisiereinrichtung 40 einen
Regelstatusbericht bei einem Block 228. Die
Statusberichtanfragen werden zur Statusberichttask 82
weitergeleitet, die dazu bestimmt ist, dem
Anwendungselement 12 diesen Service zu bieten. Die
Statusberichttask 82 benutzt die gemeinsam verwalteten
Speicher 41, um Informationen über gespeicherte Regeln zu
liefern.
Bei einem Block 230 gibt die Regelaktualisiereinrichtung 40
die Statusnachricht an das Anwendungselement 12 zurück,
bevor bei einem Block 232 zum START 220 zurückgesprungen
wird.
Wieder vom Block 226 ausgehend, bestimmt die
Regelaktualisiereinrichtung 40 bei einem Block 234, falls
die Nachricht keine Statusanfrage ist, ob die Nachricht
eine Regelverwaltungsanfrage vom Anwendungselement 12 ist.
Die Regelverwaltungstask 84 kann eine "manuelle" Verwaltung
auf die Anfrage des Benutzers (über das Anwendungselement
12) oder eine "automatische" Verwaltung durchführen, um
Regeln abhängig von der Effektivität der momentanen Regeln
zu ändern, und zwar auf Informationen basierend, die durch
den Taskterminator 36 zurückgegeben wurden.
Bei einem Block 236 werden die Regelverwaltungsanfragen zur
Regelverwaltungstask 84 weitergeleitet, die gemeinsam
verwaltete Speicher 41 verwendet, um die Regeln, wie in der
Nachricht gefordert, zu ändern.
Bei einem Block 238 kehrt das Verfahren zum START 220
zurück.
Kehrt man zum Block 234 zurück, dann verwendet die
Regelaktualisiereinrichtung 40, falls die Nachricht keine
Regelverwaltungsanfrage ist, die Problemprofilanweisung vom
Taskterminator 36, um die Regeln bei einem Block 240
anzupassen. Die Regelaktualisiereinrichtung 40 kann die
Regeln verändern, falls dies gewünscht ist, und zwar
aufgrund der Ergebnisse der von den Arbitrations-E/A-
Einheiten 32 empfangenen Eingaben, und speichert ihre
Ergebnisse in den gemeinsam verwalteten Speichern 41 ab.
Zum Beispiel könnte die vorstehend beschriebene Regel für
"Datenbasisverbindungen" variiert werden, und zwar so, daß
für einen gegebenen Satz von Tabellen ein Problemelement
eine Lösung erstellen soll, anstelle die erste und die
letzte Tabelle zuerst zu verbinden.
Bei einem Block 242 springt das Verfahren zum START 220
zurück.
Mit Hilfe der vorstehenden detaillierten Beschreibung der
Betriebsabfolgen werden Fachleute in der Lage sein, ihre
eigene geeignete Software zum Betreiben eines
Parallelverarbeitungsrechners gemäß der hierin
vorgestellten Lehren zu schreiben. Demzufolge ist es nicht
erforderlich, die Einzelheiten einer solchen Software
hierin zu beschreiben. Die Software kann in jeder
geeigneten Programmiersprache geschrieben werden,
beispielsweise in einer maschinenorientierten
Programmiersprache, wie der Assembliersprache, oder in
einer höheren Programmiersprache, wie "C".
Claims (10)
1. Verfahren zum Verwenden eines
Parallelverarbeitungsrechners zum Lösen eines vorbestimmten
Problems,
gekennzeichnet durch
den Schritt des gleichzeitigen Ausführens verschiedener und
konkurrierender Prozeduren zum Lösen des Problems.
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet,
daß der Schritt des Ausführens folgende Unterschritte
aufweist:
Formulieren des Problems durch ein Anwendungsprogramm,
Erzeugen der konkurrierenden Prozeduren aus der Formulierung des Problems und bereits bestehenden Regeln und
Starten der Ausführung der konkurrierenden Prozeduren.
Formulieren des Problems durch ein Anwendungsprogramm,
Erzeugen der konkurrierenden Prozeduren aus der Formulierung des Problems und bereits bestehenden Regeln und
Starten der Ausführung der konkurrierenden Prozeduren.
3. Verfahren nach Anspruch 2,
gekennzeichnet durch
die Schritte:
Überwachen jeder konkurrierenden Prozedur für eine Lösung,
Beenden der Ausführung von beiden konkurrierenden Prozeduren, nachdem eine erste Lösung erzeugt wurde, und Zurückgeben der ersten Lösung zum Anwendungsprogramm.
Überwachen jeder konkurrierenden Prozedur für eine Lösung,
Beenden der Ausführung von beiden konkurrierenden Prozeduren, nachdem eine erste Lösung erzeugt wurde, und Zurückgeben der ersten Lösung zum Anwendungsprogramm.
4. Verfahren nach Anspruch 2 oder 3,
gekennzeichnet durch
die Schritte:
Starten eines Zeitgebers zu Beginn der Ausführung, Überwachen jeder Prozedur für eine Lösung, Zurückgeben einer der Lösungen zum
Anwendungsprogramm, falls nach einer vorbestimmten Zeitdauer mehr als eine Lösung durch die konkurrierenden Prozeduren erzeugt wurde, und
Beenden der Ausführung beider konkurrierender Prozeduren, falls beide konkurrierende Prozeduren keine Lösung erzeugen.
Starten eines Zeitgebers zu Beginn der Ausführung, Überwachen jeder Prozedur für eine Lösung, Zurückgeben einer der Lösungen zum
Anwendungsprogramm, falls nach einer vorbestimmten Zeitdauer mehr als eine Lösung durch die konkurrierenden Prozeduren erzeugt wurde, und
Beenden der Ausführung beider konkurrierender Prozeduren, falls beide konkurrierende Prozeduren keine Lösung erzeugen.
5. Verfahren nach einem der vorhergehenden Ansprüche,
gekennzeichnet durch
die Schritte:
Überwachen der Ausführung der konkurrierenden Prozeduren zum Erhalten einer Information über die Wirksamkeit der konkurrierenden Prozeduren, und zum Ändern der konkurrierenden Prozeduren aufgrund der Information.
Überwachen der Ausführung der konkurrierenden Prozeduren zum Erhalten einer Information über die Wirksamkeit der konkurrierenden Prozeduren, und zum Ändern der konkurrierenden Prozeduren aufgrund der Information.
6. Verfahren nach einem der vorhergehenden Ansprüche,
dadurch gekennzeichnet,
daß das Problem darin besteht, eine Gruppe von Daten zu suchen, und
daß die konkurrierenden Prozeduren Suchprozeduren sind.
daß das Problem darin besteht, eine Gruppe von Daten zu suchen, und
daß die konkurrierenden Prozeduren Suchprozeduren sind.
7. Verfahren nach Anspruch 6,
dadurch gekennzeichnet,
daß der Schritt des Ausführens die folgenden Unterschritte aufweist:
Formulieren eines Suchproblems durch ein Datenverwaltungs-Anwendungsprogramm,
Erzeugen der konkurrierenden Suchprozeduren aufgrund der Formulierung des Suchproblems und bereits bestehender Regeln und
Beginnen der Ausführung der konkurrierenden Prozeduren.
daß der Schritt des Ausführens die folgenden Unterschritte aufweist:
Formulieren eines Suchproblems durch ein Datenverwaltungs-Anwendungsprogramm,
Erzeugen der konkurrierenden Suchprozeduren aufgrund der Formulierung des Suchproblems und bereits bestehender Regeln und
Beginnen der Ausführung der konkurrierenden Prozeduren.
8. Parallelverarbeitungs-Rechnersystem mit einem
Anwendungselement, das eine erste Verarbeitungseinheit zum
Ausführen eines Anwendungsprogramms umfaßt,
gekennzeichnet durch
ein erstes Problemelement (16), das eine zweite Verarbeitungseinheit (44) zum Lösen eines durch das Anwendungsprogramm erzeugten Problems auf eine erste Art und Weise einschließt,
ein zweites Problemelement (18), das eine dritte Verarbeitungseinheit (50) zum Lösen des durch das Anwendungselement (12) erzeugten Problems auf eine zweite Art und Weise aufweist, die sich von der ersten Art und Weise unterscheidet, zu dieser konkurriert und gleichzeitig zu dieser ausgeführt wird, und
ein Arbitrationselement (14), das eine vierte Verarbeitungseinheit (28) für eine Arbitrationswechselwirkung zwischen der ersten Verarbeitungseinheit (20) und der zweiten und dritten Verarbeitungseinheit (44, 50) und zum Erzeugen der ersten und der zweiten Art und Weise zum Lösen des durch das Anwendungsprogramm erzeugten Problems aufweist.
ein erstes Problemelement (16), das eine zweite Verarbeitungseinheit (44) zum Lösen eines durch das Anwendungsprogramm erzeugten Problems auf eine erste Art und Weise einschließt,
ein zweites Problemelement (18), das eine dritte Verarbeitungseinheit (50) zum Lösen des durch das Anwendungselement (12) erzeugten Problems auf eine zweite Art und Weise aufweist, die sich von der ersten Art und Weise unterscheidet, zu dieser konkurriert und gleichzeitig zu dieser ausgeführt wird, und
ein Arbitrationselement (14), das eine vierte Verarbeitungseinheit (28) für eine Arbitrationswechselwirkung zwischen der ersten Verarbeitungseinheit (20) und der zweiten und dritten Verarbeitungseinheit (44, 50) und zum Erzeugen der ersten und der zweiten Art und Weise zum Lösen des durch das Anwendungsprogramm erzeugten Problems aufweist.
9. Rechnersystem nach Anspruch 8,
dadurch gekennzeichnet,
daß die vierte Verarbeitungseinheit (28) Einrichtungen (34)
zum Einleiten des Problemlösens durch die zweite und die
dritte Verarbeitungseinheit (16, 18), eine Einrichtung (38)
zum Geben einer vorbestimmten Zeitdauer von der Einleitung
der Problemlösung an und eine Einrichtung (36) zum Beenden
der Problemlösung durch die zweite und die dritte zentrale
Verarbeitungseinheit (44, 50) aufweist.
10. Rechnersystem nach Anspruch 8 oder 9,
dadurch gekennzeichnet,
daß das Arbitrationselement (14) eine Einrichtung (40) zum
Überwachen der Problemlösung durch die zweite und die
dritte Verarbeitungseinheit (44, 50) und zum Ändern der
ersten und der zweiten Art und Weise zum Lösen des Problems
während der Ausführung der ersten und der zweiten Art und
Weise aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8270593A | 1993-06-28 | 1993-06-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4422637A1 true DE4422637A1 (de) | 1995-01-05 |
Family
ID=22172896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4422637A Withdrawn DE4422637A1 (de) | 1993-06-28 | 1994-06-28 | Rechnersystem und Verfahren zum Problemlösen |
Country Status (3)
Country | Link |
---|---|
US (1) | US5689631A (de) |
JP (1) | JPH07152788A (de) |
DE (1) | DE4422637A1 (de) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3702546B2 (ja) * | 1996-08-23 | 2005-10-05 | ブラザー工業株式会社 | 多機能周辺装置および記憶媒体 |
US6684346B2 (en) * | 2000-12-22 | 2004-01-27 | Intel Corporation | Method and apparatus for machine check abort handling in a multiprocessing system |
JP4152611B2 (ja) * | 2001-09-13 | 2008-09-17 | 株式会社日立製作所 | 経営改革のための対策案立案支援方法およびそのためのシステム |
JP2005339237A (ja) * | 2004-05-27 | 2005-12-08 | Aruze Corp | アプリケーション利用補助システム |
US7533384B2 (en) * | 2004-05-27 | 2009-05-12 | International Business Machines Corporation | Job routing to earliest available resources in a parallel job scheduler |
WO2007037384A1 (ja) * | 2005-09-30 | 2007-04-05 | Ipflex Inc. | 自己同期型の処理ユニットを有するシステム |
US20070174290A1 (en) * | 2006-01-19 | 2007-07-26 | International Business Machines Corporation | System and architecture for enterprise-scale, parallel data mining |
JP4119945B2 (ja) * | 2006-08-24 | 2008-07-16 | ネットクリアスシステムズ株式会社 | タスク処理装置 |
JP5451498B2 (ja) * | 2009-07-17 | 2014-03-26 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法およびプログラム |
JP2018194900A (ja) * | 2017-05-12 | 2018-12-06 | 富士通株式会社 | 情報処理装置、情報処理プログラムおよび情報処理方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3133715A1 (de) * | 1980-08-26 | 1982-04-08 | ITALTEL Società Italiana Telecomunicazioni S.p.A., 20149 Milano | "schaltunganordnung zwischen einem hilfsrechner und einem paar von rechnern" |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4876643A (en) * | 1987-06-24 | 1989-10-24 | Kabushiki Kaisha Toshiba | Parallel searching system having a master processor for controlling plural slave processors for independently processing respective search requests |
US4992935A (en) * | 1988-07-12 | 1991-02-12 | International Business Machines Corporation | Bit map search by competitive processors |
US5197002A (en) * | 1989-12-22 | 1993-03-23 | Bell Communications Research, Inc. | Methods and apparatus for dynamic hashing |
US5243607A (en) * | 1990-06-25 | 1993-09-07 | The Johns Hopkins University | Method and apparatus for fault tolerance |
US5325525A (en) * | 1991-04-04 | 1994-06-28 | Hewlett-Packard Company | Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time |
JPH06131312A (ja) * | 1992-01-23 | 1994-05-13 | Hitachi Ltd | 並行処理方法およびシステム |
-
1994
- 1994-06-24 JP JP6142081A patent/JPH07152788A/ja active Pending
- 1994-06-28 DE DE4422637A patent/DE4422637A1/de not_active Withdrawn
-
1995
- 1995-07-17 US US08/502,942 patent/US5689631A/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3133715A1 (de) * | 1980-08-26 | 1982-04-08 | ITALTEL Società Italiana Telecomunicazioni S.p.A., 20149 Milano | "schaltunganordnung zwischen einem hilfsrechner und einem paar von rechnern" |
Also Published As
Publication number | Publication date |
---|---|
JPH07152788A (ja) | 1995-06-16 |
US5689631A (en) | 1997-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69322538T2 (de) | Methode und Prozessor zur Bearbeitung eines Programmes in Parallelbearbeitung | |
DE69423076T2 (de) | Verteiltes Datenbankverarbeitungssystem | |
DE10039538B4 (de) | Vorrichtung und Verfahren zum Analysieren der Leistung eines Computerprogramms | |
DE19728726B4 (de) | Robotercontroller und dessen Steuerverfahren | |
DE69225851T2 (de) | Stimmverarbeitungsschnittstelle für einen Rechner | |
DE3911465C2 (de) | Verfahren zur automatischen Konfiguration technischer Systeme aus Komponenten | |
DE68924061T2 (de) | Versionskontrolle in einem Datenverarbeitungssystem. | |
DE10003015A1 (de) | Die Erzeugung von Ereignis-Bedingungs-Aktions-Regeln aus Prozessmodellen | |
EP0346801A2 (de) | Verfahren und Anordnung zur Ausführung eines Programms in einem heterogenen Mehrrechnersystem | |
DE69223979T2 (de) | Fuzzy-züruckgewinnungsgerät und verfahren dafür | |
DE60211452T2 (de) | DMA-Übertragung von Daten und Prüfinformation zu und von einem Datenspeicherungsgerät | |
DE60303413T2 (de) | Verfahren und computersystem zum reduzieren von ausführungszeiten bei der materialbedarfsplanung | |
DE69814697T2 (de) | Vorrichtung, methode und computer programm produkt für client/server rechner mit vom client auswählbarer lokalisierung von transaktionsobjekten | |
DE4422637A1 (de) | Rechnersystem und Verfahren zum Problemlösen | |
DE69518453T2 (de) | Verfahren und System zum Dynamischen Auswählen eines Kommunikationsmodus | |
DE3750045T2 (de) | Unterbrechungssteuerungsvorrichtung für eine virtuelle Maschine mit einer Vielzahl von Verarbeitungseinheiten. | |
DE69224718T2 (de) | Klassifizierungsverfahren für Rechnerarchitekturen | |
DE3854323T2 (de) | Jobsteuerung für Online-System. | |
DE3650158T2 (de) | Sonderzweckprozessor zur Übernahme vieler Betriebssystemfunktionen in einem grossen Datenverarbeitungssystem. | |
DE60217729T2 (de) | Verfahren zum erkennen eines elektronischen geräts in einem mehrfachsteuersystem | |
DE69729440T2 (de) | Prozessorssystem | |
DE3876823T2 (de) | System zur verschliessungsverhuetung einer relationalen datenbank. | |
DE69221373T2 (de) | Prozessor und Verfahren für unscharfe Schlussfolgerung, und Verfahren und Anordnung zur Regelbestimmung | |
DE69226683T2 (de) | Verfahren zum effizienten Zugriff von Daten in einer Verknüpfungstabelle | |
EP3705993B1 (de) | System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: NCR INTERNATIONAL, INC. (N.D.GES.D.STAATES DELAWAR |
|
8128 | New person/name/address of the agent |
Representative=s name: V. BEZOLD & SOZIEN, 80799 MUENCHEN |
|
8120 | Willingness to grant licences paragraph 23 | ||
8139 | Disposal/non-payment of the annual fee |