DE102010053701A1 - Beziehungsmodellierung für Leistungsanalyse von Mehrkernprozessoren - Google Patents

Beziehungsmodellierung für Leistungsanalyse von Mehrkernprozessoren Download PDF

Info

Publication number
DE102010053701A1
DE102010053701A1 DE102010053701A DE102010053701A DE102010053701A1 DE 102010053701 A1 DE102010053701 A1 DE 102010053701A1 DE 102010053701 A DE102010053701 A DE 102010053701A DE 102010053701 A DE102010053701 A DE 102010053701A DE 102010053701 A1 DE102010053701 A1 DE 102010053701A1
Authority
DE
Germany
Prior art keywords
task
functional relationship
primitives
relationship
storing instructions
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
DE102010053701A
Other languages
English (en)
Inventor
Christopher J. Oreg. Cormack
Nathaniel Calif. Duca
Jason Oreg. Plumb
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE102010053701A1 publication Critical patent/DE102010053701A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Ein Beziehungsmodell kann verwendet werden, um Primitiven für jeden einer Vielzahl von Threads in einem Mehrkernprozessor zu codieren. Die Primitiven können Tasks und Parameter, wie beispielsweise Puffer, beinhalten. Die Beziehungen können mit verschiedenen Tasks verbunden sein. Die Tasks mit der die Beziehungen anzeigenden Codierung können sodann bei Benutzerauswahl verwendet werden, um eine Visualisierung der funktionalen Beziehungen zwischen Tasks anzuzeigen.

Description

  • Hintergrund
  • Dies bezieht sich im Allgemeinen auf Mehrkernprozessoren und insbesondere auf Leistungsanalyse von Mehrkernmaschinen.
  • Moderne Universal- und Grafikprozessoren können einen oder mehr Kerne beinhalten. Diese Prozessoren können eine große Anzahl an Threads laufen lassen. Unter Anbetracht der Anzahl an Tasks und der Anzahl an unterschiedlichen Threads, die laufen können, kann das Analysieren der Leistung eines Prozessors daher ein komplexes Unternehmen miteinbeziehen.
  • Herkömmlicherweise ist ein Trace eine grafische Abbildung eines zeitlichen Ablaufs zwischen Tasks, die auf einem Prozessor laufen. Softwarebasierte Trace-Analyse ermöglicht es einem Softwaredesigner den Ablauf von Operationen zwischen Tasks zu verstehen.
  • Im Fall von Mehrkernprozessoren kann jedoch eine ausgereifterte Analyse von Nöten sein.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist eine schematische Abbildung einer erfindungsgemäßen Ausführungsform;
  • 2 ist ein Ablaufdiagramm, das einen Ablauf abbildet, der von der in 1 gezeigten Ausführungsform verwendet wird;
  • 3 ist eine Visualisierung eines taskbasierten Beziehungsmodells in Übereinstimmung mit einer erfindungsgemäßen Ausführungsform;
  • 4 ist eine Visualisierung einer Parent/Child-Beziehung, hergestellt in Übereinstimmung mit einer erfindungsgemäßen Ausführungsform; und
  • 5 ist eine Visualisierung von Abhängigkeitsbeziehungen in Übereinstimmung mit einer weiteren erfindungsgemäßen Ausführungsform.
  • Ausführliche Beschreibung
  • In Übereinstimmung mit einigen erfindungsgemäßen Ausführungsformen können Beziehungen neben zeitlicher Ablaufsteuerung zwischen Code-Einheiten, genannt Tasks, visualisiert werden. Ein Task ist jede herkömmliche Arbeitseinheit zum Schedulen und Ausführen. Dies kann jeder Teil von Code sein, mit einem Anfang und einem Ende. Die Zeitdauer kann definiert werden als eine Anzahl an Zyklen, um den Task auszuführen.
  • Traces sind Verbindungen zwischen Tasks. Ein Beziehungsmodell gibt die Beziehung zwischen Tasks hinsichtlich Parent zu Child, Geschwister, Abhängigkeit sowie Erzeuger und Verbraucher wieder. Andere Beziehungen können ebenfalls verwendet werden.
  • Die Parent/Child-Beziehung besteht zwischen einem ersten Task und einem zweiten Task, der von dem ersten Task hervorgebracht wurde. Eine Abhängigkeit besteht zwischen einem ersten und einem zweiten Task, wenn der erste Task von dem zweiten Task zur Ausführung abhängt. Eine Erzeuger/Verbraucher-Beziehung bedeutet, dass ein erster Task Daten erzeugt und diese in einen Puffer gibt, und dass ein zweiter Task diese Daten von dem Puffer verbraucht.
  • Eine Primitive ist jede Einheit, die Teil einer Beziehung ist. Ein Task ist eine Art von Primitive. Eine weitere Primitive wird Parameter genannt. Ein Parameter kann ein Puffer, ein Name-Wert-Paar, eine Zeichenkette oder jede andere Art von normalem Datentyp oder -struktur sein, die eine Beziehung zu einem Task aufweist. Andere Primitiven können ebenfalls verwendet werden.
  • Unter Bezugnahme auf 1 kann das Leistungsanalysewerkzeug 10 eine Steuerung 12 beinhalten, was ein Prozessor sein kann. Der Prozessor kann ein Mehrkernprozessor sein. Bei einer Ausführungsform kann dies ein Grafikprozessor und bei einer Ausführungsform kann dies ein SIMD-(single instruction multiple data)-Mehrkernprozessor sein. Die Steuerung 12 ist mit einem Speicher 14 gekoppelt, der eine grafische Benutzeroberfläche (graphical user interface, GUI) 16 oder Frontend des Werkzeugs, eine Anzahl an Anwendungsprogrammschnittstellen (application program interfaces, APIs) 18 speichern kann, die die Primitiven und die Beziehungen zwischen Primitiven und einer Library 20 codieren, die den Werkzeugkasten an zu verwendbaren Merkmalen bereitstellt. Die Steuerung kann mit einem Eingang/Ausgang 22 gekoppelt sein, um es dem Benutzer zu ermöglichen, Informationen einzugeben und eine Ausgabe zu empfangen. Ein Display 24 kann verwendet werden, um die Beziehungen zwischen Primitiven, einschließlich Tasks, zu visualisieren.
  • Das Leistungsanalysewerkzeug 10 wird von Softwareentwicklern verwendet, um, durch Nachvollziehen der Beziehungen zwischen Primitiven, wie beispielsweise Tasks innerhalb dieser Software, die Leistung ihrer Software zu verbessern. Durch Nachvollziehen dieser Beziehungen kann der Softwareentwickler verstehen, wie die Softwareleistung verbessert werden kann.
  • Im Allgemeinen entwickelt der Softwareentwickler zwei Versionen des Codes. Eine Version des Codes ist der Code, der lediglich die gewünschte Funktion ausführt, wie beispielsweise ein Spiel. Die andere Version des Codes beinhaltet die APIs 18 in sich, die bei einigen Ausführungsformen die Visualisierungen der Primitive-Beziehungen erzeugen (während bei anderen Ausführungsformen binäre Ausgaben ohne Visualisierungen zur weiteren Analyse verwendet werden können). Die Version des Codes mit den APIs wird instrumentierter Code genannt. Durch Strömen des instrumentierten Codes zu der grafischen Frontend-Benutzeroberfläche 16 wird es dem Designer ermöglicht, zu sehen, was in dem Code abläuft. Gezeigt werden die in dem Code laufenden Threads, die Tasks innerhalb der Threads und, am wichtigsten, die funktionalen Beziehungen zwischen diesen Tasks.
  • Unter Bezugnahme auf 2 beginnt der Ablauf, der von den Anwendungsprogrammschnittstellen 18 implementiert wird, durch Empfangen der Auswahl eines Threads, wie in Block 22 angezeigt. Als nächstes wird ein Primitive-Identifikator ausgewählt, wie in Block 24 angezeigt. Der Identifikator wird in Block 26 registriert. Als nächstes wird in Block 28 der Identifikator einer Primitive zugeteilt.
  • An dieser Stelle tritt der Designer nun in die Beziehungen zwischen einer ausgewählten Primitive und anderen Primitiven ein. Die ausgewählte Primitive wird „diese” Primitive genannt und die Primitiven, mit denen die diese Primitive Beziehungen unterhält, werden „jene” Primitiven genannt.
  • Bei einigen Ausführungsformen impliziert der Ablauf 18 automatisch eine Anzahl an Beziehungen über diejenigen hinaus, in die von dem Designer eingetreten wurden. Wenn beispielsweise ein erster Task der Parent von einem zweiten Task ist, dann wird impliziert, dass der zweite Task das Child von dem Parent ist. Gleichermaßen, wenn ein erster Task zu einem zweiten Task in Beziehung steht, und der zweite Task zu einem dritten Task in Beziehung steht, dann wird impliziert, dass der erste und zweite Task ebenfalls in Beziehung stehen, und die Natur der Beziehung kann impliziert werden. Dies kann als transitive Beziehungen oder Beziehungen, die von anderen Beziehungen impliziert werden, bezeichnet werden. Die Verwendung von transitiven Beziehungen verringert bei einigen Ausführungsformen die Last der Dateneingabe auf Seiten des Benutzers. Zusätzlich kann es eine zu N oder Fan-Out-Beziehungen geben. Beispielsweise kann ein einzelner Parent jede Anzahl an Children hervorbringen, und alle diese Children brauchen bei einigen Ausführungsformen nicht einzeln codiert werden.
  • Zusätzlich stellt der Ablauf 18 Zeitstempel für jeden der Primitive-Identifikatoren bereit. Er stellt ebenfalls die Zeit bereit, wann irgendein Task beginnt und als eine Ausgabe endet. Daher kann er bei einer Ausführungsform eine Reihe von Threads als Reihen in einem Diagramm anzeigen. Jede Reihe kann den Ablauf von Tasks in dem Thread beinhalten. Zusätzlich können verschachtelte Tasks durch Visualisierung ebenfalls angezeigt werden, wie beispielsweise Zeigen des verschachtelten Tasks als sich über den Task, in dem dieser ausgeführt wird, hinausstreckend. Ein Benutzer kann auf einen bestimmten Task klicken, und als Antwort auf die Auswahl des Tasks kann seine Beziehung grafisch angezeigt werden.
  • Im Gegensatz zu zeitbasierten Tracing-Systemen kann das System 10 beziehungsbasiert sein. Die zeitliche Beziehung zwischen Tasks und verschiedenen Puffern ist weniger wichtig als die Beziehung zwischen ihnen. Bei einigen Ausführungsformen werden Beziehungen innerhalb Tasks gezeigt, sogar dort, wo bei einigen Ausführungsformen ihr relatives Timing nicht gezeigt wird. Daher kann innerhalb des Threads der Zeitablauf von Tasks veranschaulicht werden, aber der zeitliche Ablauf von Tasks in unterschiedlichen Threads kann bei einigen Ausführungsformen nicht angezeigt sein. Bei einigen Ausführungsformen können funktionale, im Gegensatz zu zeitlichen, Beziehungen visualisiert sein. Eine funktionale Beziehung ist neben dem zeitlichen Ablauf jede Beziehung zwischen Tasks.
  • Bei einer Ausführungsform kann jeder Task durch ein Rechteck dargestellt werden, dessen Länge in der x Richtung eine Funktion hinsichtlich der Dauer der Ausführung ist. Bei einigen Ausführungsformen kann eine Mausklick- und Dragtechnik verwendet werden, um eine Anzahl an Tasks auszuwählen, um die Beziehungen zwischen jenen ausgewählten Tasks und jeden anderen Tasks anzuzeigen.
  • Daher, als ein einfaches Beispiel, unter Bezugnahme auf 3, gibt es vier Primitiven, einschließlich drei Tasks 36, 38 und 42, und ein Parameter in der Form eines Puffers 40. Die Pfeile 44, 52, 50 und 48 zeigen die Beziehungen zwischen den Tasks. Beispielsweise kann der Vertex-Task 44 seine Ergebnisse in den Puffer 40 geben, und diese Ergebnisse können von dem Pixel-Task 42 verwendet werden. Daher ist der Task 44 der Erzeuger und der Task 42 ist der Verbraucher. Da der Vertex-Task 38 durch den Draw-Task 36 erzeugt wurde, zeigt der Pfeil 52 an, dass der Vertex-Task das Child von dem Draw-Task 36 ist. Gleichermaßen hängt der Pixel-Task 42 zur Ausführung von dem Vertex-Task 38 ab, und daher wird die Abhängigkeit von dem Pfeil 46 angezeigt. Daher kann es in einigen Fällen mehrere Beziehungen zwischen Tasks geben. Zusätzlich kann es mehrere Objekttypen geben.
  • Zurückkehrend zu 2, nach Zuteilen des Identifikators zu der Primitive in Block 28, wird sodann in die Beziehungen für diese Primitive eingetreten, wie in Block 30 angezeigt. Während eine manuelle Technik hierin beschrieben ist, werden automatische Techniken ebenfalls in Erwägung gezogen, wobei Code-Analyse in automatischem Eintritt von Beziehungen ohne Eingriff des Benutzers resultiert.
  • Bei Raute 32 bestimmt sodann eine Überprüfung, ob noch weitere Primitiven codiert werden müssen. Wenn ja, wiederholt sich der Fluss. Ansonsten bestimmt eine Überprüfung bei Raute 34, ob noch weitere Threads codiert werden müssen. Wenn ja, wiederholt sich der Fluss. Ansonsten endet der Fluss.
  • 4 zeigt ein Beispiel einer Visualisierung für eine Parent/Child-Beziehung. Bei einer Ausführungsform kann die Visualisierung eine grafische Benutzeroberfläche mit mausauswählbaren Task- oder Primitive-Abbildungen sein. In diesem Beispiel werden nur vier Threads gezeigt. Für jeden Thread werden die Tasks durch Rechtecke angezeigt.
  • In diesem Fall hat der Benutzer einen Parent-Task B in dem zweiten Thread ausgewählt. Als Antwort darauf wird die Visualisierung der Parent/Child-Beziehung automatisch generiert. Nämlich erstrecken sich Pfeile von Task B zu einer Reihe von Tasks C in dem dritten Thread, die Children von dem Task B sind. Des Weiteren erstrecken sich Pfeile von dem Task C in dem dritten Thread darauf zu Task C in dem vierten Thread, die Grandchildren von dem Parent-Task B sind.
  • 5 ist eine Visualisierung einer Abhängigkeitsbeziehung. Sie stimmt mit 4 überein, mit der Ausnahme, dass nun der benutzerausgewählte Task B Abhängigkeiten gegenüber Tasks A, C, D und E aufweist. Nämlich der Task B ist abhängig von Eingaben von dem Task A, wie angezeigt von dem Pfeil mit der Markierung „eingehende Abhängigkeiten”. Die Tasks C, D und E sind abhängig von Task B für die Ausgaben, mit der Markierung „ausgehende Abhängigkeiten”. Daher zeigt die Visualisierung die funktionale Beziehung zwischen Tasks in unterschiedlichen Threads.
  • Die hierin beschriebenen Grafikverarbeitungs-Techniken können in verschiedenen Hardware-Architekturen implementiert werden. Beispielsweise kann Grafikfunktionalität innerhalb eines Chipsatzes integriert sein. Alternativ kann ein getrennter Grafikprozessor verwendet werden. Als noch eine weitere Ausführungsform können die Grafikfunktionen durch einen Universalprozessor, einschließlich eines Mehrkernprozessors, implementiert werden.
  • Verweise in dieser Beschreibung auf „eine Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristik, die in Verbindung mit der Ausführungsform beschrieben wird, mindestens in einer innerhalb der vorliegenden Erfindung eingeschlossenen Implementierung enthalten ist. Somit beziehen sich Verwendungen des Ausdrucks „bei einer Ausführungsform” nicht notwendigerweise auf die gleiche Ausführungsform. Außerdem können die bestimmten Merkmale, Strukturen oder Charakteristika in anderen geeigneten Formen eingeführt werden, die sich von der bestimmten veranschaulichten Ausführungsform unterscheiden, und alle solchen Formen können innerhalb der Ansprüche der vorliegenden Anmeldung eingeschlossen sein.
  • Obwohl die vorliegende Erfindung im Hinblick auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, sind sich Fachleute bewusst, dass viele weitere Modifikationen und Varianten davon möglich sind. Die beigefügten Ansprüche sollen alle solchen Modifikationen und Varianten abdecken, die dem Sinn und Schutzbereich der vorliegenden Erfindung entsprechen.

Claims (26)

  1. Verfahren, umfassend: Empfangen einer Identifikation einer Vielzahl von Code-Primitiven in einem Mehrkernprozessor; und Anzeigen einer funktionalen Beziehung zwischen Primitiven.
  2. Verfahren nach Anspruch 1, einschließlich Bereitstellen einer Visualisierung einer funktionalen Beziehung zwischen zumindest zwei Tasks.
  3. Verfahren nach Anspruch 1, einschließlich Anzeigen einer funktionalen Beziehung zwischen einem Task und einem Parameter.
  4. Verfahren nach Anspruch 3, wobei das Anzeigen einer funktionalen Beziehung zwischen einem Task und einem Parameter das Anzeigen einer funktionalen Beziehung zwischen einem Task und einem Puffer beinhaltet.
  5. Verfahren nach Anspruch 1, einschließlich Bereitstellen einer Visualisierung einer funktionalen Beziehung, einschließlich zumindest entweder Parent zu Child, Geschwister, Abhängigkeit oder Erzeuger und Verbraucher.
  6. Verfahren nach Anspruch 1, einschließlich das automatische Implizieren einer Beziehung zwischen Primitiven.
  7. Verfahren nach Anspruch 6, einschließlich Implizieren einer transitiven Beziehung.
  8. Verfahren nach Anspruch 1, einschließlich das automatische Implizieren einer zu mehr Beziehungen und den gegenteiligen Beziehungen.
  9. Verfahren nach Anspruch 1, einschließlich das Ermöglichen eines Benutzers, einen Task auszuwählen, und als Antwort auf die Taskauswahl, das Anzeigen seiner funktionalen Beziehung zu anderen Primitiven.
  10. Verfahren nach Anspruch 1, einschließlich Bereitstellen eines Identifikators für jeden Task auf einem bestimmten Thread.
  11. Computerlesbares Medium, das Befehle, die von einem Computer ausgeführt werden, speichert, um: eine Vielzahl von Code-Primitiven in einem Mehrkernprozessor zu identifizieren; eine funktionale Beziehung zwischen Primitiven zu identifizieren.
  12. Medium nach Anspruch 11, das weiter Befehle speichert, um eine funktionale Beziehung zwischen zumindest zwei Tasks zu visualisieren.
  13. Medium nach Anspruch 11, das weiter Befehle speichert, um eine funktionale Beziehung zwischen einem Task und einem Parameter anzuzeigen.
  14. Medium nach Anspruch 13, das weiter Befehle speichert, um eine funktionale Beziehung zwischen einem Task und einem Puffer anzuzeigen.
  15. Verfahren nach Anspruch 11, das weiter Befehle speichert, um eine Visualisierung einer funktionalen Beziehung, einschließlich zumindest entweder Parent zu Child, Geschwister, Abhängigkeit oder Erzeuger und Verbraucher, bereitzustellen.
  16. Medium nach Anspruch 11, das weiter Befehle speichert, um automatisch eine Beziehung zwischen Primitiven zu implizieren.
  17. Medium nach Anspruch 16, das weiter Befehle speichert, um eine transitive Beziehung zu implizieren.
  18. Medium nach Anspruch 11, das weiter Befehle speichert, um automatisch eine zu mehr Beziehungen und die gegenteiligen Beziehungen zu implizieren.
  19. Verfahren nach Anspruch 11, das weiter Befehle speichert, um es einem Benutzer zu ermöglichen, einen Task auszuwählen, und als Antwort auf die Taskauswahl, seine funktionale Beziehung mit anderen Primitiven zu zeigen.
  20. Medium nach Anspruch 11, das weiter Befehle speichert, um einen Identifikator für jeden Task auf einem bestimmten Thread bereitzustellen.
  21. Vorrichtung, umfassend: einen Mehrkernprozessor; und einen Speicher, der mit dem Prozessor gekoppelt ist, wobei der Speicher Befehle speichert, um eine funktionale Beziehung zwischen Code-Tasks anzuzeigen.
  22. Vorrichtung nach Anspruch 21, wobei der Speicher Befehle speichert, um Beziehungen zwischen Primitiven, einschließlich Tasks und Parameter, zu identifizieren.
  23. Vorrichtung nach Anspruch 21, wobei die Vorrichtung eine Visualisierung der funktionalen Beziehung zwischen zumindest zwei Primitiven bereitstellen soll.
  24. Vorrichtung nach Anspruch 21, wobei die Vorrichtung ein Grafikprozessor ist.
  25. Vorrichtung nach Anspruch 24, wobei die Vorrichtung ein SIMD-(single instruction multiple data)-Mehrkernprozessor ist.
  26. Vorrichtung nach Anspruch 21, wobei die Vorrichtung eine Visualisierung einer funktionalen Beziehung, einschließlich zumindest entweder Parent zu Child, Geschwister, Abhängigkeit oder Erzeuger und Verbraucher, bereitstellen soll.
DE102010053701A 2009-12-23 2010-12-08 Beziehungsmodellierung für Leistungsanalyse von Mehrkernprozessoren Withdrawn DE102010053701A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/645,562 2009-12-23
US12/645,562 US8826234B2 (en) 2009-12-23 2009-12-23 Relational modeling for performance analysis of multi-core processors

Publications (1)

Publication Number Publication Date
DE102010053701A1 true DE102010053701A1 (de) 2011-08-25

Family

ID=43531557

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010053701A Withdrawn DE102010053701A1 (de) 2009-12-23 2010-12-08 Beziehungsmodellierung für Leistungsanalyse von Mehrkernprozessoren

Country Status (5)

Country Link
US (1) US8826234B2 (de)
CN (1) CN102141954B (de)
DE (1) DE102010053701A1 (de)
GB (1) GB2476544A (de)
TW (1) TWI506420B (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI570585B (zh) 2014-10-02 2017-02-11 財團法人資訊工業策進會 用以視覺化軟體程式之系統及方法
US9836186B2 (en) 2015-11-19 2017-12-05 International Business Machines Corporation Visualization and control of application interactions
US10083068B2 (en) * 2016-03-29 2018-09-25 Microsoft Technology Licensing, Llc Fast transfer of workload between multiple processors
US10235783B2 (en) 2016-12-22 2019-03-19 Huawei Technologies Co., Ltd. System and method for visualization of a compute workflow

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5898873A (en) 1996-11-12 1999-04-27 International Business Machines Corporation System and method for visualizing system operation trace chronologies
US6057839A (en) 1996-11-26 2000-05-02 International Business Machines Corporation Visualization tool for graphically displaying trace data produced by a parallel processing computer
US6513155B1 (en) * 1997-12-12 2003-01-28 International Business Machines Corporation Method and system for merging event-based data and sampled data into postprocessed trace output
US6378066B1 (en) 1999-02-04 2002-04-23 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications
US6728955B1 (en) * 1999-11-05 2004-04-27 International Business Machines Corporation Processing events during profiling of an instrumented program
US20020087949A1 (en) * 2000-03-03 2002-07-04 Valery Golender System and method for software diagnostics using a combination of visual and dynamic tracing
US7389497B1 (en) * 2000-07-06 2008-06-17 International Business Machines Corporation Method and system for tracing profiling information using per thread metric variables with reused kernel threads
US6904594B1 (en) * 2000-07-06 2005-06-07 International Business Machines Corporation Method and system for apportioning changes in metric variables in an symmetric multiprocessor (SMP) environment
US7120879B2 (en) 2001-04-20 2006-10-10 Peter Pius Gutberlet Hierarchical presentation techniques for a design tool
US20030229740A1 (en) * 2002-06-10 2003-12-11 Maly John Warren Accessing resources in a microprocessor having resources of varying scope
US7131113B2 (en) 2002-12-12 2006-10-31 International Business Machines Corporation System and method on generating multi-dimensional trace files and visualizing them using multiple Gantt charts
US7401324B1 (en) * 2003-09-18 2008-07-15 Sun Microsystems, Inc. Method and apparatus for performing time measurements during instrumentation-based profiling
US7293260B1 (en) * 2003-09-26 2007-11-06 Sun Microsystems, Inc. Configuring methods that are likely to be executed for instrument-based profiling at application run-time
WO2006087728A1 (en) 2005-02-15 2006-08-24 Codito Technologies System for creating parallel applications
US8234630B2 (en) * 2006-05-03 2012-07-31 The Mathworks, Inc. Calling an entity of a graphical model with a non-graphical entity and calling a non-graphical entity of a graphical model with a graphical entity
US8375368B2 (en) * 2006-06-20 2013-02-12 Google Inc. Systems and methods for profiling an application running on a parallel-processing computer system
US7814460B2 (en) 2006-07-13 2010-10-12 Scriptlogic Corporation Hierarchical modular software packages and associated development tool
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
CN101354693B (zh) * 2008-09-11 2010-06-09 重庆邮电大学 一种异构多核处理器的核间通信调度系统及方法
WO2010055719A1 (ja) * 2008-11-14 2010-05-20 日本電気株式会社 スケジュール決定装置、並列実行装置、スケジュール決定方法、及びプログラム

Also Published As

Publication number Publication date
TW201145015A (en) 2011-12-16
US20110154294A1 (en) 2011-06-23
US8826234B2 (en) 2014-09-02
GB201020675D0 (en) 2011-01-19
GB2476544A (en) 2011-06-29
TWI506420B (zh) 2015-11-01
CN102141954A (zh) 2011-08-03
CN102141954B (zh) 2016-05-04

Similar Documents

Publication Publication Date Title
DE112010003595B4 (de) Verfahren, Systeme und maschinenverarbeitbares Medium zur Bereitstellung einer verteiltenPrädikatvorhersage
EP0689694B1 (de) Verfahren zur maschinellen erzeugung von nebenläufig bearbeitbaren befehlsgruppen aus einem programm für superskalare mikroprozessoren
DE69911266T2 (de) Computerprogrammprofiler
DE102015112202A1 (de) Kombinieren von Pfaden
DE69819849T2 (de) Anordnung zum willkürlichen Abtasten von Instruktionen in einer Prozessorpipeline
DE112017006164T5 (de) Differenzvergleich von ausführbaren Datenflussdiagrammen
DE102013017982A1 (de) COMPILER gesteuerte Gebietsdisponierung für SIMD-Ausführung von Strängen
DE102013017980B4 (de) Auslösung einer Leistungsereigniserfassung durch parallele Zustandsbündel
DE102017109239A1 (de) Computerimplementiertes verfahren, computerlesbares medium und heterogenes rechnersystem
DE112013001747T5 (de) Optimieren des Verbindens von Anweisungen
DE102010050430A1 (de) Das Durchführen paralleler Schattierungsoperationen
DE10039538A1 (de) Vorrichtung und Methode zum Analysieren der Leistung eines Computerprogramms
DE102009038454A1 (de) System und Verfahren zum Reduzieren einer Ausführungsdivergenz in Parallelverarbeitungsarchitekturen
DE102011014830A1 (de) Verfahren und vorrichtung zum analysieren vonsoftware
WO2008040662A2 (de) Verfahren zum rechnergestützten optimieren des ressourcenverbrauchs eines programms
DE102009051288A1 (de) Befehl und Logik zur Ausführung von Bereichserkennung
DE102010053558A1 (de) Relationales Modellieren zur Leistungsanalyse von Mehrkernprozessoren unter Verwendung virtueller Tasks
DE112019000972T5 (de) Verfahren und Systeme für vereinfachte grafische Abbildungen von bipartiten Graphen
DE112011103428T5 (de) Automatisierte Analyse zusammengesetzter Anwendungen
DE112013001735T5 (de) Optimieren des Verbindens von Anweisungen
DE102011005382A1 (de) Aufgabenausführungs-Steuereinheit und Aufzeichnungsmedium, auf dem ein Aufgabenausführungs-Steuerprogramm aufgezeichnet ist
DE102013014778A1 (de) System und verfahren zur synchronisierung von strängen in einem divergenten codegebiet
DE112011103406T5 (de) Verwaltung von nicht geänderten Objekten
DE102016110195A1 (de) Erzeugen von Code in statisch typisierten Programmiersprachen für eine dynamisch typisierte array-basierte Sprache
DE102010053701A1 (de) Beziehungsmodellierung für Leistungsanalyse von Mehrkernprozessoren

Legal Events

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