DE102016122623A1 - Optimierte aufgabenaufteilung durch data-mining - Google Patents

Optimierte aufgabenaufteilung durch data-mining Download PDF

Info

Publication number
DE102016122623A1
DE102016122623A1 DE102016122623.8A DE102016122623A DE102016122623A1 DE 102016122623 A1 DE102016122623 A1 DE 102016122623A1 DE 102016122623 A DE102016122623 A DE 102016122623A DE 102016122623 A1 DE102016122623 A1 DE 102016122623A1
Authority
DE
Germany
Prior art keywords
tasks
task
cores
workload
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102016122623.8A
Other languages
English (en)
Inventor
Shige Wang
Stephen G. Lusko
Shuqing Zeng
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.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
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 GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102016122623A1 publication Critical patent/DE102016122623A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Abstract

Verfahren zum Aufteilen von Aufgaben in einem mehrkernigen ECU. Eine Signalliste einer Link-Map-Datei wird in einen Speicher extrahiert. Speicherzugriffslinien bezüglich der ausgeführten Aufgaben werden vom ECU erhalten. Eine Anzahl von Malen, mit der jede Aufgabe auf einen Speicherplatz zugreift, wird identifiziert. Zwischen jeder Aufgabe und jedem Zugriff auf den Speicherplatz wird ein Korrelationsdiagramm erstellt. Das Korrelationsdiagramm identifiziert einen Grad einer verknüpfenden Beziehung zwischen jeder Aufgabe und jedem Speicherplatz. Das Korrelationsdiagramm wird neu geordnet, sodass die jeweiligen Aufgaben und die dazugehörigen Speicherplätze mit einem größeren Grad verknüpfender Beziehungen benachbart sind. Die Aufgaben werden in eine entsprechende Anzahl von Kernen im ECU aufgeteilt. Das Zuordnen von Aufgaben und Speicherplätzen auf die jeweilige Anzahl von Kernen wird als Funktion eines wesentlichen Ausgleichs der Arbeitsbelastungen mit minimaler Querkommunikation unter den jeweiligen Kernen ausgeführt.

