DE102012216029B4 - Ein skalierbares anpassungsfähiges map-reduce-rahmenwerk mit verteilten daten - Google Patents

Ein skalierbares anpassungsfähiges map-reduce-rahmenwerk mit verteilten daten Download PDF

Info

Publication number
DE102012216029B4
DE102012216029B4 DE102012216029.9A DE102012216029A DE102012216029B4 DE 102012216029 B4 DE102012216029 B4 DE 102012216029B4 DE 102012216029 A DE102012216029 A DE 102012216029A DE 102012216029 B4 DE102012216029 B4 DE 102012216029B4
Authority
DE
Germany
Prior art keywords
reduce
group
map
arithmetic
key
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.)
Active
Application number
DE102012216029.9A
Other languages
English (en)
Other versions
DE102012216029A1 (de
Inventor
Ankur Narang
Jyothish Soman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102012216029A1 publication Critical patent/DE102012216029A1/de
Application granted granted Critical
Publication of DE102012216029B4 publication Critical patent/DE102012216029B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Abstract

Ein Verfahren, eine Vorrichtung und ein Herstellungsartikel zum Erzeugen eines skalierbaren anpassungsfähigen Map-Reduce-Rahmenwerks für mindestens einen Cluster mit mehreren Kernen. Das Verfahren weist ein Aufteilen eines Clusters in mindestens eine Rechengruppe, ein Ermitteln mindestens eines Schlüsselgruppenführers innerhalb jeder Gruppe, ein Durchführen einer lokalen Combine-Operation in jeder Rechengruppe, ein Durchführen einer globalen Combine-Operation an jedem des mindestens einen Schlüsselgruppenführers innerhalb jeder Rechengruppe auf der Grundlage eines Ergebnisses von der lokalen Combine-Operation sowie ein Durchführen einer globalen Map-Reduce-Operation an dem mindestens einen Schlüsselgruppenführer innerhalb jeder Rechengruppe auf.

Description

  • Gebiet der Erfindung
  • Ausführungsformen der Erfindung betreffen allgemein die Informationstechnologie und genauer ein Map-Reduce(Zuordnungs/Reduzierungs)-Rahmenwerk (map reduce framework).
  • Hintergrund der Erfindung
  • Analysen im Petabereich erfordern ein effizientes Map-Reduce-Rahmenwerk, das die Fortschritte bei der Prozessortechnologie zum Verbessern des Kosten-Leistungs-Verhältnisses nutzen kann. Datenübertragungsengpässe stellen ein wesentliches Hindernis für Map-Reduce mit hohem Durchsatz an großen Datenmengen (zum Beispiel Terabyte oder Petabyte) dar. Derzeit leiden Map-Reduce-Rahmenwerke unter solchen Engpässen bei der Datenübertragung. Weiterhin sind vorhandene Map-Reduce-Rahmenwerke nicht in der Lage, Hybridsysteme einzusetzen, die Beschleuniger bereitstellen. Darüber hinaus ist die Zeitplanung des Map-Reduce-Systems hauptsächlich zentralisiert. Dementsprechend besteht ein Bedarf nach verteiltem Map-Reduce über große Cluster hinweg.
  • Die Veröffentlichung „Map-Reduce-Merge: Simplified Relational Data Processing on Large Clusters“ betrifft ein Map-Reduce-Programmiermodell, das die einfache Entwicklung von skalierbaren parallelen Anwendungen zur Verarbeitung großer Datenmengen auf großen Clustern von Standardmaschinen ermöglicht. Durch eine einfache Schnittstelle mit zwei Funktionen, Map und Reduce, erleichtert dieses Modell die parallele Implementierung vieler realer Aufgaben wie die Datenverarbeitung für Suchmaschinen und maschinelles Lernen. Allerdings unterstützt dieses Modell nicht direkt die Verarbeitung mehrerer zusammenhängender heterogener Datensätze. Während die Verarbeitung relationaler Daten ein häufiger Bedarf ist, führt diese Einschränkung zu Schwierigkeiten und/oder Ineffizienz, wenn Map-Reduce auf relationale Operationen wie Joins angewendet wird. Die Veröffentlichung betrifft ferner eine Verbesserung des Map-Reduce-Programmiermodells zu einem neuen Modell namens Map-Reduce-Merge. Es fügt dem Map-Reduce eine Merge-Phase hinzu, die bereits partitionierte und sortierte (oder gehashte) Daten durch Map- und Reduce-Module effizient zusammenführen kann. Das neue Modell kann sowohl relationale Algebra-Operatoren ausdrücken als auch verschiedene Join-Algorithmen implementieren (Hung-chih YANG [et al]: Map-Reduce-Merge: Simplified Relational Data Processing on Large Clusters. In: SIGMOD '07 Proceedings of the 2007 ACM SIGMOD international conference on Management of data, S. 1029-1040. 2007. ISBN: 978-1-59593-686-8. DOI: 10.1145/1247480.1247602).
  • Die Veröffentlichung „Speeding Up Distributed MapReduce Applications Using Hardware Accelerators“ bezieht sich auf eine Bewertung der Verwendung des Map-Reduce-Programmiermodells zur Ausnutzung der in einem Cluster von mit Hardwarebeschleunigern ausgestatteten Knoten vorhandenen Rechenkapazität. Das Map-Reduce-Programmiermodell ist ein aufstrebendes Programmiermodell für massiv verteilte Umgebungen und wurde ursprünglich entwickelt, um Berechnungen über extremgroße Arbeitsgruppen auszuführen. Hardware-Beschleuniger sind mehr und mehr in Systemkonfigurationen vorhanden, wobei der Cell BE-Prozessor von IBM und Nvidias Tesla GPU die erweiterten Lösungen sind. Hardware-Beschleuniger können bestimmte Rechenaufgaben deutlich beschleunigen und gleichzeitig den Energieverbrauch senken. Die Ausnutzung der Rechenkapazität einer solchen heterogenen Umgebung ist eine herausfordernde Aufgabe, da sie zwei potenzielle Ebenen der Parallelität sowohl auf Cluster- als auch auf Knotenebene umfasst. In den in der Veröffentlichung beschriebenen Experimenten wird das Map-Reduce-Programmiermodell genutzt, um auf einfache Weise Anwendungen zu codieren, die beide Ebenen der Parallelität mit minimalem Aufwand für den Programmierer ausnutzen. Bei der Bewertung werden zwei verschiedene Anwendungen verwendet: eine Datenverschlüsselungs-Workload als datenintensive Anwendung und ein probabilistischer Pi-Nummer-Schätzer als CPU-intensive Anwendung. Die Ergebnisse zeigen, dass die Verwendung des Map-Reduce-Programmiermodells in einer solchen verteilten Umgebung zwar die Vorteile der Hardware-Beschleuniger nutzen kann, die Kommunikations- und Synchronisations-Overheads jedoch die Leistungsvorteile der Hardware-Beschleuniger bei datenintensiven Anwendungen verbergen können. Auf der anderen Seite sind die Vorteile bei rein CPU-intensiven Anwendungen bemerkenswert. Obwohl datenintensive Workloads aus Sicht der reinen Performance nicht die besten Kandidaten für die Verwendung von hardwarebeschleunigten Versionen ihrer Anwendungen zu sein scheinen, muss in diesem Bereich weiter geforscht werden, da die Energieeffizienz einer solchen Konfiguration durchaus geringer sein kann als die einer äquivalenten verteilten Anwendung, die keine Hardwarebeschleuniger verwendet (Yolanda BECERRA [et al]: Speeding Up Distributed MapReduce Applications Using Hardware Accelerators. In: Parallel Processing, 2009, ICPP '09, International Conference on, S. 42-49. 22. - 25. September 2009. DOI: 10.1 109/ICPP.2009.59).
  • Die Veröffentlichung „Handling Data Skew in MapReduce“ betrifft Map-Reduce-Systeme, die für die Verarbeitung großer Datenmengen populär geworden sind und zunehmend in E-Science-Anwendungen eingesetzt werden. Im Gegensatz zu einfachen Anwendungsszenarien wie der Wortzählung beinhalten E-Science-Anwendungen komplexe Berechnungen, die neue Herausforderungen an Map-Reduce-Systeme stellen. Insbesondere ist (a) die Laufzeitkomplexität der Reducer-Task typischerweise hoch, und (b) wissenschaftliche Daten sind oft schief. Dies führt zu stark variierenden Ausführungszeiten für die Reducer. Schwankende Ausführungszeiten führen zu einer geringen Ressourcenauslastung und einer hohen Gesamtausführungszeit, da der nächste Map-Reduce-Zyklus erst beginnen kann, wenn alle Reducer fertig sind. In dieser Veröffentlichung wird das Problem der effizienten Verarbeitung von Map-Reduce-Jobs mit komplexen Reducer-Aufgaben über schiefe Daten behandelt. Es wird ein neues Kostenmodell definiert. Es berücksichtigt nicht-lineare Reducer-Tasks. Außerdem wird ein Algorithmus zur Schätzung der Kosten in einer verteilten Umgebung bereitgestellt. Es werden zwei Ansätze zur Lastverteilung vorgeschlagen, Feinpartitionierung und dynamische Fragmentierung, die auf dem definierten Kostenmodell basieren und sowohl mit schiefen Daten als auch mit komplexen Reducer-Aufgaben umgehen können. Bei der Feinpartitionierung wird eine feste Anzahl von Datenpartitionen erzeugt, bei der dynamischen Fragmentierung werden große Partitionen dynamisch in kleinere Teile aufgeteilt und die Daten bei Bedarf repliziert. Diese Ansätze können nahtlos in bestehende Map-Reduce-Systeme wie Hadoop integriert werden. Die vorgeschlagene Lösung wird sowohl mit synthetischen Daten als auch mit realen Daten aus einer E-Science-Anwendung bewertet (Benjamin GUFLER [et al]: Handling Data Skew in MapReduce. In: Proceedings of the 1 st International Conference on Cloud Computing and Services Science (CLOSER 2011, Noordwijkerhout, Niederlande), S. 574-583. 7. -9. Mai 2011. URL: http://www3.in.tum.de/research/publications/conferences/c1oser2011-100.pdf [abgerufen am 15.4.2013 unter http://www3.in.tum.de/research/publications/#2011]). Die Präsentation „Handling Data Skew in MapReduce‟ betrifft die folgenden Lastverteilungsaspekte im Map-Reduce für E-Science: Abschätzung der Partitionskosten, Zuweisung von Partitionen zu Reducern, Anzahl der Partitionen und Auswertung (Benjamin GUFLER [et al]: Handling Data Skew in MapReduce. Foliensatz. May 8, 2011. URL: http://www3.in. tum.de/research/publications/conferences/closer2011-100-presentation.pdf [abgerufen am 15.4.2013 unter http://www3.in.tum.de/research/ publications/#2011]).
  • Die Veröffentlichung „DisCo: Distributed Co-clustering with Map-Reduce“ betrifft eine Anwendung von Map-Reduce, von den Rohdaten bis zu den endgültigen Modellen, auf eine wichtige Mining-Aufgabe. Insbesondere bezieht die Veröffentlichung sich auf Co-Clustering, das in vielen Anwendungen wie Text Mining, Collaborative Filtering, Bioinformatik und Graphen-Mining untersucht wurde. Es wird das Distributed Co-clustering (DisCo)-Framework vorgeschlagen, das praktische Ansätze für die verteilte Datenvorverarbeitung und das Co-clustering vorstellt. DisCo wurde unter Verwendung von Hadoop, einer Open-Source Map-Reduce-Implementierung, entwickelt. Es wurde beobachtet, dass DisCo gut skalieren und extrem große Datensätze (bis zu mehreren hundert Gigabyte) auf Standardhardware effizient verarbeiten und analysieren kann (Spiros PAPADIMITRIOU und Jimeng SUN: DisCo: Distributed Co-clustering with Map-Reduce: A Gase Study towards Petabyte-Scale End-to-End Mining. In: „-ICDM '08, Eighth IEEE International Conference on Data Mining, S. 512-521. 15. - 19. Dezember 2008. DOI: 10.1109/ICDM.2008.142).
  • Kurzdarstellung der Erfindung
  • Der Erfindung liegt die Aufgabe zugrunde ein Verfahren, ein Computerprogrammprodukt, ein System sowie eine Vorrichtung zum Erzeugen eines verbesserten skalierbaren anpassungsfähigen Map-Reduce-Rahmenwerks mit verteilten Daten für mindestens einen Cluster mit mehreren Kernen zu schaffen. Diese Aufgabe wurde durch die Merkmale der unabhängigen Ansprüche gelöst. Ausführungsformen der Erfindung sind in abhängigen Ansprüchen angegeben.
  • In einem Beispiel wird ein skalierbares anpassungsfähiges Map-Reduce-Rahmenwerk mit verteilten Daten bereitgestellt. Ein beispielhaftes computerimplementiertes Verfahren zum Erzeugen eines skalierbaren anpassungsfähigen Map-Reduce-Rahmenwerks mit verteilten Daten für mindestens einen Cluster mit mehreren Kernen kann Schritte eines Aufteilens eines Clusters in mindestens eine Rechengruppe, eines Ermittelns mindestens eines Schlüsselgruppenführers innerhalb jeder Rechengruppe, eines Durchführens einer lokalen Combine(Kombinier)-Operation an jeder Rechengruppe, eines Durchführens einer globalen Combine-Operation an jedem des mindestens einen Schlüsselgruppenführers innerhalb jeder Rechengruppe auf der Grundlage eines Ergebnisses von der lokalen Combine-Operation sowie eines Durchführens einer globalen Map-Reduce-Operation an dem mindestens einen Schlüsselgruppenführer innerhalb jeder Rechengruppe aufweisen.
  • Diese und andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden anhand der folgenden detaillierten Beschreibung veranschaulichender Ausführungsformen davon ersichtlich, die in Verbindung mit den angehängten Zeichnungen zu lesen ist.
  • Figurenliste
    • 1 zeigt eine Beispielabbildung eines Clusters, die eine Beispielausführungsform gemäß einem Aspekt der Erfindung veranschaulicht;
    • 2 zeigt eine Abbildung, die eine Beispielausführungsform gemäß einem Aspekt der Erfindung veranschaulicht;
    • 3 zeigt einen Ablaufplan, der Techniken zum Erzeugen eines skalierbaren anpassungsfähigen Map-Reduce-Rahmenwerks mit verteilten Daten für mindestens einen Cluster mit mehreren Kernen gemäß einer Ausführungsform der Erfindung veranschaulicht; und
    • 4 zeigt eine Systemabbildung eines beispielhaften Computersystems, auf dem mindestens eine Ausführungsform der Erfindung realisiert werden kann.
  • Detaillierte Beschreibung von Ausführungsformen
  • Wie hierin beschrieben beinhaltet ein Aspekt der vorliegenden Erfindung ein optimiertes verteiltes Map-Reduce-Rahmenwerk für umfangreiche Hybridcluster mit mehreren Kernen. Eine Ausführungsform der Erfindung beinhaltet eine globale Combine-Phase und ein Aufteilen des Stapelmodus-Map-Reduce in mehrere Map-Reduce-Iterationen. Ein Benutzer kann diese Combine-Funktion zusammen mit der endgültigen Reduce-Funktion festlegen. Darüber hinaus verwendet das hierin beschriebene Rahmenwerk einen zweistufigen Ansatz, der eine Teile-und-herrsche-Strategie (divide-conquer strategy) für sehr umfangreiche Cluster sowie eine effiziente Datenübertragung innerhalb jeder Rechengruppe auf jeder Stufe ermöglicht.
  • Dementsprechend stellt ein datenskalierbares gestaltetes Rahmenwerk, wie es hierin geschildert ist, erhebliche Leistungs- und Kostenvorteile gegenüber herkömmlichen Map-Reduce-Ansätzen bereit. Zum Beispiel beinhaltet ein Aspekt der Erfindung ein Nutzen von Fortschritten in der Prozessortechnologie, um das Kosten-Leistungs-Verhältnis zu verbessern, sowie ein Verringern von Datenübertragungsengpässen aufgrund von Map-Reduce mit hohem Durchsatz an großen Datenmengen (Terabyte bis hin zu Petabyte).
  • Wie hierin beschrieben beinhaltet ein asynchroner Map-Reduce-Algorithmus ein Zuordnen, lokales Kombinieren, globales Kombinieren und globales Reduzieren. Ein Cluster wird in Rechengruppen aufgeteilt. Jede Rechengruppe stellte eine lokal dichte Gruppe dar, die zum Beispiel Maschinen mit Mehrfachprozessoren und eng verbundene Cluster beinhalten kann. Zudem wird jede Map-Reduce-Berechnung in eine iterative Map-Combine- und anschließende Reduce-Operation umgewandelt. Dies kann eine große Anzahl kleinerer Map-, lokaler Combine- und/oder globaler Combine-Operationen sowie eine Reduce-Operation pro Schlüssel beinhalten.
  • Ein Aspekt der Erfindung beinhaltet des Weiteren ein Erleichtern stärkerer Combine-Operationen, die einen geringeren Datenübertragungsaufwand ermöglichen. Das kann zum Beispiel in Szenarien nützlich sein, in denen die Datenreduzierung wesentlich ist. Das Aufteilen von Map-Combine-Reduce in mehrere Map-Netzwerk-Combine-Stufen und ein anschließendes globales Reduce ermöglicht eine über die Zeit geglättete Netzwerknutzung anstelle eines Bereitstellens kleiner Zeitfenster mit erheblichen Datenbewegungen.
  • Ein hierin beschriebener Map-Algorithmus beinhaltet ein Arbeitsstehlen (work stealing) innerhalb einer Gruppe (Rechengruppe) sowie einen Lastausgleich (load balancing) innerhalb einer Rechengruppe. Ein Combiner-Algorithmus beinhaltet ein Anhäufen (clustering) von Schlüsseln. Mit dem Ziel geringer Datenübertragung in globalen Combine- und Reduce-Schritten erzeugt ein Combiner-Algorithmus Schlüsselgruppen. Solch ein Algorithmus weist zudem eine Hierarchie mit zwei Ebenen auf. Innerhalb von Rechengruppen werden Schlüsselgruppenführer ermittelt. Eine lokale Combine-Operation wird auf jedem Knoten durchgeführt, und eine globale Combine-Operation wird an den Führern für jede Schlüsselgruppe durchgeführt. Zudem wird an den Schlüsselgruppenführern eine auf einem Steiner-Baum beruhende Reduce-Operation durchgeführt.
  • Dementsprechend wird pro Schlüsselgruppe jeweils ein einziger verteilter Steiner-Baum verwendet, wobei die Topologie mit sich ändernder Rechenverteilung pro Schlüsselgruppe verändert wird. Dies bedeutet, dass der Steiner-Baum von der Verteilung jeder Schlüsselgruppe abhängig ist und jede Schlüsselgruppe einen unterschiedlichen Baum aufweist. Ein Aspekt der Erfindung beinhaltet zudem ortsgesteuerte Steiner-Bäume. Weiterhin können bei Map-Reduce insbesondere im Falle eines rechen- oder datenübertragungsdominierten Kernels ein anpassungsfähiger Aufbau von Steiner-Bäumen und eine Schlüsselgruppierung verwendet werden. Des Weiteren beinhaltet eine Ausführungsform der Erfindung Bloom-Filter, die in Verbindung mit Abfragen der Schlüsselverfügbarkeit verwendet werden.
  • Wie hierin ebenfalls beschrieben, beinhaltet ein Reduce-Algorithmus ein Zusammenführen aller Combiner-Ausgaben zu einer einzigen Ausgabe. Ein festplattengestütztes Map-Reduce ermöglicht eine Reduce-Funktionalität mit einer Pipeline und einer Überlappung der Reduce-Berechnung mit einem festplattengestützten Lesevorgang. Eine Ausführungsform der Erfindung beinhaltet virtuelle Fat Nodes (umfangreiche Knoten), was ein Verwenden einer Gruppe von Basisknoten in einem kleinen Cluster beinhaltet, um eine verteilte gemeinsame Speicherinfrastruktur einzusetzen. Datenübertragung auf der Grundlage des Message Passing Interface/Deep Computing Messaging Framework (MPI/DCMF) kann innerhalb eines Fat Node verwendet werden, was zum Beispiel für speicherinternes Map-Reduce sinnvoll sein kann.
  • Für die festplattengestützte Datenübertragung für große Daten kann die Anzahl erzeugter Dateien Map-Aufgaben * Reduce/Combine-Aufgaben enthalten. Die festplattengestützte Datenübertragung beinhaltet zudem das Zusammenführen (merge) von <Schlüssel, Wert>-Paaren für jede Reduce-Aufgabe, speicherinternes Merge-Sort (Zusammenführen-Sortieren) von Schlüssel-Wert-Paaren, eine Überlappung des Reduce-Combine-Berechnens und der Datenübertragung sowie die Verwendung von Beschleunigern. Die festplattengestützte Datenübertragung über die Fat Nodes hinweg kann eine Datenübertragung auf der Grundlage des Hadoop distributed file system/general parallel file system (HDFS/GPFS) (zwischen den Fat Nodes) beinhalten.
  • Des Weiteren beinhaltet ein Aspekt der Erfindung die Verwendung von Beschleunigern von Hybridsystemen (wie zum Beispiel Power EN). Dies kann auch eine HEA-Datenübertragung zwischen den Knoten (zum Beispiel direkte Paketinjektion in den Cachespeicher) und einen Komprimierungs-/Dekomprimierungsbeschleuniger (zum Beispiel komprimieren von <Schlüssel-Wert>-Daten in der Datenübertragung zwischen Knoten) beinhalten. Zu Beschleunigern können auch ein kryptografischer Beschleuniger (zum Beispiel ein Bloom-Filter zum Bearbeiten von Anfragen zur Schlüsselverfügbarkeit) oder ein RegEx-Beschleuniger zählen, was einen B+ Baum geringer Tiefe und die Suchzeitbeschleunigung für Schlüssel einschließen kann.
  • Dementsprechend beinhaltet ein Aspekt der Erfindung Datenübertragungsoptimierungen über ein Zuordnen von Map- und Reduce-Aufgaben (zum Beispiel topologieabhängiges Zuordnen und zweidimensionales Map- und Reduce-Zuordnen über ein dreidimensionales (3D) Torus-Netzwerk), dynamische Datenbewegung, Map-Reduce auf mehreren Ebenen, eine Struktur von Combine-Reduce-Bäumen und ein generisches/dynamisches Erzeuger/Konsumenten-Datenübertragungs- und -Optimierungs-Rahmenwerk (darunter zum Beispiel iteratives Map-Reduce). Wie hierin ausgeführt beinhaltet eine Ausführungsform der Erfindung weiter eine Ortsbezogenheit bei Combine/Reduce-Aufgaben, einen Lastausgleich zwischen Map-Aufgaben und Reduce-Aufgaben beim Berechnen und bei der Datenübertragung sowie eine Anpassungsfähigkeit an die Art des Kernels.
  • Des Weiteren beinhaltet die verteilte Combiner-Optimierung eine Map/Combiner-Ausgabe, die hochgradig verteilt ist. Für ein gegebenes Netzwerk wird mithilfe einer Hash/Zuordnungsfunktion für jeden Satz von Schlüsseln ein eindeutiger temporärer Knoten ausgewählt. Ein Topologiebaum wird für jeden Schlüsselsatz auf einem temporären Knoten erstellt, und für jeden Schlüssel wählt ein temporärer Knoten einen Senkenknoten und einen Combiner-Baum aus. Die Topologie des Netzwerks wird vorbearbeitet, um Engpasskanten zu kennzeichnen, und Knoten werden in eng verbundene Gruppen gruppiert.
  • Dementsprechend wird in einem Aspekt der Erfindung die Anzahl von Engpasskanten in jedem Topologiebaum minimiert. Jeder Knoten sortiert Schlüssel, die ihm durch Hash-Werte zugeordnet wurden, auf der Grundlage der Anzahl kritischer Verbindungen und der Anzahl von Knoten (#N), die den Schlüssel aufweisen. Jede Datenübertragungsverbindung bietet eine zuvor festgelegte feste Bandbreite für jedes Zeitfenster. Schlüsselsätze mit hohen Werten von #N und einer hohen Anzahl kritischer Verbindungen drosseln die Bandbreite. Schlüsselgruppen mit hohen und niedrigen Werten wechseln einander ab, um Kollisionen und Staus zu vermeiden, und ihr genäherter Datenflussbaum wird aufgebaut. Des Weiteren werden Schlüssel, die in einem früheren Zeitrahmen aufgenommen werden können, verschoben. Für jeden Satz in der sortierten Liste wird der Prozess wiederholt, bis alle Schlüssel analysiert sind. Daher erhält jeder Knoten Datenquellen, Schlüssel, einen Zeitrahmen und einen Zielknoten.
  • Verteilungs-Reduce-Optimierungen beinhalten eine Reduce-Operation, die Knoten dynamisch zugewiesen wird. Zudem beinhalten solche Optimierungen eine Reduce-Operation für einen gegebenen Schlüsselsatz, der einem zentral angeordneten Knoten vorgegeben ist, wodurch die über das Netzwerk bewegte Datenmenge verringert werden kann. Des Weiteren verringert ein verteilter Combiner die Datenbewegungen über das Netzwerk.
  • Ein Aspekt der Erfindung kann zudem Hybridsysteme/Prism-Mehrkern-Cluster beinhalten (zum Beispiel einen System- und Technologiegruppen(STG)-Differentiator). DCMF-gestützte Optimierungen beinhalten die Verwendung eines E/A-Beschleunigers, um bei einseitigen und asynchronen Datenübertragungsgrundelementen von DCMF zu helfen. Zudem kann ein speicherinternes Map-Reduce für die Datenübertragung zwischen Knoten mittels Hochgeschwindigkeitsverbindungen verwendet werden.
  • Dementsprechend kann ein festplattengestütztes Map-Reduce mit hohem Durchsatz wie hierin ausgeführt Fat Nodes als einzelne Hadoop-Aufgabe beinhalten. Des Weiteren beinhaltet eine Ausführungsform der Erfindung eine lokale Festplatte pro Knoten innerhalb des Fat Node, verbindungsgestützte Hochgeschwindigkeitsdatenübertragung und die Verwendung von speicherinternen Leistungsoptimierungen (zum Beispiel Bloom-Filter, Komprimierung/Dekomprimierung, HEA und RegEx).
  • Optimierungen der Map-Reduce-Berechnungseffizienz können zum Beispiel eine Map-Reduce-Ortsoptimierung beinhalten. Eine derartige Optimierung kann die automatische Deduktion der Map-Reduce-Orte in Arbeitslasten mit mehreren Map-Reduce-Iterationen sowie eine gewichtete Analyse auf der Grundlage von zweiteiligen Graphen zum Wiederholen der Musteranalyse an Zwischenpaaren beinhalten, die von Map-Strängen kommen und die Stränge verringern werden. Eine Map-Reduce-Ortsoptimierung beinhaltet zudem die Online-Sequenz-Motiverkennung an Zugriffsmustern von Map-Reduce-Zwischenpaaren.
  • Zudem können Optimierungen der Map-Reduce-Berechnungseffizienz zum Beispiel ein baumgestütztes Reduce mit einer Pipeline für hunderte bis tausende von Kernen und/oder umfangreiche Architekturen für umfangreiche Architekturen für symmetrisches Bearbeiten mit mehreren Prozessoren (symmetric multiprocessing (SMP) architectures) beinhalten. Dies beinhaltet eine Verringerung der Anzahl von <Schlüssel, Wert>-Paaren, die im letzten Reduce-Schritt pro Schlüssel beobachtet werden (sowie eine lokale Verringerung der Gesamtanzahl von <Schlüssel, Wert>-Paaren). Des Weiteren kann dies auch einen cachespeicherorientierten und lastausgleichorientierten Reduce-Baum-Aufbau beinhalten. Jeder Knoten des Baums kann mit einem Teilsatz von Schlüsseln versehen werden, für die das Reduce erfolgen soll, und die Baumtopologie wird bei Map-Strängen dynamisch auf der Grundlage des Ortes des Schlüsselwert-Hash ermittelt. Ein baumgestütztes Reduce mit einer Pipeline kann zudem mehrere Bäume für separate Teilsätze von Schlüsseln, ein als Assoziativ-Operator + End-Operator festgelegtes Reduce sowie Optimierungen auf der Grundlage einer Vielkern-Zielarchitektur beinhalten.
  • 1 zeigt eine Beispielclusterabbildung, die Beispielausführungsform gemäß einem Aspekt der Erfindung darstellt. In veranschaulichender Weise zeigt 1 ein Verbindungsnetzwerk 102 und ein paralleles Dateisystem 104 mit dazwischen liegenden Rechenknoten 106, Knoten zu einer Dateisystemschnittstelle 108 und Knoten zu einer Verbindungsschnittstelle 110. Zusammengesetzt bilden sie ein verallgemeinertes Modell eines Clusters. Die Kommunikation und die Übertragung von computerlesbaren Daten zwischen den Rechenknoten wird über das Verbindungsnetzwerk 102 durchgeführt. Für jede Interaktion zwischen zwei Rechenknoten verwendet jeder Rechenknoten 106 die Verbindungsschnittstelle 110, um eine Verbindung mit dem Verbindungsnetzwerk 102 zu bilden. Das Verbindungsnetzwerk ermöglicht es dann den zwei Rechenknoten, miteinander unter Verwendung der Verbindungsschnittstelle zu interagieren. Mit dem parallelen Dateisystem 104 kann jeder Rechenknoten Informationen auf eine gemeinsame Ressource schreiben. Das parallele Dateisystem ist für alle Rechenknoten über die Dateisystemschnittstelle zugänglich.
  • 2 zeigt eine Abbildung, die eine Beispielausführungsform gemäß einem Aspekt der Erfindung veranschaulicht. Schritt 202 beinhaltet ein Initialisieren eines Map-Reduce über ein Initialisierungsmodul. Schritt 204 beinhaltet ein Zuordnen einer Aufgabe über ein Mapping-Modul. Schritt 206 beinhaltet ein Durchführen einer lokalen Combine-Operation durch jede Rechengruppe über ein lokales Combine-Modul. Schritt 208 beinhaltet ein Ermitteln von disjunkten Pfaden für jede Schlüsselgruppe über ein Pfadermittlungsmodul. Schritt 210 beinhaltet ein Durchführen einer netzwerkgestützten Combine-Operation auf jedem derartigen disjunkten Pfad über ein Netzwerk-Combine-Modul. Wenn in Schritt 212 durch die Map-Aufgabe noch nicht die gesamten Daten verarbeitet wurden, kehrt der Prozess zu Schritt 204 zurück. Andernfalls wird der Prozess mit Schritt 214 fortgesetzt, der ein Durchführen einer globalen Reduce-Operation über ein globales Reduce-Modul beinhaltet. Weiterhin beinhaltet der Schritt 216 ein Neuverteilen des Ergebnisses des globalen Reduce über ein Neuverteilungsmodul.
  • 3 zeigt einen Ablaufplan, der Techniken zum Erzeugen eines skalierbaren anpassungsfähgigen Map-Reduce-Rahmenwerks mit verteilten Daten für mindestens einen Cluster mit mehreren Kernen gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Schritt 302 beinhaltet ein Aufteilen eines Clusters in mindestens eine Rechengruppe. Dieser Schritt kann zum Beispiel mithilfe mindestens eines hierin beschriebenen Moduls ausgeführt werden.
  • Schritt 304 beinhaltet ein Ermitteln mindestens eines Schlüsselgruppenführers innerhalb jeder Rechengruppe. Dieser Schritt kann zum Beispiel mithilfe mindestens eines hierin beschriebenen Moduls ausgeführt werden. Schritt 306 beinhaltet ein Durchführen einer lokalen Combine-Operation an jeder Rechengruppe. Dieser Schritt kann zum Beispiel mithilfe mindestens eines hierin beschriebenen Moduls ausgeführt werden. Schritt 308 beinhaltet ein Durchführen einer globalen Combine-Operation an jedem des mindestens einen Schlüsselgruppenführers innerhalb jeder Rechengruppe auf der Grundlage eines Ergebnisses von der lokalen Combine-Operation. Dieser Schritt kann zum Beispiel ebenfalls mithilfe mindestens eines hierin beschriebenen Moduls ausgeführt werden.
  • Schritt 310 beinhaltet ein Durchführen einer globalen Map-Reduce-Operation an dem mindestens einen Schlüsselgruppenführer innerhalb jeder Rechengruppe. Dieser Schritt kann zum Beispiel mithilfe mindestens eines hierin beschriebenen Moduls ausgeführt werden. Das Durchführen einer globalen Map-Reduce-Operation kann ein Durchführen einer auf einem Steiner-Baum beruhenden Reduce-Operation an dem oder den Schlüsselgruppenführern innerhalb jeder Rechengruppe beinhalten. Zudem beinhaltet das Durchführen einer auf einem Steiner-Baum beruhenden Reduce-Operation ein Verwenden eines einzigen pro Schlüsselgruppe verwendeten verteilten Steiner-Baums.
  • Wie hierin ausgeführt ist das skalierbare anpassungsfähige Map-Reduce-Rahmenwerk mit verteilten Daten an die Art eines Kernels anpassbar (zum Beispiel rechenintensiv (Lastausgleichsproblem) bis hin zu datenübertragungsintensiv (große Schlüssel-Wert-Paare). Des Weiteren beinhalten die in 3 abgebildeten Techniken auch ein Verwenden mindestens eines Beschleunigers, um eine Ausführung einer Map-Reduce-Operation zu beschleunigen. Zu dem mindestens einen Beschleuniger kann zum Beispiel ein Bloom-Filter (der zum Beispiel in Verbindung mit Abfragen zur Schlüsselverfügbarkeit verwendet wird), ein Komprimierungs-/Dekomprimierungsbeschleuniger, ein kryptografischer Beschleuniger und ein Hybridsystembeschleuniger (zum Beispiel HEA und RegEx) zählen.
  • Ein Aspekt der Erfindung beinhaltet weiterhin ein Zusammenführen aller Ausgaben von Combine-Operationen in eine einzige Ausgabe. Zudem können die in 3 abgebildeten Techniken mindestens einen virtuellen Fat Node für eine festplattengestützte Map-Reduce-Operation beinhalten, wobei das Verwenden mindestens eines virtuellen Fat Node ein Verwenden einer Gruppe mindestens eines Basisknotens in einem Cluster aufweist, um eine Infrastruktur mit gemeinsamem verteiltem Speicher einzusetzen. Das Verwenden eines virtuellen Fat Node kann zum Beispiel ein Verwenden eines virtuellen Fat Node für eine speicherinterne Map-Reduce-Operation beinhalten.
  • Des Weiteren kann eine Ausführungsform der Erfindung zudem ein Verwenden des skalierbaren anpassungsfähigen Map-Reduce-Rahmenwerks mit verteilten Daten zum Ausführen von Analysen über mehrere Cluster hinweg unter Verwendung von Petabyte an Daten beinhalten.
  • Die in 3 abgebildeten Techniken können zudem wie hierin beschrieben ein Bereitstellen eines Systems beinhalten, wobei das System abgegrenzte Software-Module aufweist, von denen jedes auf einem gegenständlichen computerlesbaren aufzeichnungsfähigen Speichermedium ausgebildet ist. Zum Beispiel können sich all die Module (oder ein beliebiger Teilsatz davon) auf demselben Datenträger befinden, oder jedes kann sich auf einem anderen Datenträger befinden. Die Module können jede beliebige oder alle der in den Figuren gezeigten Komponenten aufweisen. In einem Aspekt der Erfindung kann zu den Modulen ein Initialisierungsmodul, ein Zuordnungsmodul, ein lokales Combine-Modul, ein Pfadermittlungsmodul, ein Netzwerk-Combine-Modul, ein globales Reduce-Modul und ein Neuverteilungsmodul zählen, die zum Beispiel auf einen Hardware-Prozessor ausgeführt werden können. Die Verfahrensschritte können dann mithilfe der vorstehend beschriebenen abgegrenzten Software-Module des Systems, die auf einem Hardware-Prozessor ausgeführt werden, durchgeführt werden. Weiterhin kann ein Computerprogrammprodukt ein gegenständliches computerlesbares aufzeichnungsfähiges Speichermedium mit Code aufweisen, der so eingerichtet ist, dass er ausgeführt werden kann, um mindestens einen hierin beschriebenen Verfahrensschritt auszuführen, wozu auch die Bereitstellung des Systems mit den abgegrenzten Software-Modulen zählt.
  • Des Weiteren können die in 3 abgebildeten Techniken mittels eines Computerprogrammprodukts realisiert werden, das durch Computer verwendbaren Programmcode enthält, der auf einem computerlesbaren Speichermedium in einem Datenverarbeitungssystem gespeichert ist, und wobei der durch Computer verwendbare Programmcode über ein Netzwerk von einem entfernt angeordneten Datenverarbeitungssystem heruntergeladen wurde. Zudem kann das Computerprogrammprodukt in einem Aspekt der Erfindung durch Computer verwendbaren Programmcode enthalten, der auf einem computerlesbaren Speichermedium in einem Server-Datenverarbeitungssystem gespeichert ist, und wobei der von Computern verwendbare Programmcode über ein Netzwerk auf ein entfernt angeordnetes Datenverarbeitungssystem zur Verwendung in einem computerlesbaren Speichermedium beim entfernt angeordneten System heruntergeladen wurde.
  • Wie für den Fachmann ersichtlich ist, können Aspekte der vorliegenden Erfindung als System, Verfahren, oder Computerprogrammprodukt ausgebildet 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 werden, die Software- und Hardware-Aspekte kombiniert, was hierin sämtlich allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet sein kann. Weiterhin können Aspekte der vorliegenden Erfindung in Form eines Computerprogrammprodukts ausgebildet werden, das auf einem computerlesbaren Datenträger mit darauf ausgebildetem computerlesbarem Programmcode enthalten sein kann.
  • Ein Aspekt der Erfindung oder Elemente davon können in der Form einer Vorrichtung realisiert werden, die einen Speicher und mindestens einen Prozessor beinhaltet, der mit dem Speicher verbunden und in der Lage ist, beispielhafte Verfahrensschritte durchzuführen.
  • Des Weiteren kann ein Aspekt der vorliegenden Erfindung Software nutzen, die auf einem universellen Computer oder Arbeitsplatzrechner (workstation) ausgeführt wird. Unter Bezugnahme auf 4 kann eine solche Realisierung zum Beispiel einen Prozessor 402, einen Speicher 404 und eine Eingabe/Ausgabe-Schnittstelle nutzen, die zum Beispiel durch eine Anzeige 406 und eine Tastatur 408 gebildet wird. Der hierin verwendete Begriff „Prozessor“ soll jede Verarbeitungseinheit einschließen, wie beispielsweise eine Verarbeitungseinheit, die eine Zentraleinheit (central processing unit, CPU) und/oder andere Formen von Verarbeitungsschaltungen einschließt. Weiterhin kann sich der Begriff „Prozessor“ auf mehr als einen einzelnen Prozessor beziehen. Der Begriff „Speicher“ soll Speicher in Verbindung mit einem Prozessor oder einer CPU wie beispielsweise RAM (Speicher mit wahlfreiem Zugriff), ROM (Nur-Lese-Speicher), eine fest eingebaute Speichereinheit (z.B. ein Festplattenlaufwerk), eine Wechselspeichereinheit (z.B. eine Diskette), einen Flash-Speicher und Ähnliches einschließen. Des Weiteren soll der hierin verwendete Ausdruck „Eingabe/Ausgabe-Schnittstelle“ zum Beispiel einen Mechanismus zum Eingeben von Daten in die Verarbeitungseinheit (zum Beispiel eine Maus) und einen Mechanismus zum Bereitstellen von Ergebnissen in Verbindung mit der Verarbeitungseinheit (zum Beispiel einen Drucker) einschließen. Der Prozessor 402, der Speicher 404 und die Eingabe/Ausgabe-Schnittstelle, wie beispielsweise die Anzeige 406 und eine Tastatur 408, können zum Beispiel über einen Bus 410 als Teil einer Datenverarbeitungseinheit 412 miteinander verbunden werden. Geeignete Verbindungen zum Beispiel über den Bus 410 können auch einer Netzwerkschnittstelle 414, wie beispielsweise einer Netzwerkkarte, bereitgestellt werden, die bereitgestellt werden kann, um eine Verbindung mit einem Computernetzwerk herzustellen, und einer Datenträgerschnittstelle 416, wie beispielsweise einem Disketten- oder CD-ROM-Laufwerk, das bereitgestellt werden kann, um eine Verbindung mit dem Datenträger 418 herzustellen.
  • Dementsprechend kann Computersoftware, die Anweisungen zum Durchführen der hierin beschriebenen Verfahrensweisen der Erfindung enthält, in einer zugehörigen Speichereinheit (zum Beispiel ROM, fest eingebauter oder Wechselspeicher) gespeichert und bei Verwendungsbereitschaft teilweise oder als Ganzes (zum Beispiel in RAM) geladen und durch eine CPU ausgeführt werden. Zu einer solchen Software können, ohne darauf beschränkt zu sein, Firmware, residente Software, Mikrocode und Ähnliches gehören.
  • Ein Datenverarbeitungssystem, das für das Speichern und/oder Ausführen von Programmcode geeignet ist, beinhaltet mindestens einen über einen Systembus 410 direkt oder indirekt mit Speicherelementen 404 verbundenen Prozessor 402. Die Speicherelemente können lokalen Speicher, der während der tatsächlichen Ausführung des Programmcodes eingesetzt wird, Massenspeicher und Cachespeicher einschließen, welche die vorübergehende Speicherung mindestens eines Teils des Programmcodes bereitstellen, um die Anzahl der Ladevorgänge von Code von Massenspeicher während der Ausführung zu verringern.
  • Eingabe/Ausgabe- bzw. E/A-Einheiten (einschließlich, jedoch nicht beschränkt auf Tastaturen 408, Anzeigen 406, Zeigeeinheiten und Ähnliches) können mit dem System entweder direkt (wie beispielsweise über den Bus 410) oder über zwischengeschaltete E/A-Steuereinheiten (I/O controllers) verbunden sein (die aus Gründen der Klarheit weggelassen wurden).
  • Netzwerkadapter, wie beispielsweise die Netzwerkschnittstelle 414, 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 werden kann. Modems, ein Kabelmodem und Ethernet-Karten stellen nur einige wenige der momentan erhältlichen Arten von Netzwerkadaptern dar.
  • Der hierin einschließlich der Ansprüche verwendete Begriff „Server“ schließt ein physisches Datenverarbeitungssystem (zum Beispiel das in 4 gezeigte System 412) mit ein, auf dem ein Serverprogramm ausgeführt wird. Es versteht sich, dass ein derartiger physischer Server eine Anzeige und eine Tastatur aufweisen kann, dies jedoch nicht der Fall sein muss.
  • Wie festgehalten können Aspekte der vorliegenden Erfindung in Form eines Computerprogrammprodukts ausgebildet werden, das auf einem computerlesbaren Datenträger mit darauf ausgebildetem computerlesbarem Programmcode enthalten sein kann. Zudem kann jede beliebige Kombination aus einem oder mehreren computerlesbaren Datenträgern verwendet werden. Bei dem computerlesbaren Datenträger kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein System, eine Vorrichtung oder eine Einheit elektronischer, magnetischer, optischer, elektromagnetischer, Infrarot verwendender oder Halbleiter verwendender Art sowie eine beliebige geeignete Kombination des zuvor Genannten handeln. Zu spezielleren Beispielen für das computerlesbare Speichermedium kann Folgendes 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 Nur-Lese-Speicher (read-only memory (ROM)), ein löschbarer programmierbarer Nur-Lese-Speicher (erasable programmable read-only memory (EPROM) oder Flash-Speicher), ein Lichtwellenleiter, ein transportabler Compact-Disk-Nur-Lese-Speicher (CD-ROM), 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 jeden gegenständlichen Datenträger handeln, der ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen beinhalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein ausgebreitetes Datensignal beinhalten, bei dem der computerlesbare Programmcode zum Beispiel in einem Basisbandsignal oder als Teil eines Trägerwellensignals ausgebildet ist. Solch ein ausgebreitetes Signal kann in jeder beliebigen einer Vielzahl von Formen ausgebildet werden, wie beispielsweise, jedoch nicht beschränkt auf, elektromagnetische, optische oder jede geeignete Kombination davon. Bei einem computerlesbaren Signalmedium kann es sich um einen beliebigen computerlesbaren Datenträger handeln, der kein computerlesbares Speichermedium ist und der 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.
  • Der in einem computerlesbaren Datenträger ausgebildete Programmcode kann mittels eines geeigneten Mediums übertragen werden, wie beispielsweise, jedoch nicht beschränkt auf, kabellose, kabelgebundene, Lichtwellenleiterkabel, Hochfrequenz (HF) usw. oder einer beliebigen geeigneten Kombination des zuvor Genannten.
  • Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder beliebigen Kombination aus mindestens einer Programmiersprache, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale 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 Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige 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.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Abbildungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Abbildungen von Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Abbildungen von Ablaufplänen und/oder den Blockschaubildern durch Computerprogrammanweisungen realisiert 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 zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen erzeugen.
  • 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 Blockschaubildes angegebenen Funktionen/Handlungen ausführen. Dementsprechend beinhaltet ein Aspekt der Erfindung einen Herstellungsartikel, auf dem computerlesbare Anweisungen gegenständlich ausgebildet sind, die bei Ausführung einen Computer veranlassen, eine Vielzahl von Verfahrensschritten wie sie hierin beschrieben sind auszuführen.
  • 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 realisierten Prozess zu erzeugen, so dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen bereitstellen.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und die Arbeitsweise möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block im Ablaufplan oder den Blockschaubildern für ein Modul, eine Komponente, ein Segment oder einen Codeabschnitt stehen, das/die/der mindestens eine ausführbare Anweisung zur Ausführung der angegebenen logischen Funktion oder Funktionen aufweist. Es soll zudem angemerkt werden, dass bei einigen alternativen Realisierungen die im Block angegebenen 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 Abbildung von Ablaufplänen und Kombinationen von Blöcken in den Blockschaubildern und/oder Abbildung von Ablaufplänen durch zweckbestimmte hardwaregestützte Systeme oder Kombinationen von zweckbestimmter Hardware und Computeranweisungen realisiert werden kann, welche die angegebenen Funktionen oder Handlungen durchführen.
  • Es soll festgehalten werden, dass jedes beliebige der hierin beschriebenen Verfahren einen zusätzlichen Schritt des Bereitstellens eines Systems aufweisen kann, das abgegrenzte Software-Module aufweist, die auf einem computerlesbaren Speichermedium ausgebildet sind; zu den Modulen können zum Beispiel eine beliebige oder alle der hierin geschilderten Komponenten zählen. Die Verfahrensschritte können dann mithilfe der vorstehend beschriebenen abgegrenzten Software-Module und/oder Teilmodule des Systems, die auf einem Hardware-Prozessor 402 ausgeführt werden, durchgeführt werden. Weiterhin kann ein Computerprogrammprodukt ein computerlesbares Speichermedium mit Code aufweisen, der so eingerichtet ist, dass er ausgeführt werden kann, um mindestens einen hierin beschriebenen Verfahrensschritt auszuführen, wozu auch die Bereitstellung des Systems mit den abgegrenzten Software-Modulen zählt.
  • In jedem Falle sollte beachtet werden, dass die hierin veranschaulichten Komponenten in verschiedenen Formen von Hardware, Software oder Kombinationen davon realisiert werden können; zum Beispiel anwendungspezifische integrierte Schaltung(en) (application specific integrated circuit(s) ASICS), funktionelle Schaltungen, ein geeignet programmierter digitaler universeller Computer mit zugehörigem Speicher und dergleichen. Angesichts der Lehren der hierin bereitgestellten Erfindung ist der Fachmann in der Lage, andere Realisierungen der Komponenten der Erfindung in Erwägung zu ziehen.
  • Die hierin verwendete Terminologie dient lediglich dem Zwecke des Beschreibens besonderer Ausführungsformen und ist nicht als die Erfindung einschränkend aufzufassen. Die hierin verwendeten Singularformen „ein“, „eine“ und „der“, „die“, „das“ sowie deren Deklinationen sollen ebenso die Pluralformen einschließen, sofern der Kontext nicht deutlich Anderes angibt. Es versteht sich weiterhin, dass die Begriffe „aufweisen“ und/oder „aufweisend“ bei Verwendung in diesem Dokument das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Vorgängen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder Hinzufügen eines weiteren Merkmals, einer weiteren ganzen Zahl, eines weiteren Schritts, Vorgangs, Elements, einer weiteren Komponente und/oder einer weiteren Gruppe davon ausschließt.
  • Die entsprechenden Strukturen, Materialien, Handlungen und Äquivalente aller Mittel oder Schritte sowie Funktionselemente in den nachfolgenden Ansprüchen sollen alle Strukturen, Materialien oder Handlungen zum Durchführen der Funktion in Kombination mit anderen beanspruchten Elementen, wie sie im Einzelnen beansprucht sind, einschließen. Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung vorgelegt, ist jedoch nicht als erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt aufzufassen. Viele Änderungen und Variationen sind für den Fachmann naheliegend, , ohne vom Umfang und Geist der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung am besten zu erklären und anderen Fachleuten ein Verständnis der Erfindung für verschiedene Ausführungsformen mit verschiedenen Änderungen, wie sie für den besonderen, in Erwägung gezogenen Gebrauch geeignet sind, zu ermöglichen.
  • Mindestens ein Aspekt der Erfindung kann eine vorteilhafte Wirkung wie beispielsweise das Nutzen von Fortschritten in der Prozessortechnologie bereitstellen, um das Kosten-Leistungs-Verhältnis zu verbessern.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung vorgelegt, sind jedoch nicht als erschöpfend oder auf die offenbarten Ausführungsformen beschränkt aufzufassen. Viele Änderungen und Variationen sind für den Fachmann naheliegend, ohne vom Umfang und Geist der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technischen Verbesserungen gegenüber auf dem Markt anzutreffenden Technologien am besten zu erklären oder um anderen Fachleuten ein Verständnis der hierein offenbarten Ausführungsformen zu ermöglichen.

Claims (12)

  1. Verfahren zum Erzeugen eines skalierbaren anpassungsfähigen Map-Reduce-Rahmenwerks mit verteilten Daten für mindestens einen Cluster mit mehreren Kernen, wobei das Verfahren aufweist: Aufteilen eines Clusters in eine Mehrzahl von Rechengruppen; Ermitteln mindestens eines Schlüsselgruppenführers zur Erzeugung von Schlüsselgruppen innerhalb jeder Rechengruppe; Durchführen einer ersten Combine-Operation an jeder Rechengruppe; Durchführen einer zweiten Combine-Operation an jedem der mindestens einen Schlüsselgruppenführer innerhalb jeder Rechengruppe auf der Grundlage eines Ergebnisses von der lokalen Combine-Operation; und Durchführen asynchroner globaler Map-Reduce-Operationen an jedem der mindestens einen Schlüsselgruppenführer innerhalb jeder Rechengruppe durch Ausführung einer Steiner-Baum-basierten Reduce-Operation an jedem der mindestens einen Schlüsselgruppenführer innerhalb jeder Rechengruppe, wobei für diese Steiner-Baum-basierten Reduce-Operation ein verteilter Steiner-Baum pro Schlüsselgruppe verwendet wird; wobei mindestens einer der Schritte durch eine Computereinheit ausgeführt wird.
  2. Verfahren nach Anspruch 1, wobei das skalierbare anpassungsfähige Map-Reduce-Rahmenwerk mit verteilten Daten an eine Art eines Kernels anpassbar ist.
  3. Verfahren nach Anspruch 1, weiterhin aufweisend: Verwenden mindestens eines Beschleunigers, um eine Ausführung einer Map-Reduce-Operation zu beschleunigen.
  4. Verfahren nach Anspruch 5, wobei der mindestens eine Beschleuniger mindestens eines aufweist von: ein Bloom-Filter, ein Komprimierungs-/Dekomprimierungs-Beschleuniger, ein kryptografischer Beschleuniger und ein Hybridsystembeschleuniger.
  5. Verfahren nach Anspruch 1, weiterhin aufweisend: Zusammenführen aller Combine-Operation-Ausgaben in eine einzige Ausgabe durch eine Reduce-Operation.
  6. Verfahren nach Anspruch 1, weiterhin aufweisend: Verwenden mindestens eines virtuellen Fat Node für eine festplattengestützte Map-Reduce-Operation, wobei das Verwenden mindestens eines virtuellen Fat Node ein Verwenden einer Gruppe mindestens eines Basisknotens in einem Cluster aufweist, um eine Infrastruktur mit gemeinsamem verteiltem Speicher einzusetzen.
  7. Verfahren nach Anspruch 6, wobei das Verwenden mindestens eines virtuellen Fat Node ein Verwenden mindestens eines virtuellen Fat Node für eine speicherinterne Map-Reduce-Operation aufweist.
  8. Verfahren nach Anspruch 1, weiterhin aufweisend: Verwenden des skalierbaren anpassungsfähigen Map-Reduce-Rahmenwerks mit verteilten Daten, um Analysen über mehrere Cluster hinweg unter Verwendung von Petabyte an Daten auszuführen.
  9. Verfahren nach Anspruch 1, weiterhin aufweisend: Bereitstellen eines System, wobei das System mindestens ein abgegrenztes Software-Modul aufweist, wobei jedes abgegrenzte Software-Modul auf einem gegenständlichen computerlesbaren aufzeichnungsfähigen Speichermedium ausgebildet ist, und wobei das mindestens eine abgegrenzte Software-Modul ein Initialisierungsmodul, ein Zuordnungsmodul, ein lokales Combine-Modul, ein Pfadermittlungsmodul, ein Netzwerk-Combine-Modul, ein globales Reduce-Modul und ein Neuverteilungsmodul aufweist, die auf einem Hardware-Prozessor ausgeführt werden.
  10. Herstellungsartikel, der ein computerlesbares Speichermedium mit gegenständlich darauf ausgebildeten computerlesbaren Anweisungen aufweist, die bei Ausführen einen Computer veranlassen, eine Vielzahl von Verfahrensschritten auszuführen, aufweisend: Aufteilen eines Clusters in mindestens eine Rechengruppe; Ermitteln mindestens eines Schlüsselgruppenführers zur Erzeugung von Schlüsselgruppen innerhalb jeder Rechengruppe; Durchführen einer ersten Combine-Operation an jeder Rechengruppe; Durchführen einer zweiten Combine-Operation an jedem des mindestens einen Schlüsselgruppenführers innerhalb jeder Rechengruppe auf der Grundlage eines Ergebnisses von der lokalen Combine-Operation; und Durchführen asynchroner globaler Map-Reduce-Operationen an jedem der mindestens einen Schlüsselgruppenführer innerhalb jeder Rechengruppe durch Ausführung einer Steiner-Baum-basierten Reduce-Operation an jedem der mindestens einen Schlüsselgruppenführer innerhalb jeder Rechengruppe, wobei für diese Steiner-Baum-basierten Reduce-Operation ein verteilter Steiner-Baum pro Schlüsselgruppe verwendet wird.
  11. System zum Erzeugen eines skalierbaren anpassungsfähigen Map-Reduce-Rahmenwerks mit verteilten Daten für mindestens einen Cluster mit mehreren Kernen, aufweisend: mindestens ein abgegrenztes Software-Modul, wobei jedes abgegrenzte Software-Modul auf einem gegenständlichen computerlesbaren Datenträger ausgebildet ist; einen Speicher; und mindestens einen Prozessor, der mit dem Speicher verbunden und in der Lage ist zum: Aufteilen eines Clusters in mindestens eine Rechengruppe; Ermitteln mindestens eines Schlüsselgruppenführers zur Erzeugung von Schlüsselgruppen innerhalb jeder Rechengruppe; Durchführen einer ersten Combine-Operation an jeder Rechengruppe; Durchführen einer zweiten Combine-Operation an jedem des mindestens einen Schlüsselgruppenführers innerhalb jeder Rechengruppe auf der Grundlage eines Ergebnisses von der lokalen Combine-Operation; und Durchführen asynchroner globaler Map-Reduce-Operationen an jedem der mindestens einen Schlüsselgruppenführer innerhalb jeder Rechengruppe durch Ausführung einer Steiner-Baum-basierten Reduce-Operation an jedem der mindestens einen Schlüsselgruppenführer innerhalb jeder Rechengruppe, wobei für diese Steiner-Baum-basierten Reduce-Operation ein verteilter Steiner-Baum pro Schlüsselgruppe verwendet wird.
  12. Vorrichtung zum Erzeugen eines skalierbaren anpassungsfähigen Map-Reduce-Rahmenwerks mit verteilten Daten für mindestens einen Cluster mit mehreren Kernen, wobei die Vorrichtung aufweist: ein Mittel zum Aufteilen eines Clusters in mindestens eine Rechengruppe; ein Mittel zum Ermitteln mindestens eines Schlüsselgruppenführers zur Erzeugung von Schlüsselgruppen innerhalb jeder Rechengruppe; ein Mittel zum Durchführen einer ersten Combine-Operation an jeder Rechengruppe; ein Mittel zum Durchführen einer zweiten Combine-Operation an jedem des mindestens einen Schlüsselgruppenführers innerhalb jeder Rechengruppe auf der Grundlage eines Ergebnisses von der lokalen Combine-Operation; und ein Mittel zum Durchführen asynchroner globaler Map-Reduce-Operationen an jedem der mindestens einen Schlüsselgruppenführer innerhalb jeder Rechengruppe durch Ausführung einer Steiner-Baum-basierten Reduce-Operation an jedem der mindestens einen Schlüsselgruppenführer innerhalb jeder Rechengruppe, wobei für diese Steiner-Baum-basierten Reduce-Operation ein verteilter Steiner-Baum pro Schlüsselgruppe verwendet wird.
DE102012216029.9A 2011-09-30 2012-09-11 Ein skalierbares anpassungsfähiges map-reduce-rahmenwerk mit verteilten daten Active DE102012216029B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/249,378 US9053067B2 (en) 2011-09-30 2011-09-30 Distributed data scalable adaptive map-reduce framework
US13/249,378 2011-09-30

Publications (2)

Publication Number Publication Date
DE102012216029A1 DE102012216029A1 (de) 2013-04-04
DE102012216029B4 true DE102012216029B4 (de) 2021-11-11

Family

ID=47137329

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012216029.9A Active DE102012216029B4 (de) 2011-09-30 2012-09-11 Ein skalierbares anpassungsfähiges map-reduce-rahmenwerk mit verteilten daten

Country Status (3)

Country Link
US (2) US9053067B2 (de)
DE (1) DE102012216029B4 (de)
GB (1) GB2511471A (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9053067B2 (en) * 2011-09-30 2015-06-09 International Business Machines Corporation Distributed data scalable adaptive map-reduce framework
US9747128B1 (en) * 2011-12-21 2017-08-29 EMC IP Holding Company LLC Worldwide distributed file system model
US9747127B1 (en) * 2012-03-30 2017-08-29 EMC IP Holding Company LLC Worldwide distributed job and tasks computational model
US9489233B1 (en) * 2012-03-30 2016-11-08 EMC IP Holding Company, LLC Parallel modeling and execution framework for distributed computation and file system access
US9201638B2 (en) * 2012-08-07 2015-12-01 Nec Laboratories America, Inc. Compiler-guided software accelerator for iterative HADOOP® jobs
US9146830B2 (en) * 2012-10-26 2015-09-29 Jsmapreduce Corporation Hybrid local/remote infrastructure for data processing with lightweight setup, powerful debuggability, controllability, integration, and productivity features
US20140237017A1 (en) * 2013-02-15 2014-08-21 mParallelo Inc. Extending distributed computing systems to legacy programs
KR101480867B1 (ko) * 2013-05-31 2015-01-09 삼성에스디에스 주식회사 맵리듀스 연산 가속 시스템 및 방법
US9596295B2 (en) * 2013-06-29 2017-03-14 Google Inc. Computing connected components in large graphs
CN103593418B (zh) * 2013-10-30 2017-03-29 中国科学院计算技术研究所 一种面向大数据的分布式主题发现方法及系统
US10579435B2 (en) * 2014-02-28 2020-03-03 Pivotal Software, Inc. Executing a foreign program on a parallel computing system
US11487771B2 (en) 2014-06-25 2022-11-01 Microsoft Technology Licensing, Llc Per-node custom code engine for distributed query processing
CN105446896B (zh) * 2014-08-29 2018-05-04 国际商业机器公司 映射化简应用的缓存管理方法和装置
US9910888B2 (en) 2014-10-01 2018-03-06 Red Hat, Inc. Map-reduce job virtualization
CN104462253B (zh) * 2014-11-20 2018-05-18 武汉数为科技有限公司 一种面向网络文本大数据的话题检测或跟踪方法
US10102029B2 (en) * 2015-06-30 2018-10-16 International Business Machines Corporation Extending a map-reduce framework to improve efficiency of multi-cycle map-reduce jobs
KR101995056B1 (ko) * 2015-12-30 2019-07-02 한국전자통신연구원 분산 파일 시스템 및 이의 운영방법
US9916344B2 (en) 2016-01-04 2018-03-13 International Business Machines Corporation Computation of composite functions in a map-reduce framework
US11061736B2 (en) 2016-08-18 2021-07-13 International Business Machines Corporation Multiple parallel reducer types in a single map-reduce job
KR102610984B1 (ko) * 2017-01-26 2023-12-08 한국전자통신연구원 토러스 네트워크를 이용하는 분산 파일 시스템 및 토러스 네트워크를 이용하는 분산 파일 시스템의 운영 방법
EP3506485A1 (de) * 2017-12-26 2019-07-03 Ikerlan, S. Coop Verfahren zur steuerung einer leistungswandlung system dafür
CN111415007B (zh) * 2020-03-26 2023-01-17 中科寒武纪科技股份有限公司 一种计算数据的方法、装置、板卡及计算机可读存储介质
US11494081B2 (en) * 2020-10-09 2022-11-08 Seagate Technology Llc System and method for using telemetry data to change operation of storage middleware client of a data center

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226005B1 (en) * 1997-01-31 2001-05-01 LAFERRIèRE ALAIN M Method and system for determining and/or using illumination maps in rendering images
JP2002073830A (ja) 2000-08-25 2002-03-12 Fujitsu Ltd コマース情報流通システム
US7386554B2 (en) 2002-09-03 2008-06-10 Infoglide Software Corporation Remote scoring and aggregating similarity search engine for use with relational databases
JP2005056077A (ja) 2003-08-01 2005-03-03 Hitachi Ltd データベース制御方法
US20080074431A1 (en) 2003-11-19 2008-03-27 Reuven Bakalash Computing system capable of parallelizing the operation of multiple graphics processing units (GPUS) supported on external graphics cards
US7756919B1 (en) 2004-06-18 2010-07-13 Google Inc. Large-scale data processing in a distributed and parallel processing enviornment
US7590620B1 (en) * 2004-06-18 2009-09-15 Google Inc. System and method for analyzing data records
US7650331B1 (en) * 2004-06-18 2010-01-19 Google Inc. System and method for efficient large-scale data processing
US8239394B1 (en) * 2005-03-31 2012-08-07 Google Inc. Bloom filters for query simulation
US8082289B2 (en) 2006-06-13 2011-12-20 Advanced Cluster Systems, Inc. Cluster computing support for application programs
US8190610B2 (en) * 2006-10-05 2012-05-29 Yahoo! Inc. MapReduce for distributed database processing
US7523123B2 (en) * 2006-11-16 2009-04-21 Yahoo! Inc. Map-reduce with merge to process multiple relational datasets
US7970872B2 (en) 2007-10-01 2011-06-28 Accenture Global Services Limited Infrastructure for parallel programming of clusters of machines
JP5542688B2 (ja) 2007-12-11 2014-07-09 トムソン ライセンシング ユーザによるコンテンツへのアクセスを最適化する装置及び方法
US20100162230A1 (en) 2008-12-24 2010-06-24 Yahoo! Inc. Distributed computing system for large-scale data handling
EP2443574A4 (de) * 2009-06-19 2014-05-07 Blekko Inc Skalierbare clusterdatenbank
US8321454B2 (en) * 2009-09-14 2012-11-27 Myspace Llc Double map reduce distributed computing framework
US8276148B2 (en) 2009-12-04 2012-09-25 International Business Machines Corporation Continuous optimization of archive management scheduling by use of integrated content-resource analytic model
US8230046B2 (en) 2009-12-15 2012-07-24 Facebook, Inc. Setting cookies in conjunction with phased delivery of structured documents
US8060773B1 (en) 2009-12-16 2011-11-15 Symantec Corporation Systems and methods for managing sub-clusters within a multi-cluster computing system subsequent to a network-partition event
KR101285078B1 (ko) 2009-12-17 2013-07-17 한국전자통신연구원 스트림 데이터에 대한 점진적인 맵리듀스 기반 분산 병렬 처리 시스템 및 방법
US9619291B2 (en) 2009-12-20 2017-04-11 Yahoo! Inc. System and method for a task management library to execute map-reduce applications in a map-reduce framework
US20120016901A1 (en) 2010-05-18 2012-01-19 Google Inc. Data Storage and Processing Service
CN102693230B (zh) 2011-03-23 2015-12-09 伊姆西公司 用于存储区域网络的文件系统
US9170846B2 (en) * 2011-03-29 2015-10-27 Daniel Delling Distributed data-parallel execution engines for user-defined serial problems using branch-and-bound algorithm
US8954967B2 (en) * 2011-05-31 2015-02-10 International Business Machines Corporation Adaptive parallel data processing
US9053067B2 (en) * 2011-09-30 2015-06-09 International Business Machines Corporation Distributed data scalable adaptive map-reduce framework

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
„Handling Data Skew in MapReduce‟ betrifft die folgenden Lastverteilungsaspekte im Map-Reduce für E-Science: Abschätzung der Partitionskosten, Zuweisung von Partitionen zu Reducern, Anzahl der Partitionen und Auswertung (Benjamin GUFLER [et al]: Handling Data Skew in MapReduce. Foliensatz. May 8, 2011
Benjamin GUFLER [et al]: Handling Data Skew in MapReduce. Foliensatz. May 8, 2011. URL: http://www3.in.tum.de/research/publications/conferences/closer2011-100-presentation.pdf [abgerufen am 15.4.2013 unter http://www3.in.tum.de/research/publications/#2011]
Benjamin GUFLER [et al]: Handling Data Skew in MapReduce. In: Proceedings of the 1 st International Conference on Cloud Computing and Services Science (CLOSER 2011, Noordwijkerhout, Niederlande), S. 574-583. 7. -9. Mai 2011
Benjamin GUFLER [et al]: Handling Data Skew in MapReduce. In: Proceedings of the 1st International Conference on Cloud Computing and Services Science (CLOSER 2011, Noordwijkerhout, Niederlande), S. 574-583. 7. – 9. Mai 2011. URL: http://www3.in.tum.de/research/publications/conferences/closer2011-100.pdf [abgerufen am 15.4.2013 unter http://www3.in.tum.de/research/publications/#2011]
Hung-chih YANG [et al]: Map-Reduce-Merge: Simplified Relational Data Processing on Large Clusters. In: SIGMOD '07 Proceedings of the 2007 ACM SIGMOD international conference on Management of data, S. 1029-1040. 2007. ISBN: 978-1-59593-686-8. DOI: 10.1145/1247480.1247602
Hung-chih YANG [et al]: Map-Reduce-Merge: Simplified Relational Data Processing on Large Clusters. In: SIGMOD '07 Proceedings of the 2007 ACM SIGMOD international conference on Management of data, S. 1029-1040. 2007. ISBN: 978-1-59593-686-8. DOI:10.1145/1247480.1247602
Spiros PAPADIMITRIOU und Jimeng SUN: DisCo: Distributed Co-clustering with Map-Reduce: A Case Study towards Petabyte-Scale End-to-End Mining. In: ICDM '08, Eighth IEEE International Conference on Data Mining, S. 512-521. 15. - 19. Dezember 2008. DOI: 10.1109/ICDM.2008.142
Spiros PAPADIMITRIOU und Jimeng SUN: DisCo: Distributed Co-clustering with Map-Reduce: A Gase Study towards Petabyte-Scale End-to-End Mining. In: „-ICDM '08, Eighth IEEE International Conference on Data Mining, S. 512-521. 15. - 19. Dezember 2008
Yolanda BECERRA [et al]: Speeding Up Distributed MapReduce Applications Using Hardware Accelerators. In: Parallel Processing, 2009, ICPP '09, International Conference on, S. 42-49. 22. - 25. September 2009. DOI: 10.1 109/ICPP.2009.59
Yolanda BECERRA [et al]: Speeding Up Distributed MapReduce Applications Using Hardware Accelerators. In: Parallel Processing, 2009, ICPP '09, International Conference on, S. 42-49. 22. - 25. September 2009. DOI: 10.1109/ICPP.2009.59

Also Published As

Publication number Publication date
US8959138B2 (en) 2015-02-17
US20130086356A1 (en) 2013-04-04
GB201216269D0 (en) 2012-10-24
GB2511471A (en) 2014-09-10
DE102012216029A1 (de) 2013-04-04
US9053067B2 (en) 2015-06-09
US20130086355A1 (en) 2013-04-04

Similar Documents

Publication Publication Date Title
DE102012216029B4 (de) Ein skalierbares anpassungsfähiges map-reduce-rahmenwerk mit verteilten daten
DE102013207049B4 (de) Überwachen der Datenstrompufferung zur Optimierung der Operatorverarbeitung
CN109993299B (zh) 数据训练方法及装置、存储介质、电子装置
DE112013000752B4 (de) Verwalten von Verarbeitungselementen in einem Streaming-Datensystem
Verma et al. Breaking the MapReduce stage barrier
DE102017109239A1 (de) Computerimplementiertes verfahren, computerlesbares medium und heterogenes rechnersystem
CN106547882A (zh) 一种智能电网中营销大数据的实时处理方法及系统
Nasridinov et al. Decision tree construction on GPU: ubiquitous parallel computing approach
WO2022068663A1 (zh) 内存分配方法、相关设备及计算机可读存储介质
Bala et al. P-ETL: Parallel-ETL based on the MapReduce paradigm
CN111488177A (zh) 数据处理方法、装置、计算机设备和存储介质
DE102021107586A1 (de) Spekulatives training unter verwendung der aktualisierung partieller gradienten
DE112020005789T5 (de) Hierarchische partitionierung von operatoren
DE112020006010T5 (de) Schulung eines neuronalen netzwerks durch verwenden eines datenflussgraphen und dynamische verwaltung von arbeitsspeicher
Lee et al. Performance improvement of mapreduce process by promoting deep data locality
DE112021003274T5 (de) Ressourcenzuordnung zum optimieren von hyperparametern bei umfangreichen deep-learning-arbeitslasten
Vo et al. MaReIA: a cloud MapReduce based high performance whole slide image analysis framework
DE112021001767T5 (de) Rationalisieren von datenverarbeitungsoptimierungen für arbeitslasten mit maschinellem lernen
Shibla et al. Improving efficiency of DBSCAN by parallelizing kd-tree using spark
US20220391571A1 (en) Fast quantum circuit simulations with parallel task-based tensor network contraction
Rehab et al. Scalable massively parallel learning of multiple linear regression algorithm with MapReduce
Urbani et al. WebPIE: a web-scale parallel inference engine
DE102015116036A1 (de) Dezentrale Realzeitrechenstruktur, die eine speicherinterne Verarbeitung verwendet
Perwej et al. An extensive investigate the mapreduce technology
Ibrahim Optimizing breadth-first search at scale using hardware-accelerated space consistency

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final