DE102012204167A1 - Advance approximated calculations - Google Patents
Advance approximated calculations Download PDFInfo
- Publication number
- DE102012204167A1 DE102012204167A1 DE102012204167A DE102012204167A DE102012204167A1 DE 102012204167 A1 DE102012204167 A1 DE 102012204167A1 DE 102012204167 A DE102012204167 A DE 102012204167A DE 102012204167 A DE102012204167 A DE 102012204167A DE 102012204167 A1 DE102012204167 A1 DE 102012204167A1
- Authority
- DE
- Germany
- Prior art keywords
- group
- engines
- processing engines
- processing
- calculations
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Abstract
Es werden Mechanismen zum Durchführen genäherter vorauslaufender Berechnungen bereitgestellt. Eine erste Gruppe von Bearbeitungs-Engines wird aus dem Bestand von Bearbeitungs-Engines ausgewählt, um vollständige Berechnungen an einem vollständigen Satz von Eingangsdaten durchzuführen. Eine zweite Gruppe von Bearbeitungs-Engines wird ausgewählt, um Berechnungen an einem Probeteilsatz der Eingangsdaten auszuführen. Eine dritte Gruppe von Bearbeitungs-Engines wird ausgewählt, um einen Unterschied der Berechnungsergebnisse zwischen ersten, durch die erste Gruppe von Bearbeitungs-Engines erzeugten Berechnungsergebnissen und zweiten, durch die zweite Gruppe von Bearbeitungs-Engines erzeugten Berechnungsergebnissen zu bestimmen. Die zweite Gruppe von Bearbeitungs-Engines wird auf der Grundlage des durch die dritte Gruppe von Bearbeitungs-Engines erzeugten Unterschieds neu eingerichtet.Mechanisms are provided for performing approximate preliminary calculations. A first group of processing engines is selected from the pool of processing engines to perform complete calculations on a complete set of input data. A second group of processing engines is selected to perform calculations on a sample subset of the input data. A third group of processing engines is selected to determine a difference in the calculation results between first calculation results generated by the first group of processing engines and second calculation results generated by the second group of processing engines. The second group of processing engines is re-established based on the difference created by the third group of processing engines.
Description
Die vorliegende Anmeldung betrifft allgemein eine verbesserte Vorrichtung und ein Verfahren zur Datenverarbeitung sowie spezifischer Mechanismen zur Bereitstellung vorauslaufender genäherter Berechnungen.The present application relates generally to an improved data processing apparatus and method, as well as specific mechanisms for providing prior approximate calculations.
Ein paralleles Computersystem ist ein Computersystem mit mehr als einem Prozessor zur parallelen Bearbeitung von Aufgaben. Ein paralleles Programm ist ein Programm, das aus einer oder mehreren Tätigkeiten bestehen kann, die in Aufgaben aufgeteilt werden können, die durch eine Vielzahl von Prozessoren parallel ausgeführt werden können. Durch parallele Programme können die Aufgaben bei einiger Koordination zwischen den Prozessoren gleichzeitig auf mehreren Prozessoren ausgeführt werden, um Ergebnisse schneller zu erhalten.A parallel computer system is a computer system with more than one processor for parallel processing of tasks. A parallel program is a program that can consist of one or more activities that can be split into tasks that can be performed in parallel by a plurality of processors. Parallel programs allow the tasks of some co-ordination between processors to be performed concurrently on multiple processors to get results faster.
Für die Bereitstellung paralleler Computersysteme gibt es viele unterschiedliche Ansätze. Beispiele einiger Arten paralleler Computersysteme sind Mehrfachbearbeitungssysteme, Computer-Cluster-Systeme, parallele Supercomputer-Systeme, verteilte Computersysteme, Gittercomputersysteme und Ähnliche. Diese parallelen Computersysteme werden üblicherweise durch die Art der Verbindung zwischen den Prozessoren und dem Speicher unterschieden. Eine der anerkanntesten Klassifizierungen paralleler Computersysteme teilt parallele Computersysteme danach ein, ob alle Prozessoren dieselben Anweisungen ausführen, d. h. eine Anweisung/mehrere Daten (single instruction/multiple data SIMD), oder ob jeder Prozessor unterschiedliche Anweisungen ausführt, d. h. mehrere Anweisungen/mehrere Daten (multiple instruction/multiple data MIMD).There are many different approaches to providing parallel computer systems. Examples of some types of parallel computer systems are multi-processing systems, computer cluster systems, parallel supercomputer systems, distributed computer systems, grid computer systems, and the like. These parallel computer systems are usually distinguished by the nature of the connection between the processors and the memory. One of the most widely recognized classifications of parallel computer systems parallels parallel computer systems according to whether all processors execute the same instructions, i. H. one instruction / multiple data (single instruction / multiple data SIMD), or whether each processor is executing different instructions, i. H. multiple instructions / multiple data (multiple instruction / multiple data MIMD).
Eine andere Art der Klassifizierung paralleler Computersysteme beruht auf deren Speicherarchitekturen. Parallele Computersysteme mit gemeinsam genutztem Speicher verfügen über mehrere Prozessoren, die auf sämtliche verfügbaren Speicher als globaler Adressraum zugreifen. Diese Computersysteme mit gemeinsam genutztem Speicher können weiter in Systeme mit einheitlichem Speicherzugriff (uniform memory access UMA), bei denen die Zugriffszeiten auf alle Teile des Speichers gleich sind, und in Systems mit nichteinheitlichem Speicherzugriff (non-uniform memory access NUMA) eingeteilt werden, bei denen die Zugriffszeiten auf alle Teile des Speichers nicht gleich sind. Eine weitere Kategorie, parallele Computersysteme mit verteiltem Speicher, stellt auch ein paralleles Computersystem bereit, bei dem mehrere Prozessoren verwendet werden, von denen jedoch jeder nur auf seinen eigenen lokalen Speicher zugreifen kann, d. h., zwischen ihnen ist kein globaler Speicheradressraum vorhanden. Bei einem weiteren momentan dominierenden Typ paralleler Computersysteme handelt es sich um eine Kombination der oben genannten Systeme, bei der Knoten des Systems über eine gewisse Menge an gemeinsam genutztem Speicherplatz für eine kleine Anzahl von Prozessoren verfügen, viele dieser Knoten jedoch miteinander in einem parallelen System mit verteiltem Speicher verbunden sind.Another way of classifying parallel computer systems is based on their memory architectures. Shared shared memory computer systems have multiple processors that access all available memory as a global address space. These shared memory computer systems may be further classified into uniform memory access (UMA) systems where access times are common to all parts of the memory and non-uniform memory access (NUMA) systems which access times to all parts of the memory are not the same. Another category, parallel distributed memory computer systems, also provides a parallel computer system that uses multiple processors, but each of which can access only its own local memory; that is, there is no global memory address space between them. Another currently dominating type of parallel computer systems is a combination of the above systems in which nodes of the system have a certain amount of shared memory space for a small number of processors, but many of these nodes coexist in a parallel system distributed memory are connected.
Bei einigen parallelen Computersystemen wird die Schnittstelle zur Weiterleitung von Nachrichten (Message Passing Interface) für die Kommunikation und Koordination der durch eine Vielzahl von Computer- oder Verarbeitungseinheiten parallel durchgeführten Arbeitslasten verwendet. Bei der Schnittstelle zur Weiterleitung von Nachrichten (MPI) handelt es sich um eine sprachunabhängige beschreibende Schnittstelle zur Anwendungsprogrammierung (application programming interface API) für den Datenaustausch zwischen Computern, die der Weiterleitung von Nachrichten auf gemeinsam genutztem Speicher oder parallelen Computersystemen mit verteiltem Speicher dient. Bei der MPI wird üblicherweise eine parallele Anwendung in Form einer oder mehrerer Tätigkeiten bereitgestellt, die dann in Aufgaben aufgeteilt werden, die in paralleler Weise auf einer Vielzahl von Prozessoren einer oder mehrerer Computereinheiten bearbeitet werden können. Die MPI stellt den Prozessoren eine Kommunikations-API bereit, mit der sie untereinander bezüglich der Bearbeitung dieser Tätigkeiten Daten austauschen können.In some parallel computer systems, the Message Passing Interface is used to communicate and coordinate the workloads performed in parallel by a plurality of computing or processing units. The Message Routing Interface (MPI) is a language-independent descriptive application programming interface (API) for inter-computer communication that is used to route messages to shared memory or parallel distributed storage computer systems. The MPI typically provides a parallel application in the form of one or more activities, which are then split into tasks that can be processed in parallel on a plurality of processors of one or more computer units. The MPI provides the processors with a communication API with which they can exchange data with each other regarding the processing of these activities.
Die Verwendung paralleler Computersysteme zur Bearbeitung großer analytischer Arbeitslasten wie z. B. der Gesichtserkennung, der Analyse von Wetter- oder Verkehrsbedingungen, der biologische Sequenzanalyse, der Analyse von Internetdatenverkehr, der Analyse von Dokumentenablagen (document warehouses), vielfältigen Anwendungen des Data-Mining oder beliebigen anderen Arten großer analytischer Arbeitslasten wird im heutigen Informationszeitalter immer wichtiger. Wie erkennbar ist, ist die Menge von Daten, an denen derartige Analysen vorgenommen werden, relativ groß und nimmt kontinuierlich zu. Auch mit den durch parallele Computersysteme ermöglichten Geschwindigkeitszuwächsen wird die Durchführung von Analysen an vollständigen Datensätzen bereits durch die reine Größe der zu analysierenden Daten im Hinblick auf Zielkosten und Leistung relativ unpraktisch.The use of parallel computer systems to handle large analytical workloads such as: For example, facial recognition, weather or traffic analysis, biological sequence analysis, Internet traffic analysis, document warehouses, multiple applications of data mining, or any other type of large analytical workload is becoming increasingly important in today's information age , As can be seen, the amount of data on which such analyzes are made is relatively large and continually increasing. Even with the speed increases made possible by parallel computer systems, the mere fact that the data is to be analyzed in terms of target costs and performance makes the analysis of complete data sets relatively impractical.
ZUSAMMENFASSUNGSUMMARY
In einer veranschaulichenden Ausführungsform wird in einem Datenverarbeitungssystem ein Verfahren zur Durchführung genäherter vorauslaufender Berechnungen bereitgestellt. Das Verfahren umfasst das Auswählen einer ersten Gruppe von Bearbeitungs-Engines (Bearbeitungsfunktionseinheiten) aus einem Bestand von Bearbeitungs-Engines zur Durchführung vollständiger Berechnungen an einem vollständigen Satz von Eingangsdaten. Das Verfahren umfasst weiterhin das Auswählen einer zweiten Gruppe von Bearbeitungs-Engines aus einem Bestand von Bearbeitungs-Engines, um Berechnungen an einem Probeteilsatz der Eingangsdaten durchzuführen. Das Verfahren umfasst zudem das Auswählen einer dritten Gruppe von Bearbeitungs-Engines aus dem Bestand von Bearbeitungs-Engines, um einen Unterschied der Berechnungsergebnisse zwischen ersten, durch die erste Gruppe von Bearbeitungs-Engines erzeugten Berechnungsergebnissen und zweiten, durch die zweite Gruppe von Bearbeitungs-Engines erzeugten Berechnungsergebnissen zu berechnen. Darüber hinaus umfasst das Verfahren ein Neueinrichten der zweiten Gruppe von Bearbeitungs-Engines auf der Grundlage des durch die dritte Gruppe von Bearbeitungs-Engines erzeugten Unterschieds.In an illustrative embodiment, a method for performing approximate leading calculations is provided in a data processing system. The method includes selecting a first group of processing engines from a set of processing engines to perform more complete ones Calculations on a complete set of input data. The method further includes selecting a second group of processing engines from a stock of processing engines to perform calculations on a trial subset of the input data. The method further includes selecting a third group of processing engines from the inventory of processing engines to determine a difference of the computation results between first computation results generated by the first group of processing engines and the second, by the second group of processing engines calculate generated calculation results. In addition, the method includes re-establishing the second group of processing engines based on the difference generated by the third group of processing engines.
In weiteren veranschaulichenden Ausführungsformen wird ein Computerprogrammprodukt bereitgestellt, das einen von Computern verwendbaren oder computerlesbaren Datenträger mit einem computerlesbaren Programm umfasst. Das computerlesbare Programm veranlasst bei Ausführung auf einer Computereinheit die Computereinheit dazu, vielfältige sowie Kombinationen der oben erläuterten Operationen in Hinblick auf die veranschaulichende Ausführungsform des Verfahrens durchzuführen.In other illustrative embodiments, a computer program product is provided that includes a computer usable or computer readable medium having a computer readable program. The computer readable program, when executed on a computer unit, causes the computer unit to perform various and combinations of the above-discussed operations with respect to the illustrative embodiment of the method.
In noch einer weiteren Ausführungsform wird ein System/eine Vorrichtung bereitgestellt. Das System/die Vorrichtung kann einen oder mehrere Prozessoren und einen mit dem einen oder den mehreren Prozessoren verbundenen Speicher umfassen. Der Speicher kann Anweisungen umfassen, die bei Ausführung auf dem einem oder den mehreren Prozessoren den einen oder die mehreren Prozessoren dazu veranlassen, vielfältige sowie Kombinationen der oben erläuterten Operationen in Hinblick auf die veranschaulichende Ausführungsform des Verfahrens durchzuführen.In yet another embodiment, a system / apparatus is provided. The system / device may include one or more processors and memory coupled to the one or more processors. The memory may include instructions that, when executed on the one or more processors, cause the one or more processors to perform various and combinations of the above-discussed operations with respect to the illustrative embodiment of the method.
In einem Aspekt betrifft die Erfindung ein Verfahren in einem Datenverarbeitungssystem zur Durchführung genäherter vorauslaufender Berechnungen, wobei das Verfahren Folgendes umfasst: Auswählen einer ersten Gruppe von Bearbeitungs-Engines aus einem Bestand von Bearbeitungs-Engines, um vollständige Berechnungen an einem vollständigen Satz von Eingangsdaten durchzuführen; Auswählen einer zweiten Gruppe von Bearbeitungs-Engines aus einem Bestand von Bearbeitungs-Engines, um Berechnungen an einem Probeteilsatz der Eingangsdaten durchzuführen; Auswählen einer dritten Gruppe von Bearbeitungs-Engines aus dem Bestand von Bearbeitungs-Engines, um einen Unterschied der Berechnungsergebnisse zwischen ersten, durch die erste Gruppe von Bearbeitungs-Engines erzeugten Berechnungsergebnissen und zweiten, durch die zweite Gruppe von Bearbeitungs-Engines erzeugten Berechnungsergebnissen zu berechnen; und Neueinrichten der zweiten Gruppe von Bearbeitungs-Engines auf der Grundlage des durch die dritte Gruppe von Bearbeitungs-Engines erzeugten Unterschieds.In one aspect, the invention relates to a method in a data processing system for performing approximate leading calculations, the method comprising: selecting a first group of processing engines from a stock of processing engines to perform full calculations on a complete set of input data; Selecting a second group of processing engines from a stock of processing engines to perform calculations on a trial subset of the input data; Selecting a third group of processing engines from the inventory of processing engines to calculate a difference of the calculation results between first calculation results generated by the first group of processing engines and second calculation results generated by the second group of processing engines; and re-establishing the second group of processing engines based on the difference generated by the third group of processing engines.
Nach einer Ausführungsform der Erfindung umfasst der Bestand von Bearbeitungs Engines mindestens ein Element aus einem Bestand von Prozessoren, einem Bestand funktionaler Einheiten innerhalb eines oder mehrerer Prozessoren, einem Bestand von Datenverarbeitungseinheiten, wobei jede Datenverarbeitungseinheit einen oder mehrere Prozessoren oder einen Bestand von zweckbestimmten Beschleunigern umfasst, die eine bestimmte Art von Berechnung beschleunigen.According to one embodiment of the invention, the inventory of processing engines comprises at least one of a set of processors, a set of functional units within one or more processors, a collection of data processing units, each computing unit comprising one or more processors or a stock of dedicated accelerators. which accelerate a certain kind of calculation.
Nach einer Ausführungsform der Erfindung umfasst die zweite Gruppe von Bearbeitungs-Engines eine Anzahl von Bearbeitungs Engines, deren Anzahl kleiner als eine Anzahl von Bearbeitungs-Engines in der ersten Gruppe von Bearbeitungs Engines ist.According to one embodiment of the invention, the second group of processing engines comprises a number of processing engines, the number of which is smaller than a number of processing engines in the first group of processing engines.
Nach einer Ausführungsform der Erfindung führt die zweite Gruppe von Bearbeitungs-Engines die Berechnungen in einer vorauslaufenden Weise aus, so dass die Daten, an denen die zweite Gruppe von Bearbeitungs-Engines arbeitet, Daten umfassen, deren Position sich in der Reihenfolge im Datensatz relativ weiter hinten befindet als Daten, an denen die erste Gruppe von Bearbeitungs-Engines arbeitet.According to an embodiment of the invention, the second group of processing engines executes the computations in a leading manner so that the data on which the second group of processing engines operates includes data whose position progresses relatively further in the order in the data set located at the back as data on which the first group of editing engines is working.
Nach einer Ausführungsform der Erfindung umfasst das Neueinrichten der zweiten Gruppe von Bearbeitungs-Engines das Erhöhen einer Anzahl von Bearbeitungs-Engines in der zweiten Gruppe von Bearbeitungs-Engines.According to one embodiment of the invention, re-establishing the second group of processing engines includes increasing a number of processing engines in the second group of processing engines.
Nach einer Ausführungsform der Erfindung umfasst das Neueinrichten der zweiten Gruppe von Bearbeitungs-Engines weiterhin ein Erhöhen des Umfangs des Probeteildatensatzes aus dem Satz von Eingangsdaten, an dem die zweite Gruppe von Bearbeitungs-Engines arbeitet.According to an embodiment of the invention, re-establishing the second group of processing engines further comprises increasing the size of the sample part data set from the set of input data on which the second group of processing engines is operating.
In einem weiteren Aspekt betrifft die Erfindung ein Computerprogrammprodukt, das ein computerlesbares Speichermedium mit einem darauf gespeicherten computerlesbaren Programm aufweist, wobei das computerlesbare Programm bei Ausführung auf einer Computereinheit die Computereinheit zu Folgendem veranlasst: Auswählen einer ersten Gruppe von Bearbeitungs-Engines aus einem Bestand von Bearbeitungs-Engines, um vollständige Bearbeitungen an einem vollständigen Satz von Eingangsdaten durchzuführen; Auswählen einer zweiten Gruppe von Bearbeitungs-Engines aus dem Bestand von Bearbeitungs-Engines, um Bearbeitungen an einem Probeteilsatz der Eingangsdaten durchzuführen; Auswählen einer dritten Gruppe von Bearbeitungs-Engines aus dem Bestand von Bearbeitungs-Engines, um einen Unterschied der Berechnungsergebnisse zwischen ersten, durch die erste Gruppe von Bearbeitungs-Engines erzeugten Berechnungsergebnissen und zweiten, durch die zweite Gruppe von Bearbeitungs-Engines erzeugten Berechnungsergebnissen zu berechnen; und Neueinrichten der zweiten Gruppe von Bearbeitungs-Engines auf der Grundlage des durch die dritte Gruppe von Bearbeitungs-Engines erzeugten Unterschieds.In a further aspect, the invention relates to a computer program product comprising a computer readable storage medium having a computer readable program stored thereon, the computer readable program, when executed on a computer unit, causing the computer unit to: select a first group of edit engines from a stock of edit Engines to perform full edits on a complete set of input data; Select a second set of editing engines from the inventory of editing engines to edits to perform a trial subset of the input data; Selecting a third group of processing engines from the inventory of processing engines to calculate a difference of the calculation results between first calculation results generated by the first group of processing engines and second calculation results generated by the second group of processing engines; and re-establishing the second group of processing engines based on the difference generated by the third group of processing engines.
Nach einer Ausführungsform der Erfindung umfasst der Bestand von Bearbeitungs-Engines mindestens eines von Folgendem: ein Bestand von Prozessoren, ein Bestand funktionaler Einheiten innerhalb eines oder mehrerer Prozessoren, ein Bestand von Datenverarbeitungseinheiten, wobei jede Datenverarbeitungseinheit einen oder mehrere Prozessoren oder einen Bestand von zweckbestimmten Beschleunigern umfasst, die eine bestimmte Art von Berechnung beschleunigen.According to one embodiment of the invention, the inventory of processing engines comprises at least one of: a stock of processors, a stock of functional units within one or more processors, a population of data processing units, each data processing unit having one or more processors or a stock of dedicated accelerators which accelerate a particular type of calculation.
Nach einer Ausführungsform der Erfindung umfasst die zweite Gruppe von Bearbeitungs-Engines eine Anzahl von Bearbeitungs-Engines, deren Anzahl kleiner als die Anzahl von Bearbeitungs-Engines in der ersten Gruppe von Bearbeitungs-Engines ist.According to one embodiment of the invention, the second group of processing engines comprises a number of processing engines, the number of which is smaller than the number of processing engines in the first group of processing engines.
Nach einer Ausführungsform der Erfindung führt die zweite Gruppe von Bearbeitungs-Engines die Berechnungen in einer vorauslaufenden Weise aus, so dass die Daten, an denen die zweite Gruppe von Bearbeitungs-Engines arbeitet, Daten umfassen, deren Position sich in der Reihenfolge im Datensatz relativ weiter hinten befindet als Daten, an denen die erste Gruppe von Bearbeitungs-Engines arbeitet.According to an embodiment of the invention, the second group of processing engines executes the computations in a leading manner so that the data on which the second group of processing engines operates includes data whose position progresses relatively further in the order in the data set located at the back as data on which the first group of editing engines is working.
Nach einer Ausführungsform der Erfindung veranlasst das computerlesbare Programm die Computereinheit dazu, die zweite Gruppe von Bearbeitungs-Engines durch das Erhöhen einer Anzahl von Bearbeitungs-Engines in der zweiten Gruppe von Bearbeitungs-Engines neu einzurichten.According to one embodiment of the invention, the computer-readable program causes the computer unit to re-set the second group of processing engines by incrementing a number of processing engines in the second group of processing engines.
Nach einer Ausführungsform der Erfindung veranlasst das computerlesbare Programm die Computereinheit dazu, die zweite Gruppe von Bearbeitungs-Engines weiterhin durch ein Erhöhen des Umfangs des Probeteildatensatzes aus dem Satz von Eingangsdaten, an dem die zweite Gruppe von Bearbeitungs-Engines arbeitet, neu einzurichten.According to one embodiment of the invention, the computer-readable program causes the computer unit to re-set the second group of processing engines by increasing the size of the sample data record from the set of input data on which the second group of processing engines is operating.
Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung werden angesichts der folgenden detaillierten Beschreibung der beispielhaften Ausführungsformen der vorliegenden Erfindung beschrieben oder werden für den Fachmann daraus ersichtlich.These and other features and advantages of the present invention will be described in light of the following detailed description of the exemplary embodiments of the present invention, or will be apparent to those skilled in the art.
KURZE BESCHREIBUNG DER MEHREREN ZEICHNUNGSANSICHTENBRIEF DESCRIPTION OF THE SEVERAL DRAWING VIEWS
Die Erfindung sowie eine bevorzugte Verwendungsart und weitere Ziele und Vorteile werden am besten unter Bezug auf die folgende detaillierte Beschreibung veranschaulichender Ausführungsformen in Verbindung mit den begleitenden Zeichnungen deutlich, in denen:The invention as well as a preferred mode of use and further objects and advantages will be best understood by reference to the following detailed description of illustrative embodiments in conjunction with the accompanying drawings, in which:
DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION
Die veranschaulichenden Ausführungsformen stellen Mechanismen zur Bereitstellung vorauslaufender genäherter Berechnungen bereit. Die Mechanismen der veranschaulichenden Ausführungsformen koordinieren schnelle (immer vorauslaufende) genäherte Berechnungen, die durch einen ersten Satz von Datenverarbeitungseinheiten durchgeführt werden, mit herkömmlichen analytischen Berechnungen an einem vollständigen Datensatz, die durch einen zweiten Satz von Datenverarbeitungseinheiten durchgeführt werden. Die Mechanismen der veranschaulichenden Ausführungsformen führen eine solche Koordination durch Einsatz von Genauigkeit, Vertrauensbereichen und Geschwindigkeit zwischen den beiden Sätzen von Datenverarbeitungseinheiten durch, so dass die kombinierten Ergebnisse von beiden für die Analyse annehmbar sind.The illustrative embodiments provide mechanisms for providing preliminary approximate calculations. The mechanisms of the illustrative embodiments coordinate fast (always preprocessing) approximate calculations performed by a first set of computing devices with conventional analytic calculations on a complete data set performed by a second set of computing devices. The mechanisms of the illustrative embodiments perform such coordination through the use of accuracy, confidence intervals, and speed between the two sets of computing devices so that the combined results of both are acceptable for analysis.
Mit den Mechanismen der veranschaulichenden Ausführungsformen wird eine relativ große Gruppe (I) von Bearbeitungs-Engines, z. B. Datenverarbeitungseinheiten, Prozessoren innerhalb einer oder mehrerer Datenverarbeitungseinheiten oder Ähnliches dazu verwendet, eine herkömmliche Berechnung mit vollständigen Eingangsdaten zu bewältigen. Eine zweite, relativ kleine Gruppe (J) von Bearbeitungs-Engines wird dazu verwendet, Berechnungen an Probedaten mit vorauslaufender Berechnung durchzuführen. Das bedeutet in einer beispielhaften Ausführungsform, dass analytische Arbeitslasten beispielsweise durch die Verwendung von Schleifen mit großen Iterationssätzen dieselben Berechnungen an einer großen Datenmenge durchführen können. Die erste Gruppe (I) durchläuft die Iterationen der Schleife auf normale Weise beginnend mit einem ersten Iterationswert und führt (entsprechend der Schrittweite der Schleife) bei jeder Iteration Berechnungen durch. Die zweite Gruppe (J) nimmt Stichproben der Iterationen und führt die Berechnungen in vorauslaufender Weise durch, d. h. Berechnungen von Schleifeniterationen werden vor dem Zeitpunkt durchgeführt, an dem sie normalerweise durchgeführt werden würden, wenn die Schleife bezüglich Wiederholungen und Schrittweite der Schleife in sequentieller Weise ausgeführt werden würde. With the mechanisms of the illustrative embodiments, a relatively large group (I) of processing engines, e.g. As data processing units, processors within one or more data processing units or the like used to cope with a conventional calculation with complete input data. A second, relatively small group (J) of machining engines is used to perform calculations on sample data with pre-computation. That is, in an exemplary embodiment, analytical workloads can perform the same calculations on a large amount of data by, for example, using loops with large iteration sets. The first group (I) iterates through the iterations of the loop in the normal manner, starting with a first iteration value and performs calculations (corresponding to the loop increment) in each iteration. The second group (J) takes samples of the iterations and performs the calculations in advance, that is, calculations of loop iterations are made prior to the time they would normally be performed when the loop was executed in terms of repetitions and step size of the loop in a sequential manner would become.
Eine weitere, relativ kleine Gruppe (K) von Bearbeitungs-Engines wird dazu verwendet, Unterschiede zwischen den Ergebnissen der erzeugten Berechnungen der Gruppe (I) und (J) zu prüfen und festzuhalten, wenn die Berechnungen der ersten Gruppe (I) zur Startiteration der durch die zweite Gruppe (J) bewältigten Arbeitslast aufholen. Auf der Grundlage dieser Unterschiede oder Deltas kann eine Engine zur Analysekoordination vielfältige Operationen zur Planung und Neueinrichtung der ersten und zweiten Gruppe von Bearbeitungs-Engines (I) und (J) durchführen.Another relatively small group (K) of processing engines is used to check and record differences between the results of the group (I) and (J) calculations generated when the calculations of the first group (I) at the start iteration of the catching up with the workload managed by the second group (J). Based on these differences or deltas, an analysis coordination engine can perform a variety of operations for planning and redesigning the first and second group of processing engines (I) and (J).
Zum Beispiel kann der Analysekoordinator auf der Grundlage der Unterschiede zwischen den von der ersten Gruppe (I) und der zweiten Gruppe (J) erhaltenen Ergebnissen die Anzahl der Bearbeitungs-Engines in der zweiten Gruppe (J) und die Anzahl von Proben des durch die erhöhte Anzahl von Bearbeitungs-Engines in der zweiten Gruppe (J) bearbeiteten vollständigen Datensatzes neu einrichten, um so den Unterschied (Delta) zwischen den von der ersten Gruppe (I) und der zweiten Gruppe (J) erhaltenen Ergebnissen zu verringern, so dass der Unterschied innerhalb einer zuvor festgelegten Toleranz liegt. Der verringerte Unterschied (Delta) zwischen den Ergebnissen wird erreicht, indem mehreren Prozessoren in J innerhalb desselben Berechnungszeitraums erlaubt wird, an der erhöhten Anzahl von Datenproben zu arbeiten. Auf diese Weise wird die Genauigkeit der durch die zweite Gruppe (J), d. h. die vorauslaufenden Bearbeitungs-Engines, erzeugten Näherung innerhalb einer annehmbaren Toleranz gehalten, so dass die Ergebnisse der vorauslaufenden Bearbeitungs-Engines dazu verwendet werden können, die Berechnung für einen Satz von Iterationen der Gesamtanalyse des großen Datensatzes näherungsweise zu bestimmen. Diese genäherten Berechnungen werden mit den durch die erste Gruppe von Bearbeitungs-Engines (J) durchgeführten analytischen Berechnungen kombiniert, um genäherte Berechnungen zur Analyse für einen großen Satz von Eingangsdaten bereitzustellen.For example, the analysis coordinator may, based on the differences between the results obtained from the first group (I) and the second group (J), increase the number of processing engines in the second group (J) and the number of samples of the same Reorganize the number of processing engines in the second group (J) of the edited whole record so as to reduce the difference (delta) between the results obtained by the first group (I) and the second group (J), so that the difference within a predetermined tolerance. The reduced difference (delta) between the results is achieved by allowing multiple processors in J within the same calculation period to work on the increased number of data samples. In this way, the accuracy of the second group (J), d. H. the leading processing engines, kept approximation within an acceptable tolerance, so that the results of the leading processing engines can be used to approximate the computation for a set of iterations of the overall analysis of the large data set. These approximate calculations are combined with the analytical calculations performed by the first group of processing engines (J) to provide approximate calculations for analysis for a large set of input data.
Falls eine nächste Phase der analytischen Berechnungen vorhanden ist, d. h. eine nachfolgende Phase, die die Ergebnisse der aktuellen Phase verwendet, können darüber hinaus im Falle, dass der Unterschied zwischen den durch die zweite Gruppe (J) und die erste Gruppe (I) durchgeführten Berechnungen innerhalb der zuvor festgelegten Toleranz liegt, die Ergebnisse der aktuellen Phase der durch die zweite Gruppe (J) vorgenommenen analytischen Berechnungen zur Verwendung durch den Algorithmus in die nächste Berechnungsphase eingespeist werden, während die Berechnungen durch die erste Gruppe (I) noch laufen, d. h. bevor die Berechnungen durch die erste Gruppe (I) abgeschlossen sind. Auf diese Weise wird die Geschwindigkeit der Berechnung erhöht, indem ein Mechanismus zur vorauslaufenden Durchführung von Berechnungsphasen bereitgestellt wird.If there is a next phase of the analytical calculations, d. H. Further, in a case where the difference between the calculations performed by the second group (J) and the first group (I) is within the predetermined tolerance, a subsequent phase using the results of the current phase may be the results of the current one Phase of the analytical calculations made by the second group (J) for use by the algorithm are fed to the next calculation phase while the calculations by the first group (I) are still running, d. H. before the calculations by the first group (I) are completed. In this way, the speed of the calculation is increased by providing a mechanism for performing computation phases in advance.
In einem weiteren Beispiel kann im Falle, dass die Engine zur Analysekoordination feststellt, dass der Unterschied zwischen den Ergebnissen der Berechnung der ersten und zweiten Gruppe (I) und (J) größer als die zuvor festgelegte Toleranz ist, eine teilweise Neuberechnung in einer nächsten Ausführungsphase durchgeführt werden. Dies führt im Wesentlichen für die durch die zweite Gruppe (J) von Bearbeitungs-Engines durchgeführten Berechnungen eine Rückabwicklung (rollback) durch. Die teilweise Neuberechnung wird mit einer erhöhten Anzahl von Bearbeitungs-Engines in der zweiten Gruppe (J) und einer erhöhten Datenmenge, d. h. einer größeren Anzahl von Datenproben aus den Eingangsdaten, durchgeführt.In another example, in the event that the analysis coordination engine determines that the difference between the results of the first and second group calculations (I) and (J) is greater than the predetermined tolerance, a partial recalculation may occur in a next execution phase be performed. This essentially rewindbacks the calculations made by the second group (J) of processing engines. The partial recalculation is done with an increased number of processing engines in the second group (J) and an increased amount of data, i. H. a larger number of data samples from the input data.
In noch einem weiteren Beispiel kann die Engine zur Analysekoordination feststellen, dass der Vertrauensbereich der Genauigkeit der durch die zweite Gruppe (J) von Bearbeitungs-Engines durchgeführten Berechnungen höher als eine zuvor festgelegte Schwelle ist. Wenn dies der Fall ist, kann die Engine zur Analysekoordination die erste Gruppe (I) von Bearbeitungs-Engines anweisen oder anderweitig veranlassen, Teile ihrer Berechnungen, z. B. die verbleibenden Wiederholungen, in denen die erste Gruppe (I) Berechnungen durchführen soll, zu überspringen. Da dann die Näherung der durch die erste Gruppe (J) erzeugten Berechnung hinreichend genau ist, bedeutet dies, dass keine Notwendigkeit mehr besteht, die Berechnung in jeder durch die erste Gruppe (I) von Bearbeitungs-Engines durchgeführten Wiederholung fortzusetzen.In yet another example, the analysis coordination engine may determine that the confidence interval of the accuracy of the calculations performed by the second group (J) of processing engines is higher than a predetermined threshold. If so, the analysis coordination engine may instruct or otherwise cause the first group (I) of processing engines to share some of their computations, e.g. For example, the remaining repeats in which the first group (I) is to perform calculations must be skipped. Then, the approximation of the calculation produced by the first group (J) suffices is exact, this means that there is no need to continue the calculation in each repetition performed by the first group (i) of processing engines.
Wie für den Fachmann ersichtlich, kann die vorliegende Erfindung als System, Verfahren, oder Computerprogrammprodukt ausgeführt werden. Dementsprechend können Aspekte der vorliegenden Erfindung in Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder in einer Ausführungsform ausgebildet sein, die Software- und Hardware-Aspekte kombiniert, was hierin sämtlich allgemein als „Schaltkreis”, „Modul” oder „System” bezeichnet sein kann. Weiterhin können Aspekte der vorliegenden Erfindung in Form eines Computerprogrammprodukts ausgebildet sein, das in einem oder mehreren beliebigen computerlesbaren Datenträgern mit darauf befindlichem von Computern verwendbarem Programmcode enthalten sein kann.As will be apparent to those skilled in the art, the present invention may be embodied as a system, method, or computer program product. Accordingly, aspects of the present invention may be embodied as a complete hardware embodiment, a complete software embodiment (including firmware, resident software, microcode, etc.) or in an embodiment that combines software and hardware aspects, all herein generally may be referred to as a "circuit", "module" or "system". Further, aspects of the present invention may be embodied as a computer program product that may be included in one or more computer-readable media having computer-usable program code thereon.
Jede Kombination aus einem oder mehreren computerlesbaren Datenträger(n) kann verwendet werden. Bei dem computerlesbaren Datenträger kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei dem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein System, eine Vorrichtung, eine Einheit elektronischer, magnetischer, optischer, elektromagnetischer oder Infrarot oder Halbleiter verwendender Art sowie eine beliebige geeignete Kombination des zuvor Genannten handeln. Zu spezielleren Beispielen für das computerlesbare Speichermedium können folgende gehören (nicht erschöpfende Liste): eine elektrische Verbindung mit einer oder mehreren Leitungen, eine transportable Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (random access memory (RAM)), ein schreibgeschützter Speicher (read-only memory (ROM)), ein löschbarer programmierbarer schreibgeschützter Speicher (erasable programmable read-only memory (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein transportabler schreibgeschützter Compact-Disk-Speicher (CDROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des zuvor Genannten. Im Kontext dieses Dokuments kann es sich bei einem computerlesbaren Speichermedium um jedes physisch greifbare Medium handeln, das ein Pragramm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen beinhalten oder speichern kann.Any combination of one or more computer-readable media (s) may be used. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. For example, but not limited to, the computer-readable storage medium may be a system, device, electronic, magnetic, optical, electromagnetic, or infrared or semiconductor-using device, and any suitable combination of the foregoing. More specific examples of the computer-readable storage medium may include (non-exhaustive list): an electrical connection with one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory ( read-only memory (ROM)), an erasable programmable read-only memory (erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable read-only compact disk (CDROM), an optical storage unit, a magnetic storage In the context of this document, a computer readable storage medium may be any physically tangible medium that is a program for use by or in connection with a system, apparatus, or instruction execution unit include or r can save.
Ein computerlesbares Signalmedium kann ein Ausbreitungsdatensignal beinhalten, das den computerlesbaren Programmcode zum Beispiel in einem Basissignal (baseband) oder als Teil eines Trägersignals (carrier wave) enthält. Solch ein Ausbreitungssignal kann in jeder beliebigen einer Vielzahl von Formen ausgebildet sein, darunter, jedoch nicht beschränkt, elektromagnetische, optische oder jede geeignete Kombination davon. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen übertragen, verbreiten oder transportieren kann.A computer readable signal medium may include a propagation data signal containing the computer readable program code in, for example, a baseband signal or as part of a carrier wave. Such a propagation signal may be formed in any of a variety of forms, including, but not limited to, electromagnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may transmit, propagate, or transport a program for use by or in connection with a system, apparatus, or unit for executing instructions.
Der in einem computerlesbaren Datenträger enthaltene Computercode kann mittels eines beliebigen geeigneten Mediums einschließlich, aber nicht beschränkt auf kabellose, kabelgebundene, Lichtwellenleiterkabel, Hochfrequenz (HF) usw. oder einer beliebigen Kombination davon übertragen werden.The computer code contained in a computer-readable medium may be transmitted by any suitable means including, but not limited to, wireless, wired, fiber optic, radio frequency (RF), etc., or any combination thereof.
Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder beliebigen Kombination einer oder mehrerer Programmiersprachen, darunter eine objektorientierte Programmiersprache wie JavaTM, SmalltalkTM, C++ oder Ähnliche und herkömmliche verfahrensorientierte Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen, geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten (remote) Computer oder vollständig auf einem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede Art von Netzwerk, darunter ein Nahbereichsnetzwerk (local area network LAN) oder ein Weitbereichsnetzwerk (wide area network WAN), verbunden sein, oder es kann eine Verbindung zu einem externen Computer (zum Beispiel mittels eines Internetdienstanbieters über das Internet) hergestellt werden.Computer program code for performing operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java ™ , Smalltalk ™ , C ++ or the like and conventional procedural programming languages such as the "C" programming language or similar programming languages , The program code may be executed entirely on the user's computer, partly on the user's computer, as a standalone software package, partly on the user's computer and partly on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or wide area network (WAN), or may be connected to an external computer (for example, via an Internet service provider over the Internet) are produced.
Aspekte der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf Abbildungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den veranschaulichenden Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen der Ablaufpläne und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Darstellungen der Ablaufpläne und/oder den Blockschaubildern durch Computerprogrammanweisungen ausgeführt werden kann. Diese Computerprogrammanweisungen können einem Prozessor eines universellen Computers, eines zweckbestimmten Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen erzeugen.Aspects of the present invention are described below with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to the illustrative embodiments of the invention. It is understood that each block of the flowchart illustrations and / or block diagrams, as well as combinations of blocks in the flowchart illustrations and / or block diagrams, may be executed by computer program instructions. These computer program instructions may be a universal computer processor, a dedicated computer or any other programmable data processing device to generate a machine so that the instructions that are executed via the processor of the computer or other programmable data processing device include means for executing in the block or blocks of the flowchart and / or block diagram generate specified functions / actions.
Diese Computerprogrammanweisungen können auch in einem computerlesbaren Datenträger gespeichert sein, der einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anleiten kann, auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Datenträger gespeicherten Anweisungen einen Herstellungsartikel einschließlich Anweisungen erzeugen, welche die im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubilds angegebenen Funktionen/Handlungen ausführen.These computer program instructions may also be stored in a computer readable medium that may direct a computer, other programmable computing device, or other entities to function in a particular manner so that the instructions stored in the computer readable medium produce an article of manufacture, including instructions corresponding to those described in U.S. Pat Block or functions / actions specified in the blocks of the flowchart and / or block diagram.
Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten auszuführenden Operationsschritten hervorzurufen, um einen auf dem Computer ausgeführten Prozess so zu erzeugen, dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zur Ausführung der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubilds angegebenen Funktionen/Handlungen bereitstellen.The computer program instructions may also be loaded onto a computer, other programmable computing device, or other device to cause a series of operations to be performed on the computer, the other programmable device, or the other devices to generate a process performed on the computer the instructions executed on the computer or other programmable device provide processes for executing the functions / actions specified in the block or blocks of the flowchart and / or block diagram.
Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und die Arbeitsweise möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß vielfältiger Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block im Ablaufplan oder den Blockschaubildern für ein Modul, ein Segment oder einen Codebereich stehen, der eine oder mehrere ausführbare Anweisungen zur Ausführung der angegebenen logischen Funktion oder Funktionen umfasst. Es soll zudem angemerkt werden, dass bei einigen alternativen Ausführungen die im Block angegeben Funktionen in anderer Reihenfolge als der in den Figuren angegebenen auftreten können. Zum Beispiel können zwei aufeinander folgend abgebildete Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal abhängig von der betreffenden Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaubilder und/oder Abbildungen von Ablaufplänen und Kombinationen von Blöcken in den Blockschaubildern und/oder Abbildungen von Ablaufplänen durch zweckbestimmte hardwaregestützte Systeme oder Kombinationen von zweckbestimmter Hardware und Computeranweisungen ausgeführt werden kann, welche die angegebenen Funktionen oder Handlungen ausführen.The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or code region that includes one or more executable instructions for performing the specified logical function or functions. It should also be noted that in some alternative embodiments, the functions specified in the block may occur in a different order than that indicated in the figures. For example, two consecutively mapped blocks may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order depending on the functionality involved. It is also noted that each block of block diagrams and / or illustrations of flowcharts and combinations of blocks in the block diagrams and / or flowchart illustrations may be executed by dedicated hardware based systems or combinations of dedicated hardware and computer instructions having the stated functions or acts To run.
Somit können die veranschaulichenden Ausführungsformen in vielen unterschiedlichen Arten von Datenverarbeitungsumgebungen einschließlich verteilter Datenverarbeitungsumgebungen, einer einzelnen Datenverarbeitungseinheit oder Ähnlichem verwendet werden. Um einen Rahmen für die Beschreibung der spezifischen Elemente und Funktionen der veranschaulichenden Ausführungsformen bereitzustellen, werden nachfolgend die
Unter Bezugnahme auf die Figuren zeigt nun
Im abgebildeten Beispiel sind ein Server
Im abgebildeten Beispiel handelt es sich bei dem verteilten Datenverarbeitungssystem
Unter Bezugnahme auf
Im abgebildeten Beispiel verwendet das Datenverarbeitungssystem
Im abgebildeten Beispiel ist der Nahbereichsnetzwerk-(LAN-)Adapter
Die HDD
Ein Betriebssystem läuft auf der Verarbeitungseinheit
Als Server kann es sich bei dem Datenverarbeitungssystem
Anweisungen für das Betriebssystem, das objektorientierte Programmiersystem sowie Anwendungen oder Programme befinden sich auf Speichereinheiten wie der HDD
Ein Bussystem wie der in
Für den Fachmann ist ersichtlich, dass die Hardware in den
Darüber hinaus kann das Datenverarbeitungssystem
Wie oben erwähnt stellen die veranschaulichenden Ausführungsformen Mechanismen für vorauslaufende genäherte Berechnungen mittels eines parallelen Computersystems bereit. Bei dem parallelen Computersystem kann es sich um ein beliebiges bekanntes oder später entwickeltes paralleles Computersystem wie ein System mit einer Anweisung und mehreren Daten (single-instruction-multiple-data SIMD), mehreren Anweisungen und mehreren Daten (multiple-instruction-multipledata MIMD), mit einheitlichem Speicherzugriff (uniform memory access UMA) oder mit nichteinheitlichem Speicherzugriff (nonuniform memory access NUMA), mit Schnittstelle zum Weiterleiten von Nachrichten (Message Passing Interface MPI) oder Ähnliches handeln. Somit schließt das parallele Computersystem eine Vielzahl von Datenverarbeitungseinheiten, Prozessoren und Ähnliches ein. Zum Beispiel können in
Das parallele Computersystem beinhaltet gemäß den Mechanismen der veranschaulichenden Ausführungsformen eine Engine zur Analysekoordination, die den Betrieb von Gruppen von Bearbeitungs-Engines koordiniert. Darüber hinaus verändert die Engine zur Analysekoordination die Zusammensetzung und den Betrieb dieser Gruppen von Bearbeitungs-Engines auf der Grundlage einer Analyse der Ergebnisse der Berechnungen dieser Gruppen von Bearbeitungs-Engines.The parallel computer system includes, in accordance with the mechanisms of the illustrative embodiments, an analysis coordination engine that coordinates the operation of groups of processing engines. In addition, the analysis coordination engine alters the composition and operation of these groups of processing engines based on an analysis of the results of the calculations of these groups of processing engines.
Wie in
Bestimmte der Gruppen
Das parallele Computersystem
Im Betrieb ist die Engine zur Analysekoordination
Zudem wählt die Engine zur Analysekoordination
Wie oben erwähnt arbeitet die zweite Gruppe
Die dritte Gruppe
Die Engine zur Analysekoordination
Die Engine zur Analysekoordination
Wenn die Ergebnisse der genäherten Berechnungen der zweiten Gruppe
Wenn zum Beispiel die erste Gruppe
Zum Beispiel kann die Neueinrichtungslogik
Auf diese Weise wird die Genauigkeit der durch die zweite Gruppe (J)
Als weiteres Beispiel kann im Falle, dass die Engine zur Analysekoordination
Falls eine nächste Phase der analytischen Berechnungen, d. h. eine nachfolgende Phase, in der ein weiterer Teil des Algorithmus
Für jeden durch die Engine zur Analysekoordination
Mittels der Mechanismen der hierin beschriebenen veranschaulichenden Ausführungsformen wird ein in hohem Maße paralleler und wirkungsvoller vorauslaufender Mechanismus bereitgestellt, der genaue Näherungen von Berechnungsergebnissen bereitstellen kann. Während diese Berechnungen „Näherungen” darstellen, besitzen diese Näherungen in der Wirklichkeit im Allgemeinen eine hohe Genauigkeit im Hinblick auf vollständige analytische Berechnungen. Es wurde zum Beispiel durch Experimente herausgefunden, dass sich für einen Algorithmus zur nichtnegativen Matrixfaktorisierung (NMF) (ein Hauptkernel bei Analysearbeitslasten von Data-Mining) bei einem erlaubten Fehler der Näherung von höchstens 10% die Geschwindigkeit der durch die Mechanismen der veranschaulichenden Ausführungsformen durchgeführten analytischen Berechnungen um 400% erhöhen kann. Wenn zum Beispiel eine vollständige analytische Berechnung
Wie oben erwähnt können die veranschaulichenden Ausführungsformen bei vielen verschiedenen Arten analytischer Berechnungen und parallelen Computersystemen verwendet werden. Analytische Berechnungen können allgemein in deskriptive Analyse, prädiktive Analyse und präskriptive Analyse eingeteilt werden. Die deskriptive Analyse nutzt Berechnungen, die mit Standardberichtsfunktionen (die Vorgefallenes beschreiben), Ad-hoc-Berichtsfunktionen (die beschreiben, wie viele, wie oft oder wo Dinge geschehen) und Abfrage-/Vertiefungsoperationen (die beschreiben, worin genau das Problem lag) in Zusammenhang stehen. Die prädiktive Analyse nutzt Berechnungen, die mit Warnmeldungen (die anzeigen, welche Maßnahmen erforderlich sind), Simulationen (die vorhersagen, was geschehen könnte) und vorhersagender Modellierung (die vorhersagt, was als Reaktion auf bestimmte Bedingungen geschehen würde) in Zusammenhang stehen. Die präskriptive Analyse nutzt Berechnungen hinsichtlich der Optimierung (wie kann man das beste Ergebnis erzielen) und stochastischer Optimierung (wie kann man das beste Ergebnis unter Einbeziehung von Schwankungseffekten erzielen). Die veranschaulichenden Ausführungsformen können bei Bearbeitungs-Engines verwendet werden, die an Arbeitslasten arbeiten, die mit jeder beliebigen dieser Arten von analytischen Berechnungen oder jeder beliebigen anderen Art analytischer Berechnung in Zusammenhang stehen, die hierin nicht speziell beschrieben ist.As mentioned above, the illustrative embodiments may be used in many different types of analytical computations and parallel computer systems. Analytical calculations can be broadly classified into descriptive analysis, predictive analysis and prescriptive analysis. The descriptive analysis uses calculations that use standard reporting functions (describing what has happened), ad hoc reporting functions (which describe how many, how often or where things happen), and query / in-depth operations (which describe exactly what the problem was) in Related. Predictive analysis uses calculations that involve alerts (indicating what action is needed), simulations (predicting what might happen), and predictive modeling (predicting what would happen in response to specific conditions). The prescriptive analysis uses calculations in terms of optimization (how to get the best result) and stochastic optimization (how to get the best result, including fluctuation effects). The illustrative embodiments may be used with processing engines that operate on workloads associated with any of these types of analytical computations or any other type of analytical computation that is not specifically described herein.
Um den Betrieb der veranschaulichenden Ausführungsformen weiter zu veranschaulichen, wird nun auf
Bei
Bei
Wenn angenommen wird, dass die Gruppe(n) für die vollständige analytische Berechnung als Gruppe (I), die Bearbeitungs-Engines für die genäherte vorauslaufende Berechnung als Gruppe (J) und die Bearbeitungs-Engines für die Unterschiedsermittlung als Gruppe (K) bezeichnet werden, wird festgestellt, ob (I) (J) eingeholt hat, d. h., ob (I) eine Berechnungsphase beendet hat, die zuvor durch (J) ausgeführt wurde; z. B. hat (I) bei Berechnungsphase 1 (J) eingeholt, während (J) bereits zu Berechnungsphase
Die Engine zur Analysekoordination ermittelt, ob der Unterschied weniger als ein oder mehrere zuvor festgelegte Schwellenwerte beträgt (in diesem Fall der Schwellenwert Delta) (Schritt
Als Reaktion darauf, dass der Unterschied geringer als der eine oder die mehreren Schwellenwerte ist oder nicht, wird ein Vertrauensbereichswert in Verbindung mit den Ergebnissen der genäherten vorauslaufenden Berechnung aktualisiert (Schritt
Wenn der Vertrauensbereichswert geringer als der zuvor festgelegte Schwellenwert ist (Schritt
Somit stellen die veranschaulichenden Ausführungsformen Mechanismen für wirkungsvolle vorauslaufende genäherte Berechnungen mittels Gruppen von Bearbeitungs-Engines und der Koordination zwischen diesen Gruppen von Bearbeitungs-Engines bereit. Die veranschaulichenden Ausführungsformen erhöhen die Gesamtleistungsfähigkeit analytischer Berechnungen erheblich, indem sie die Geschwindigkeit genäherter Berechnungen und die Ermittlung der Genauigkeit und des Vertrauensbereichs der genäherten Berechnungen im Vergleich zu vollständigen analytischen Berechnungen einsetzen.Thus, the illustrative embodiments provide mechanisms for effective leading-in approximated calculations by means of groups of processing engines and the coordination between these groups of processing engines. The illustrative embodiments greatly increase the overall performance of analytical calculations by using the speed of approximate calculations and determining the accuracy and confidence level of the approximated calculations as compared to complete analytical calculations.
Wie oben erwähnt sollte beachtet werden, dass die veranschaulichenden Ausführungsformen in Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform oder einer Ausführungsform, die sowohl Hardware- als auch Software-Elemente enthält, ausgeführt sein können. In einer beispielhaften Ausführungsform sind die Mechanismen der veranschaulichenden Beispiele als Software oder Programmcode ausgeführt, was Firmware, residente Software, Mikrocode usw. mit einschließt, jedoch nicht darauf beschränkt ist.As noted above, it should be noted that the illustrative embodiments may be embodied as a complete hardware embodiment, a complete software embodiment, or an embodiment that includes both hardware and software elements. In an exemplary embodiment, the mechanisms of the illustrative examples are embodied as software or program code, including, but not limited to, firmware, resident software, microcode, and so forth.
Ein Datenverarbeitungssystem, das für das Speichern und/oder Ausführen von Programmcode geeignet ist, beinhaltet mindestens einen über einen Systembus direkt oder indirekt mit Speicherelementen verbundenen Prozessor. Zu den Speicherelementen können ein lokaler Speicher, der während der tatsächlichen Ausführung des Programmcodes eingesetzt wird, Massenspeicher und Zwischenspeicher gehören, welche die vorübergehende Speicherung mindestens einigen Programmcodes bereitstellen, um die Anzahl der Abrufvorgänge von Code vom Massenspeicher während der Ausführung zu verringern.A data processing system suitable for storing and / or executing program code includes at least one processor directly or indirectly connected to memory elements via a system bus. The memory elements may include local memory used during the actual execution of the program code, mass memories and latches that provide temporary storage of at least some program code to reduce the number of code fetch operations from the mass memory during execution.
Eingabe/Ausgabe- bzw. E/A-Einheiten (darunter, jedoch nicht darauf beschränkt, Tastaturen, Anzeigen, Zeigeeinheiten usw.) können mit dem System entweder direkt oder über zwischengeschaltete E/A-Steuereinheiten (I/O controllers) verbunden sein. Netzwerkadapter können ebenfalls mit dem System verbunden sein, damit das Datenverarbeitungssystem mit anderen Datenverarbeitungssystemen oder entfernt angeordneten Druckern oder Speichereinheiten durch zwischengeschaltete private oder öffentliche Netzwerke verbunden ist. Modems, Kabelmodems und Ethernet-Karten stellen nur einige wenige der aktuell erhältlichen Arten von Netzwerkadaptern dar.Input / output or I / O units (including, but not limited to, keyboards, displays, pointing devices, etc.) may be connected to the system either directly or through intermediate I / O controllers. Network adapters may also be connected to the system so that the data processing system is connected to other data processing systems or remotely located printers or storage units through private or public network intermediaries. Modems, cable modems, and Ethernet cards are just a few of the currently available types of network adapters.
Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung vorgelegt und ist nicht als erschöpfend oder auf die Erfindung in der beschriebenen Form beschränkt aufzufassen. Viele Änderungen und Variationen sind für den Fachmann naheliegend. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung, die praktische Anwendung am besten zu beschreiben und anderen Fachleuten das Verständnis der Erfindung für vielfältige Ausführungsformen mit vielfältigen Änderungen, wie sie für den speziellen besonderen Gebrauch geeignet sind, zu ermöglichen.The description of the present invention has been presented for purposes of illustration and description, and is not to be construed as exhaustive or limited to the invention in the form disclosed. Many changes and variations will be apparent to those skilled in the art. The embodiment has been chosen and described in order to best describe the principles of the invention, the practical application, and to enable others skilled in the art to appreciate the invention for a variety of embodiments with various modifications as appropriate for the particular particular use.
Claims (15)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/074,438 | 2011-03-29 | ||
US13/074,438 US8510546B2 (en) | 2011-03-29 | 2011-03-29 | Run-ahead approximated computations |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102012204167A1 true DE102012204167A1 (en) | 2012-10-04 |
Family
ID=46052021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102012204167A Ceased DE102012204167A1 (en) | 2011-03-29 | 2012-03-16 | Advance approximated calculations |
Country Status (4)
Country | Link |
---|---|
US (2) | US8510546B2 (en) |
CN (1) | CN102736896B (en) |
DE (1) | DE102012204167A1 (en) |
GB (1) | GB2489562B (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9588845B2 (en) | 2014-02-10 | 2017-03-07 | Via Alliance Semiconductor Co., Ltd. | Processor that recovers from excessive approximate computing error |
US9389863B2 (en) | 2014-02-10 | 2016-07-12 | Via Alliance Semiconductor Co., Ltd. | Processor that performs approximate computing instructions |
US10235232B2 (en) | 2014-02-10 | 2019-03-19 | Via Alliance Semiconductor Co., Ltd | Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction |
US9891935B2 (en) * | 2015-08-13 | 2018-02-13 | Altera Corporation | Application-based dynamic heterogeneous many-core systems and methods |
US10114613B2 (en) | 2016-09-07 | 2018-10-30 | International Business Machines Corporation | Mixed-precision memcomputing system |
CN108985367A (en) * | 2018-07-06 | 2018-12-11 | 中国科学院计算技术研究所 | Computing engines selection method and more computing engines platforms based on this method |
CN111583042B (en) * | 2020-05-13 | 2023-08-18 | 恒生电子股份有限公司 | Method, system, storage medium and electronic device for calculating option real-time data |
CN114693450A (en) * | 2022-03-30 | 2022-07-01 | 蚂蚁区块链科技(上海)有限公司 | Intelligent contract-based calculating, updating and reading method and device and electronic equipment |
CN114693451A (en) * | 2022-03-30 | 2022-07-01 | 蚂蚁区块链科技(上海)有限公司 | Intelligent contract-based computing method and device and electronic equipment |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH076146A (en) | 1993-06-18 | 1995-01-10 | Fujitsu Ltd | Parallel data processing system |
US5684929A (en) * | 1994-10-27 | 1997-11-04 | Lucent Technologies Inc. | Method and apparatus for determining the limit on learning machine accuracy imposed by data quality |
US5996013A (en) | 1997-04-30 | 1999-11-30 | International Business Machines Corporation | Method and apparatus for resource allocation with guarantees |
US20050180506A1 (en) * | 2002-05-30 | 2005-08-18 | Wittebrood Rimmert B. | Unit for and method of estimating a current motion vector |
US7606804B2 (en) | 2004-03-15 | 2009-10-20 | Emc Corporation | System and method for information management in a distributed network |
US7487054B2 (en) * | 2005-05-11 | 2009-02-03 | International Business Machines Corporation | Automated dynamic metrology sampling system and method for process control |
US7840482B2 (en) | 2006-06-19 | 2010-11-23 | Exegy Incorporated | Method and system for high speed options pricing |
US7793080B2 (en) * | 2007-12-31 | 2010-09-07 | Globalfoundries Inc. | Processing pipeline having parallel dispatch and method thereof |
GB0809189D0 (en) | 2008-05-20 | 2008-06-25 | Aspex Semiconductor Ltd | Improvements relating to single instruction multiple data (SIMD) architectures |
US20090319755A1 (en) * | 2008-06-19 | 2009-12-24 | Vns Portfolio Llc | Method and Apparatus for High Speed Data Stream Splitter on an Array of Processors |
WO2010045511A2 (en) * | 2008-10-15 | 2010-04-22 | Gal Zuckerman | Methods and systems for delivering content |
JP5470819B2 (en) | 2008-11-28 | 2014-04-16 | 富士通株式会社 | Spatial data output processing method, program thereof, and data processing system |
US8968083B2 (en) * | 2009-11-12 | 2015-03-03 | Igt | Gaming system and method for dynamically grouping gaming devices to provide progressive awards |
US8447565B2 (en) * | 2010-06-07 | 2013-05-21 | Lawrence Livermore National Security, Llc | Approximate error conjugation gradient minimization methods |
-
2011
- 2011-03-29 US US13/074,438 patent/US8510546B2/en not_active Expired - Fee Related
-
2012
- 2012-03-16 DE DE102012204167A patent/DE102012204167A1/en not_active Ceased
- 2012-03-16 GB GB1204629.8A patent/GB2489562B/en not_active Expired - Fee Related
- 2012-03-29 CN CN201210089678.2A patent/CN102736896B/en not_active Expired - Fee Related
- 2012-05-10 US US13/468,064 patent/US8566576B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB2489562B (en) | 2017-01-04 |
US20120254604A1 (en) | 2012-10-04 |
US8566576B2 (en) | 2013-10-22 |
CN102736896A (en) | 2012-10-17 |
US8510546B2 (en) | 2013-08-13 |
US20120254603A1 (en) | 2012-10-04 |
GB201204629D0 (en) | 2012-05-02 |
GB2489562A (en) | 2012-10-03 |
CN102736896B (en) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102012204167A1 (en) | Advance approximated calculations | |
DE112017006806T5 (en) | REDUCE DATA FLOW DELAYS IN A DATA STREAMING APPLICATION | |
DE112019003405T5 (en) | AUTOMATIC FINE TUNING DEVICE FOR EMBEDDING CLOUD MICRO-SERVICES | |
DE112019004076T5 (en) | DECENTRALIZED DISTRIBUTED DEEP LEARNING | |
DE112016005536T5 (en) | DETERMINING THE ORDER OF A CONSTRUCTION OF A NEURONAL NETWORK | |
DE202012013462U1 (en) | Data processing in a Mapreduce framework | |
DE202016008045U1 (en) | Distributed storage system with replica site selection | |
DE112013000752T5 (en) | Manage processing elements in a streaming data system | |
DE102013209868A1 (en) | Querying and integrating structured and unstructured data | |
DE102012216029A1 (en) | A SCALABLE ADAPTABLE MAP REDUCE FRAMEWORK WITH DISTRIBUTED DATA | |
DE112019002235T5 (en) | INTEGRATING A DICTIONARY EDITING SYSTEM IN A TEXT MINING | |
DE112012005030T5 (en) | Dynamically configurable placement engine | |
DE112013001747T5 (en) | Optimizing the linking of instructions | |
DE112013005993T5 (en) | Method, apparatus and computer readable medium for optimal determination of data subsets | |
DE112013000966T5 (en) | Apparatus, program and method for clustering a plurality of documents | |
DE112017008151T5 (en) | CIRCUITS OF LESS DEPTH THAN QUANTUM CLASSIFICATORS | |
DE112013001735T5 (en) | Optimizing the linking of instructions | |
DE202014010885U1 (en) | Acceleration based on cached flows | |
DE112021002572T5 (en) | MULTI-CRITERIAL OPTIMIZATION OF APPLICATIONS | |
DE112017007361T5 (en) | SUPPORTING INTERACTIVE TEXT MINING PROCESS WITH DIALOG IN NATURAL LANGUAGE | |
DE112018002266T5 (en) | Cognitive data filtering for storage environments | |
DE112020004116T5 (en) | DYNAMIC CHANGING THE PARALLELITY OF A TASK IN A PIPELINE | |
DE112021000338T5 (en) | OUTSOURCE THE STATISTICS COLLECTION | |
DE112021000485T5 (en) | System for fast interactive exploration of mass data | |
DE112021002883T5 (en) | AUTOMATED FEEDBACK AND CONTINUOUS LEARNING FOR QUERY OPTIMIZATION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R002 | Refusal decision in examination/registration proceedings | ||
R003 | Refusal decision now final |