Description

  • HINTERGRUND DER ERFINDUNG
  • Eine Ausführungsform bezieht sich auf einen Satz von Aufgaben auf einem elektronischen Steuermodul.
  • Ein Mehrkernprozessor, der innerhalb eines einzigen Chips integriert ist und typischerweise als eine einzige Recheneinheit mit zwei oder mehreren unabhängigen Datenverarbeitungseinheiten bezeichnet wird, die im Allgemeinen als Kerne bezeichnet werden. Die Kerne führen typischerweise Lesebefehle und programmierte Anweisungen aus. Beispiele solcher Anweisungen sind das Hinzufügen von Daten und das Verschieben von Daten. Eine Leistung des Mehrkernprozessors ist, dass die Kerne mehrere Anweisungen gleichzeitig, parallel ausführen können.
  • Die Speicherlayouts beeinflussen die Speicherbandbreite der cacheaktivierten Architektur für elektronische Steuermodule (ECU). Wenn zum Beispiel ein Mehrkernprozessor ineffizient ausgelegt ist, können Engstellen beim Abrufen von Daten auftreten, wenn die Aufgaben nicht korrekt auf mehrere Kerne verteilt sind, was auch die Kommunikationskosten beeinflusst.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Ein Vorteil einer Ausführungsform ist die Optimierung des Zugriffs auf Daten in einem globalen Speicher, sodass Daten, die an einer entsprechenden Stelle gespeichert werden, und auf die durch eine entsprechende Aufgabe zugegriffen werden kann, durch einen entsprechenden gleichen Kern verarbeitet werden können. Zusätzlich wird die Arbeitsbelastung zwischen den Kernen unter der jeweiligen Anzahl der Kerne des Mehrkernprozessors ausgeglichen, sodass jeder der jeweiligen Kerne eine ähnliche Verarbeitung der Arbeitsbelastung durchführt. Die hierin beschriebenen Ausführungsformen erzeugen eine Vielzahl von Permutationen, basierend auf Umordnungstechniken zur Paarung der entsprechenden Aufgaben mit entsprechenden Speicherplätzen, basierend auf dem Zugriff auf die Speicherplätze. Permutationen sind basierend auf der Anzahl der gewünschten Kerne gegliedert und unterteilt, bis eine jeweilige Permutation identifiziert ist, die eine ausgeglichene Arbeitsbelastung der Kerne erzeugt und die Kommunikationskosten minimiert.
  • Eine Ausführungsform betrachtet ein Verfahren zum Aufteilen von Aufgaben in einem mehrkernigen elektronischen Steuermodul (ECU). Eine Signalliste einer Link-Map-Datei wird in einen Speicher extrahiert. Die Link-Map-Datei beinhaltet eine Textdatei, in der beschrieben wird, wo auf die Daten innerhalb einer globalen Speichervorrichtung zugegriffen wird. Es werden Speicherzugrifflinien bezüglich der ausgeführten Aufgaben der Signalliste erhalten. Eine Anzahl von Malen griff jede Aufgabe auf einen Speicherplatz zu und die zugehörige Arbeitsbelastung im ECU wird erkannt. Zwischen jeder Aufgabe und jedem aufgerufenem Speicherplatz wird ein Korrelationsdiagramm erstellt. Das Korrelationsdiagramm identifiziert einen Grad einer verknüpfenden Beziehung zwischen jeder Aufgabe und jedem Speicherplatz. Das Korrelationsdiagramm wird neu geordnet, sodass die entsprechenden Aufgaben und die dazugehörigen Speicherplätze mit einem größeren Grad verknüpfender Beziehungen benachbart sind. Der Mehrkernprozessor ist in eine jeweilige Anzahl von Kernen aufgeteilt, worin zugewiesene Aufgaben und Speicherplätze unter der jeweiligen Anzahl der Kerne als eine Funktion des wesentlichen Ausgleichs der Arbeitsbelastungen unter den jeweiligen Kernen ausgeführt wird.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockschaltbild von Hardware zur Optimierung der Aufgabenaufteilung.
  • 2 ist eine beispielhafte gewichtete Korrelationsmatrix.
  • 3 ist eine exemplarische, bipartite graphische Darstellung für eine erste Permutation.
  • 4 ist eine exemplarische, bipartite graphische Darstellung für eine neu geordnete Permutation und Aufteilung.
  • 5 ist ein Flussdiagramm eines Verfahrens zum Optimieren der Aufgabenaufteilung.
  • DETAILLIERTE BESCHREIBUNG
  • 1 ist ein Blockschaltbild von Hardware zur Optimierung der Aufgabenaufteilung. Die entsprechenden Algorithmen, die Anwendungscodes ausführen, werden auf einem elektronischen Steuermodul (ECU) 10 ausgeführt. Die ausgeführten Algorithmen sind die Programme, die bei der Herstellung ausgeführt werden (z. B.
  • Motorsteuerung eines Fahrzeugs, Computer, Spiele, Betriebseinrichtung, oder jegliche andere elektronische Steuerungen, die ein elektronisches Steuermodul umfassen). Daten werden geschrieben und an verschiedene Adressen innerhalb einer globalen Speichervorrichtung 12 ausgelesen.
  • Eine Map-Link-Datei 14 ist eine Textdatei, die beschreibt, wo Daten und Codes in den ausführbaren Programmen innerhalb der globalen Speichervorrichtung 12 gespeichert werden. Die Map-Link-Datei 14 beinhaltet Trace-Dateien, in denen ein Ereignisprotokoll gespeichert ist, das die innerhalb der globalen Speichereinrichtung 12 erfolgten Transaktionen sowie Codes und Daten beschreibt. Daraus kann eine Map-Link-Datei 14 zur Identifizierung aller Aufgaben und der zugehörigen Speicheradressen resultieren, auf die während der Ausführung des Anwendungscodes durch die ECU 10 zugegriffen wurde.
  • Ein Mining-Prozessor 16 wird zum Data-Mining 18 aus der globalen Speichereinrichtung 12, zum Neuordnen von Aufgaben und den zugehörigen Speicherplätzen 20, zum Identifizieren von Arbeitsbelastungen einer Permutation 22 und zum Aufteilen von Aufgaben und den zugehörigen Speicherplätzen 24 verwendet, um den Mehrkernprozessor zu entwickeln.
  • In Bezug zum Daten-Mining, wird für jede Aufgabe (z. B. A, B, C, D) eine Trefferzahl-Tabelle für den Speicherzugriff konstruiert, wie in 2 veranschaulicht. Der Begriff 'Trefferzahl' bezieht sich auf die Anzahl von Malen, mit der eine entsprechende Aufgabe ein Signal überträgt, um auf eine entsprechende Speicheradresse des globalen Speichers zuzugreifen. Eine Matrix X wird basierend auf der Trefferzahl erstellt. Wie in 2 veranschaulicht, sind Aufgaben in den horizontalen Zeilen der Matrix aufgeführt, und die Signale, die den Zugriff auf die Speicherplätze der globalen Speichervorrichtung repräsentieren, sind in den Spalten der Matrix aufgeführt. Wie in der Matrix dargestellt, greift Aufgabe A fünf Mal auf sa und zwanzig Mal auf sd zu. Aufgabe B greift zehn Mal auf sa, ein Mal auf sb, sechs Mal auf sd, ein Mal auf se und ein Mal auf sf zu. Die Matrix setzt jede Aufgabe mit jedem Speicherplatz in Beziehung, und identifiziert, wie oft von der entsprechenden Aufgabe auf den entsprechenden Speicherplatz zugegriffen wurde, um Daten zu speichern und auszulesen.
  • Nachdem die Matrix X erstellt wurde, erzeugt der Mining-Prozessor Permutationen, die verwendet werden, um die entsprechende Permutation zu identifizieren, die die effizienteste Verteilung bietet, um die Arbeitsbelastung der ECU gleichmäßig zu verteilen.
  • Permutationen sind verschiedene Listen von Sortieraufgaben und Speicherplätzen. Wie in 3 dargestellt, wird ein Korrelationsdiagramm konstruiert, wie beispielsweise eine bipartite graphische Darstellung. Es ist zu beachten, dass andere graphische Darstellungen oder Werkzeuge verwendet werden können, ohne vom Umfang der Erfindung abzuweichen. Wie in 3 dargestellt, werden die Aufgaben in einer Spalte (z. B. in alphabetischer Reihenfolge) auf der linken Seite der bipartiten graphischen Darstellung aufgeführt. Auf der rechten Seite der bipartiten graphischen Darstellung, werden die aufgerufenen Speicherplätze in einer zweiten Spalte aufgeführt. Zu Zwecken der bipartiten graphischen Darstellung werden die Aufgaben als Aufgabenknoten und die aufgerufenen Speicherplätze als Speicherknoten bezeichnet. Es werden Linien gezogen, die bei einem Treffer zwischen einem entsprechenden Aufgabenknoten und einem entsprechenden Speicherknoten einen entsprechenden Aufgabeknoten mit einem entsprechenden Speicherknoten verbinden. Die Verbindungslinien zwischen den Aufgabenknoten und den Speicherknoten werden gewichtet, wie in 3 auf Grundlage der Trefferanzahl dargestellt. In der bipartiten graphischen Darstellung ist die Anzahl der Treffer zwischen den Aufgabenknoten und Speicherknoten umso größer, je dicker die Linie ist. In der anfänglichen, in 3 dargestellten Permutation, können Linien, die Aufgabenknoten und Speicherknoten verbinden, distal sein, was bedeutet, dass ein Aufgabenknoten am oberen Ende der ersten Spalte mit einem Speicherknoten am unteren Ende der zweiten Spalte verbunden sein kann. Wenn diese Permutation am Mittelpunkt beider Spalten gleichmäßig aufgeteilt wurde, dann würde eine erhebliche Menge der Kommunikation zwischen den beiden Kernen auftreten (z. B. Querkommunikation), was ineffizient wäre und die Kommunikationskosten erhöhen würde, und insbesondere würde daraus ein größeres Maß an Ineffizienz resultieren, wenn jene jeweiligen Querkommunikationsverbindungen zwischen beiden Kernen stark gewichtete Kommunikationsverbindungen wären. Zusätzlich kann ein entsprechender Kern einen größeren Teil der Arbeitsbelastungsverteilung tragen, wenn die Aufgaben, die rechenintensiv sind, einem entsprechenden Kern zugeordnet sind. Deshalb werden verschiedene Permutationen durchgeführt, in dem die Aufgabenknoten und Speicherknoten neu geordnet werden.
  • 4 veranschaulicht eine entsprechende Permutation, in der die Speicherplätze neu geordnet wurden. Verschiedene Techniken können verwendet werden, um die Speicherknoten neu zu ordnen, um Effizienz zu erzielen und die Kommunikationskosten zu minimieren. Ein solches Verfahren kann umfassen, ist aber nicht darauf beschränkt, das Neuordnen der Aufgaben- und Speicherknoten, sodass ein entsprechender Aufgabenknoten und der dazugehörige Speicherknoten, durch eine Linie mit hoher Gewichtung verbunden sind (z. B. zahlreiche Treffer), im Vergleich zu allen anderen Paaren, und in der bipartiten graphischen Darstellung zueinander benachbart sind.
  • Die Neuordnung der Eckpunkte der bipartiten graphischen Darstellung wird unter Verwendung einer gewichteten benachbarten Matrix
    Figure DE102016122623A1_0002
    durchgeführt, die mittels der Matrix X in 2 erstellt wird. Mit Matrix W wird die gewünschte Reihenfolge der Aufgaben- und Speicherknoten durch Suchen einer Permutation {π1, ..., πN} von Eckpunkten erreicht, sodass benachbarte Eckpunkte in der graphischen Darstellung die am meisten zueinander in Beziehung stehenden Eckpunkte sind. Eine solche Permutation weist darauf hin, dass die durch denselben Satz von Aufgaben häufig aufgerufenen Daten in einen lokalen Daten-Cache passen. Mathematisch kann die gewünschte Neuordnung der Permutation in Form von
    Figure DE102016122623A1_0003
    ausgedrückt werden.
  • Dies entspricht dem Auffinden der inversen Permutation π–1, derart dass folgende Energiefunktion minimiert wird:
    Figure DE102016122623A1_0004
  • Das Lösen des obigen Problems wird durch Berechnen des Eigenvektors (q2) mit dem zweiten kleinsten Eigenwert für die folgende Eigengleichung angenähert: (D – W)q = λDq wobei die Laplace'sche Matrix L = D – W, die Gradmatrix D eine Diagonale ist und definiert ist als
    Figure DE102016122623A1_0005
  • Das so erhaltene q2 wird in aufsteigender Reihenfolge sortiert. Der Index der Eckpunkte nach einer Sortierung entspricht der gewünschten Permutation {π1, ..., πN}. Die Reihenfolge der Aufgabenknoten und Speicherknoten wird dann aus dieser Permutation abgeleitet, indem die Aufgabenknoten und Speicherknoten in der bipartiten graphischen Darstellung gemäß dem Permutationergebnis abgeleitet werden.
  • Wie in 4 veranschaulicht, wurde die Liste effizient neu geordnet. Aufgabenknoten A und Speicherknoten sd zählen zu den höchsten Treffern (z. B. 20) und sind deshalb einander benachbart. Desgleichen wird in 4 gezeigt, dass Aufgabenknoten B benachbart zum Speicherknoten sa ist, und die Aufgabenknoten C und D benachbart zum Speicherknoten sb sind. Zusätzlich hat der Aufgabenknoten A zahlreiche Treffer mit dem Speicherknoten sa und der Aufgabenknoten B hat zahlreiche Treffer mit dem Speicherknoten sd. Dadurch ergibt sich, da die Aufgabenknoten A und B in der ersten Spalte zueinander benachbart sind, die Speicherknoten sa und sb in der zweiten Spalte zueinander benachbart positioniert sind. Diese Neuordnung bietet eine effiziente Kommunikation durch Eliminieren einer Querkommunikation zwischen Kernen.
  • Vergewissern Sie sich zum Ausgleich der Arbeitsbelastung, dass die Arbeitsbelastung der Kerne gleichmäßig verteilt ist, die ersten beiden Paare der Aufgabenknoten und der dazugehörigen Speicherknoten, die eine höchste Arbeitsbelastung unter der Vielzahl von Aufgabenknoten haben, aufgeteilt und an entgegengesetzten Enden der bipartiten graphischen Darstellung positioniert werden. Damit ist sichergestellt, dass diese beiden entsprechenden Aufgabenknoten mit der höchsten Arbeitsbelastung unter der Vielzahl von Aufgaben nicht innerhalb des gleichen Kerns sind, was ansonsten die Arbeitsbelastung für einen einzigen Kern überlasten würde. Nachdem diese beiden Aufgabenpaare neu geordnet sind, wird ein nächstes Paar von Aufgaben und dazugehörigen Speicherknoten mit einer nächsthöheren Arbeitsbelastung unter den verbleibenden Aufgabenknoten und Speicherknoten aufgeteilt, und neben den kürzlich aufgeteilten Aufgabenknoten und Speicherknoten positioniert. Diese Vorgehensweise wird mit einem nächsten entsprechenden Paar von Aufgabenknoten und dazugehörigen Speicherknoten mit einer nächsthöheren Arbeitsbelastung unter den verfügbaren Aufgabenknoten und dazugehörigen Speicherknoten fortgesetzt, bis alle verfügbaren Aufgabenknoten und dazugehörigen Speicherknoten innerhalb der bipartiten graphischen Darstellung zugeordnet sind. Daraus resultiert eine gleichmäßige Verteilung der Arbeitsbelastungen, sodass die zweiteilige graphische Darstellung, wie dargestellt, in der Mitte gleichmäßig geteilt werden kann und die Verteilung der Arbeitsbelastung zwischen den entsprechenden Kernen weitgehend ähnlich ist. Wie in der bipartiten graphischen Darstellung in 4 gezeigt, werden die entsprechenden Aufgabenknoten und dazugehörigen Speicherknoten der bipartiten graphischen Darstellung durch eine Partition 26 geteilt, um zu identifizieren, welche Aufgaben den entsprechenden Kernen zugeordnet werden. Exemplarische prozentuale Arbeitsbelastungen sind für jeden entsprechenden Aufgabenknoten veranschaulicht. Aufgabe A repräsentiert eine 15%-Nutzung der Arbeitsbelastung, Aufgabe B repräsentiert eine 40%-Nutzung der Arbeitsbelastung, Aufgabe C repräsentiert eine 30%-Nutzung der Arbeitsbelastung und Aufgabe D repräsentiert eine 15%-Nutzung der Arbeitsbelastung. Daher würde in diesem Beispiel, eine 55%-Nutzung der Arbeitsbelastung durch einen ersten Kern und eine 45%-Nutzung der Arbeitsbelastung durch den zweiten Kern durchgeführt werden. Es wird darauf hingewiesen, dass die jeweilige stärkste Arbeitsbelastung eines Aufgabenknotens und einem zugeordneten Speicherknoten in einem entsprechenden Kern bleiben würde, im Gegensatz zur Querkommunikation zwischen Kernen. Das heißt, diejenigen Aufgabenknoten und dazugehörigen Speicherknoten, die mehr Treffer haben, wären innerhalb des gleichen Kerns. Es versteht sich, dass einige Aufgabenknoten mit Speicherknoten in verschiedenen Kernen querkommunizieren; solche Kommunikationen sind jedoch im Vergleich zu den stark gewichteten Kommunikationen, die in einem Kern aufrechterhalten werden, selten.
  • Nachdem die beiden Kerne aufgeteilt wurden, können die aufgeteilten Kerne außerdem, wenn eine weitere Aufteilung der Kerne erforderlich ist (z. B. 4-Kern), erneut unterteilt werden, ohne diese neu zu ordnen, basierend auf einem Ausgleich der Arbeitsbelastung und einer Minimierung der Kommunikationskosten. Alternativ kann die Neuordnungstechnik, wenn gewünscht, auf einen bereits aufgeteilten Kern angewendet werden, um die jeweiligen Aufgaben und Speicher darin neu zu ordnen und dann die Kerne weiter zu unterteilen.
  • Verschiedene Permutationen der Aufteilung können angewendet werden, um die effizienteste Partition zu finden, die den besten Ausgleich der Arbeitsbelastung zwischen den Kernen des Prozessors ergibt und auch die Kommunikationskosten minimiert.
  • 5 stellt ein Flussdiagramm der Technik zur Aufteilung der Aufgaben auf dem mehrkernigen ECU dar. In Schritt 30 werden Anwendungscodes für ein Softwareprogramm durch ein entsprechendes elektronisches Steuermodul als Ausgaben ausgeführt. Sowohl Lese- als auch Schreibvorgänge werden in der globalen Speichervorrichtung ausgeführt (z. B. Speicher nicht auf dem Mining-Prozessor).
  • In Schritt 31 wird eine Signalliste aus einer Link-Map-Datei in einem globalen Speicher extrahiert. Die Signalliste identifiziert Linien von Speicherplatztreffern anhand der von den Anwendungscodes ausgeführten Aufgaben.
  • In Schritt 32 werden die Speicherzugriffslinien durch einen Mining-Prozessor gesammelt.
  • In Schritt 33 wird eine Matrix erstellt, die die Trefferzahl des Speicherzugriffs der Aufgabe (d. h. die Treffer) für jeden Speicherplatz beinhaltet. Es sollte verstanden werden, dass entsprechende Aufgaben und entsprechende Speicherplätze keine Treffer ergeben würden, und der Eintrag unter solchen Umständen in Form einer „0” oder einem leeren Feld angezeigt wird, und dies ein Hinweis ist, dass die Aufgabe keinen Zugriff auf den entsprechenden Speicherplatz hatte.
  • In Schritt 34 werden verschiedene Permutationen erzeugt, die Korrelationsdiagramme beinhalten (z. B. bipartite Diagramme), die die verknüpfenden Beziehungen zwischen den vom Anwendungscode ausgeführten Aufgabenknoten und den von den Aufgabenknoten aufgerufenen entsprechenden Speicherknoten zeigen. Jede der Permutationen nutzt optimale Sortieralgorithmen zur Ermittlung der jeweiligen Reihenfolge der Aufgabenknoten und der dazugehörigen Speicherknoten. Die Aufgabenknoten sind mit denjenigen Speicherknoten korreliert, zwischen denen Treffer auftreten und sind nebeneinander angeordnet. Die Aufgabenknoten und dazugehörigen Speicherknoten sind im Korrelationsdiagramm optimal positioniert, sodass nach der Aufteilung die Nutzung der Arbeitsbelastung innerhalb der Kerne des Prozessors im Wesentlichen ausgeglichen ist.
  • In Schritt 35 ist die Korrelation aufgeteilt, um zu Identifizieren, welche Aufgaben mit welchem Kern verbunden sind, wenn die Aufgaben im ECU ausgeführt werden. Die Partition wählt eine Aufteilung bezüglich des entsprechenden Aufgabenknotens und den dazugehörigen Speicherknoten aus, basierend auf einer ausgeglichenen Arbeitsbelastung und minimierten Kommunikationskosten. Zusätzliche Aufteilung erfolgt auf der Basis der erforderlichen Anzahl der Kerne im ECU.
  • In Schritt 36 wird die ausgewählte Permutation verwendet, um die Aufgabenaufteilung der mehrkernigen ECU zu entwickeln und zu erstellen.
  • Während bestimmte Ausführungsformen der vorliegenden Erfindung in Einzelheiten beschrieben wurden, werden Fachleute auf dem Gebiet, auf das sich diese Erfindung bezieht, verschiedene alternative Entwürfe und Ausführungsformen für die Durchführung der Erfindung erkennen, wie durch die folgenden Patentansprüche bestimmt.

