REORDERING WORKLOADS TO IMPROVE CONCURRENCY ACROSS THREADS IN PROCESSOR-BASED DEVICES

Reordering workloads to improve concurrency across threads in processor-based devices is disclosed herein. In this regard, in some exemplary aspects, a processor-based device receives a plurality of workloads from a requestor, and constructs a weighted dependency graph based on the plurality of work...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: SAUCEDO, Alfredo Olegario, HORNBECK, Tate, VANREENEN, Robert
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Reordering workloads to improve concurrency across threads in processor-based devices is disclosed herein. In this regard, in some exemplary aspects, a processor-based device receives a plurality of workloads from a requestor, and constructs a weighted dependency graph based on the plurality of workloads. The weighted dependency graph comprises a plurality of vertices that each correspond to a workload of the plurality of workloads, and further comprises one or more directed edges that each connects two vertices of the plurality of vertices and indicates a dependency between a corresponding two workloads of the plurality of workloads. After generating the weighted dependency graph, the processor-based device performs a topological sort of the weighted dependency graph, and generates a workload execution order based on the topological sort. By scheduling workload execution according to the workload execution order, concurrency among threads may be maximized and processor resources may be more efficiently utilized. La présente invention divulgue un réordonnancement de charges de travail pour améliorer la concurrence à travers des fils dans des dispositifs basés sur un processeur. À cet égard, dans certains aspects donnés à titre d'exemple, un dispositif basé sur un processeur reçoit une pluralité de charges de travail en provenance d'un demandeur et construit un graphe de dépendance pondéré sur la base de la pluralité de charges de travail. Le graphe de dépendance pondéré comprend une pluralité de sommets qui correspondent chacun à une charge de travail de la pluralité de charges de travail, et comprend en outre un ou plusieurs bords orientés qui relient chacun deux sommets de la pluralité de sommets et qui indiquent une dépendance entre deux charges de travail correspondantes de la pluralité de charges de travail. Après la génération du graphe de dépendance pondéré, le dispositif basé sur un processeur effectue un tri topologique du graphe de dépendance pondéré et génère un ordre d'exécution de charge de travail sur la base du tri topologique. Par planification de l'exécution de charge de travail selon l'ordre d'exécution de charge de travail, la concurrence entre les fils peut être maximisée et les ressources de processeur peuvent être utilisées plus efficacement.