DE102010053701A1 - Beziehungsmodellierung für Leistungsanalyse von Mehrkernprozessoren - Google Patents
Beziehungsmodellierung für Leistungsanalyse von Mehrkernprozessoren Download PDFInfo
- 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
Links
- 238000004458 analytical method Methods 0.000 title description 7
- 238000012800 visualization Methods 0.000 claims abstract description 17
- 239000000872 buffer Substances 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000013479 data entry Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000004454 trace mineral analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3404—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring 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 in1 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 Leistungsanalysewerkzeug10 eine Steuerung12 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 Steuerung12 ist mit einem Speicher14 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 Library20 codieren, die den Werkzeugkasten an zu verwendbaren Merkmalen bereitstellt. Die Steuerung kann mit einem Eingang/Ausgang22 gekoppelt sein, um es dem Benutzer zu ermöglichen, Informationen einzugeben und eine Ausgabe zu empfangen. Ein Display24 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äche16 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 Anwendungsprogrammschnittstellen18 implementiert wird, durch Empfangen der Auswahl eines Threads, wie in Block22 angezeigt. Als nächstes wird ein Primitive-Identifikator ausgewählt, wie in Block24 angezeigt. Der Identifikator wird in Block26 registriert. Als nächstes wird in Block28 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 Tasks36 ,38 und42 , und ein Parameter in der Form eines Puffers40 . Die Pfeile44 ,52 ,50 und48 zeigen die Beziehungen zwischen den Tasks. Beispielsweise kann der Vertex-Task44 seine Ergebnisse in den Puffer40 geben, und diese Ergebnisse können von dem Pixel-Task42 verwendet werden. Daher ist der Task44 der Erzeuger und der Task42 ist der Verbraucher. Da der Vertex-Task38 durch den Draw-Task36 erzeugt wurde, zeigt der Pfeil52 an, dass der Vertex-Task das Child von dem Draw-Task36 ist. Gleichermaßen hängt der Pixel-Task42 zur Ausführung von dem Vertex-Task38 ab, und daher wird die Abhängigkeit von dem Pfeil46 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 Block28 , wird sodann in die Beziehungen für diese Primitive eingetreten, wie in Block30 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 Raute34 , 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 mit4 ü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)
- Verfahren, umfassend: Empfangen einer Identifikation einer Vielzahl von Code-Primitiven in einem Mehrkernprozessor; und Anzeigen einer funktionalen Beziehung zwischen Primitiven.
- Verfahren nach Anspruch 1, einschließlich Bereitstellen einer Visualisierung einer funktionalen Beziehung zwischen zumindest zwei Tasks.
- Verfahren nach Anspruch 1, einschließlich Anzeigen einer funktionalen Beziehung zwischen einem Task und einem Parameter.
- 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.
- 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.
- Verfahren nach Anspruch 1, einschließlich das automatische Implizieren einer Beziehung zwischen Primitiven.
- Verfahren nach Anspruch 6, einschließlich Implizieren einer transitiven Beziehung.
- Verfahren nach Anspruch 1, einschließlich das automatische Implizieren einer zu mehr Beziehungen und den gegenteiligen Beziehungen.
- 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.
- Verfahren nach Anspruch 1, einschließlich Bereitstellen eines Identifikators für jeden Task auf einem bestimmten Thread.
- 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.
- Medium nach Anspruch 11, das weiter Befehle speichert, um eine funktionale Beziehung zwischen zumindest zwei Tasks zu visualisieren.
- Medium nach Anspruch 11, das weiter Befehle speichert, um eine funktionale Beziehung zwischen einem Task und einem Parameter anzuzeigen.
- Medium nach Anspruch 13, das weiter Befehle speichert, um eine funktionale Beziehung zwischen einem Task und einem Puffer anzuzeigen.
- 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.
- Medium nach Anspruch 11, das weiter Befehle speichert, um automatisch eine Beziehung zwischen Primitiven zu implizieren.
- Medium nach Anspruch 16, das weiter Befehle speichert, um eine transitive Beziehung zu implizieren.
- Medium nach Anspruch 11, das weiter Befehle speichert, um automatisch eine zu mehr Beziehungen und die gegenteiligen Beziehungen zu implizieren.
- 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.
- Medium nach Anspruch 11, das weiter Befehle speichert, um einen Identifikator für jeden Task auf einem bestimmten Thread bereitzustellen.
- 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.
- Vorrichtung nach Anspruch 21, wobei der Speicher Befehle speichert, um Beziehungen zwischen Primitiven, einschließlich Tasks und Parameter, zu identifizieren.
- Vorrichtung nach Anspruch 21, wobei die Vorrichtung eine Visualisierung der funktionalen Beziehung zwischen zumindest zwei Primitiven bereitstellen soll.
- Vorrichtung nach Anspruch 21, wobei die Vorrichtung ein Grafikprozessor ist.
- Vorrichtung nach Anspruch 24, wobei die Vorrichtung ein SIMD-(single instruction multiple data)-Mehrkernprozessor ist.
- 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.
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)
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)
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 | 日本電気株式会社 | スケジュール決定装置、並列実行装置、スケジュール決定方法、及びプログラム |
-
2009
- 2009-12-23 US US12/645,562 patent/US8826234B2/en not_active Expired - Fee Related
-
2010
- 2010-11-30 TW TW099141408A patent/TWI506420B/zh not_active IP Right Cessation
- 2010-12-06 GB GB1020675A patent/GB2476544A/en not_active Withdrawn
- 2010-12-08 DE DE102010053701A patent/DE102010053701A1/de not_active Withdrawn
- 2010-12-22 CN CN201010618043.8A patent/CN102141954B/zh not_active Expired - Fee Related
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 |