Claims (10)

  1. Verfahren zum Aufteilen von Aufgaben in einem mehrkernigen elektronischen Steuermodul (ECU), umfassend die Schritte: Extrahieren einer Signalliste einer Link-Map-Datei in einem Speicher, die Link-Map-Datei beinhaltet eine Textdatei, in der beschrieben wird, wo auf die Daten innerhalb einer globalen Speichervorrichtung zugegriffen wird; Erhalten von Speicherzugriffslinien bezüglich der ausgeführten Aufgaben der Signalliste; Identifizieren einer Anzahl von Malen, mit der jede Aufgabe auf einen Speicherplatz zugegriffen hat und der zugehörigen Arbeitsbelastung durch die Aufgabe im ECU; Erzeugen eines Korrelationsdiagramms zwischen jeder Aufgabe und jedem aufgerufenen Speicherplatz, das Korrelationsdiagramm identifiziert einen Grad einer verknüpfenden Beziehung zwischen jeder Aufgabe und jedem Speicherplatz; Neuordnen des Korrelationsdiagramms, sodass die jeweiligen Aufgaben und die dazugehörigen Speicherplätze mit einem größeren Grad verknüpfender Beziehungen zueinander benachbart sind; Aufteilen des Mehrkernprozessors in eine jeweilige Anzahl von Kernen, worin das Zuweisen von Aufgaben und Speicherplätzen zu der jeweiligen Anzahl der Kerne im Wesentlichen als eine Funktion des Ausgleichs der Arbeitsbelastungen unter den jeweiligen Kernen ausgeführt wird.
  2. Verfahren nach Anspruch 1, worin die Aufgaben auf einem mehrkernigen ECU für eine gerade Anzahl von Kernen unterteilt sind.
  3. Verfahren nach Anspruch 1, worin die Aufgaben in einem mehrkernigen ECU, durch Ausgleich der Arbeitsbelastung auf die Anzahl der Kerne, in einer einzigen Aufteilung, für die Anzahl der Kerne aufgeteilt sind.
  4. Verfahren nach Anspruch 1, worin die Aufgaben zunächst in ein anfängliches Paar von Kernen aufgeteilt sind, basierend auf einer ausgeglichenen Arbeitsbelastung, und worin das anfängliche Paar von Kernen wiederholt geteilt wird, basierend auf einer ausgeglichenen Arbeitsbelastung, bis eine gewünschte Anzahl von Kernen erhalten wird.
  5. Verfahren nach Anspruch 1, worin eine gewichtete Matrix erzeugt wird, die die Anzahl von Malen identifiziert, mit der jede Aufgabe auf einen Speicherplatz zugreift.
  6. Verfahren nach Anspruch 5, worin das Korrelationsdiagramm eine bipartite graphische Darstellung beinhaltet, worin die bipartite graphische Darstellung in Abhängigkeit von der gewichteten Matrix erstellt wird.
  7. Verfahren nach Anspruch 6, worin die Neuordnung auf einer identifizierten Arbeitsbelastung jeder Aufgabe basiert, worin die jeweilige Aufgabe in einer ersten Spalte der bipartiten graphischen Darstellung, benachbart zum jeweiligen Speicherplatz in einer zweiten Spalte der bipartiten graphischen Darstellung positioniert ist, basierend auf der jeweiligen Aufgabe, die auf den jeweiligen Speicherplatz zugreift.
  8. Verfahren nach Anspruch 7, worin eine Priorität der Auswahl, welcher Speicherplatz, aus einer Vielzahl von Speicherplätzen, verknüpfende Beziehungen zur jeweiligen Aufgabe hat, benachbart zur jeweiligen Aufgabe zu positionieren, bestimmt wird, basierend auf einer Anzahl von Malen, die die entsprechende Aufgabe auf jeden der Speicherplätze zugegriffen hat, worin der entsprechende Speicherplatz, auf den durch die entsprechende Aufgabe am meisten zugegriffen wird, benachbart zur entsprechenden Aufgabe positioniert ist.
  9. Verfahren nach Anspruch 7, worin die Neuordnung auf der identifizierten Arbeitsbelastung jeder Aufgabe basiert, worin ein Paar von Aufgaben, mit einer höchsten Arbeitsbelastung unter der Vielzahl von Aufgaben, aufgeteilt wird und an entgegengesetzten Enden der bipartiten graphischen Darstellung positioniert wird, worin ein nächstes Paar von Aufgaben, mit einer nächsthöheren Arbeitsbelastung unter den verfügbaren Aufgaben aufgeteilt wird und neben dem Paar mit der höchsten Arbeitsbelastung positioniert wird, und worin ein nächstes entsprechendes Paar von Aufgaben, mit einer nächsthöheren Arbeitsbelastung unter den verfügbaren Aufgaben, aufgeteilt wird und neben den vorher positionierten Aufgaben positioniert wird, bis alle der verfügbaren Aufgaben innerhalb der bipartiten graphischen Darstellung zugeordnet sind.
  10. Verfahren nach Anspruch 1, worin eine Vielzahl von Permutationen erzeugt wird, die das Korrelationsdiagramm neu ordnen, worin eine entsprechende Permutation, die die am besten ausgeglichene Arbeitsbelastung unter der Vielzahl von Permutationen bereitstellt, für die Aufteilung ausgewählt wird.
DE102016122623.8A 2015-11-25 2016-11-23 Optimierte aufgabenaufteilung durch data-mining Withdrawn DE102016122623A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/951645 2015-11-25
US14/951,645 US20170147402A1 (en) 2015-11-25 2015-11-25 Optimized task partitioning through data mining

Publications (1)

Publication Number Publication Date
DE102016122623A1 true DE102016122623A1 (de) 2017-06-01

Family

ID=58692765

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016122623.8A Withdrawn DE102016122623A1 (de) 2015-11-25 2016-11-23 Optimierte aufgabenaufteilung durch data-mining

Country Status (3)

Country Link
US (1) US20170147402A1 (de)
CN (1) CN106802878A (de)
DE (1) DE102016122623A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021209319A1 (de) * 2021-08-25 2023-03-02 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Vermitteln von Datenanforderungen an ein oder mehrere Datenquellen und zur Verarbeitung von angeforderten Daten einer oder mehrerer Datenquellen in einer Anwendung

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530187B (zh) * 2006-03-27 2017-01-18 相干逻辑公司 为多处理器系统设计程序
US8407214B2 (en) * 2008-06-25 2013-03-26 Microsoft Corp. Constructing a classifier for classifying queries
WO2010093003A1 (ja) * 2009-02-13 2010-08-19 日本電気株式会社 演算資源割当装置、演算資源割当方法、及び、演算資源割当プログラム
CN102135904A (zh) * 2011-03-11 2011-07-27 华为技术有限公司 一种面向多核目标系统的映射方法及装置
GB201210234D0 (en) * 2012-06-12 2012-07-25 Fujitsu Ltd Reconciliation of large graph-based data storage

Also Published As

Publication number Publication date
US20170147402A1 (en) 2017-05-25
CN106802878A (zh) 2017-06-06

Similar Documents

Publication Publication Date Title
DE602004011890T2 (de) Verfahren zur Neuverteilung von Objekten an Recheneinheiten
DE102008031998A1 (de) System, Verfahren und Computerprogrammprodukt zum Ausführen einer Scanfunktion
DE102018100730A1 (de) Ausführung von Berechnungsgraphen
DE112006003358T5 (de) Verteilung von Speicherzugriffsanforderungen
DE102009053578A1 (de) Verfahren und Vorrichtung zum Durchführen eines parallelen Routens unter Verwendung einer Multithreaded-Routing-Prozedur
DE60211452T2 (de) DMA-Übertragung von Daten und Prüfinformation zu und von einem Datenspeicherungsgerät
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE102017213160B4 (de) Kompilierung für knotenvorrichtungs-GPU-basierte Parallelverarbeitung
DE112012004629T5 (de) Dynamischer Speicheraffinitätsanpasser auf Prozess/Objektebene
DE102020119205A1 (de) Speichervorrichtung, speichersystem und betriebsverfahren hierfür
WO2021190921A1 (de) Computerimplementiertes verfahren für eine produktionsplanung und/oder -steuerung eines produktionssystems und produktionsplanung und/oder-steuerungssystem zur produktionsoptimierung
DE4430195B4 (de) Verfahren zur Auswertung von Booleschen Ausdrücken
DE102016122623A1 (de) Optimierte aufgabenaufteilung durch data-mining
DE60319003T2 (de) Verfahren zur Neuverteilung von Objekten an Recheneinheiten
DE69908911T2 (de) Zuweisungsvorrichtung für eine datenvermittlungsanlage
DE102015112250A1 (de) Trennung von Kernen
DE60209761T2 (de) Anschluss mehrerer prozessoren auf externen speicher mit burst mode
DE102021108482A1 (de) Zuweisung von Verarbeitungsthreads für Matrix-Matrix-Multiplikation
DE102013114508A1 (de) Blockbasierte Signalverarbeitung
DE102013205819B4 (de) Verfahren, Einheit und Computerprogramm zum Identifizieren von Elementen mit einer hohen Auftrittshäufigkeit bei Elementen, die in einem Textdatenstrom enthalten sind
DE102020118517A1 (de) Verteilte physikalische verarbeitung einer matrixsummenoperation
DE102016121947B4 (de) Optimiertes Speicherlayout durch Data Mining
DE102015121128B4 (de) Verfahren und Vorrichtung zum beschleunigten Zugriff auf Signale eines programmierbaren Logikbausteins
EP3705993A1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
DE102013212266A1 (de) Programmentwicklungsunterstützungsvorrichtung und Programmentwicklungsunterstützungswerkzeug

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MANITZ FINSTERWALD PATENTANWAELTE PARTMBB, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee