178 research outputs found

    Proactive Adaptation in Self-Organizing Task-based Runtime Systems for Different Computing Classes

    Get PDF
    Moderne Computersysteme bieten Anwendern und Anwendungsentwicklern ein hohes Maß an ParallelitĂ€t und HeterogenitĂ€t. Die effiziente Nutzung dieser Systeme erfordert jedoch tiefgreifende Kenntnisse, z.B. der darunterliegenden Hardware-Plattform und den notwendigen Programmiermodellen, und umfangreiche Arbeit des Entwicklers. In dieser Thesis bezieht sich die effiziente Nutzung auf die GesamtausfĂŒhrungszeit der Anwendungen, den Energieverbrauch des Systems, die maximale Temperatur der Verarbeitungseinheiten und die ZuverlĂ€ssigkeit des Systems. Neben den verschiedenen Optimierungszielen muss ein Anwendungsentwickler auch die spezifischen EinschrĂ€nkungen und Randbedingungen des Systems berĂŒcksichtigen, wie z. B. Deadlines oder Sicherheitsgarantien, die mit bestimmten Anwendungsbereichen einhergehen. Diese KomplexitĂ€t heterogener Systeme macht es unmöglich, alle potenziellen SystemzustĂ€nde und UmwelteinflĂŒsse, die zur Laufzeit auftreten können, vorherzusagen. Die System- und Anwendungsentwickler sind somit nicht in der Lage, zur Entwurfszeit festzulegen, wie das System und die Anwendungen in allen möglichen Situationen reagieren sollen. Daher ist es notwendig, die Systeme zur Laufzeit der aktuellen Situation anzupassen, um ihr Verhalten entsprechend zu optimieren. In eingebetteten Systemen mit begrenzten KĂŒhlkapazitĂ€ten muss z.B. bei Erreichen einer bestimmten Temperaturschwelle eine Lastverteilung vorgenommen, die Frequenz verringert oder Verarbeitungseinheiten abgeschaltet werden, um die WĂ€rmeentwicklung zu reduzieren. Normalerweise reicht es aber nicht aus, einfach nur auf einen ungĂŒnstigen Systemzustand zu reagieren. Das Ziel sollte darin bestehen, ungĂŒnstige oder fehlerhafte SystemzustĂ€nde vor dem Auftreten zu vermeiden, um die Notwendigkeit des Aufrufs von Notfallfunktionen zu verringern und die Benutzerfreundlichkeit zu verbessern. Anstatt beispielsweise die WĂ€rmeentwicklung durch eine Neuverteilung der Anwendungen zu reduzieren, könnten proaktive Mechanismen kritische Temperaturen bereits im Vorfeld vermeiden, indem sie bestimmte unkritische Aufgaben verzögern oder deren Genauigkeit oder QoS verringern. Auf diese Weise wird die Systemlast reduziert, bevor ein kritischer Punkt erreicht wird. Lösungen des aktuellen Stands der Technik wie einheitliche Programmiersprachen oder Laufzeitsysteme adressieren einige der oben genannten Herausforderungen, jedoch existiert kein Ansatz, der in der Lage ist, eine Optimierung mehrerer sich widersprechender Zielfunktionen dynamisch und vor allem proaktiv durchzufĂŒhren. Ein Konzept, das diese komplexe Aufgabe fĂŒr den Entwickler ĂŒbernimmt und eine Möglichkeit zur dynamischen und proaktiven Anpassung an VerĂ€nderungen bietet, ist die Selbstorganisation. Selbstorganisation ist jedoch definiert als ein Prozess ohne externe Kontrolle oder Steuerung. Im Kontext der Systemoptimierung kann dies leicht zu unerwĂŒnschten Ergebnissen fĂŒhren. Ein Ansatz, der Selbstorganisation mit einem Kontrollmechanismus kombiniert, welcher auf Robustheit und WiderstandsfĂ€higkeit gegenĂŒber Ă€ußeren Störungen abzielt, ist Organic Computing. Das bestimmende Merkmal von Organic Computing ist eine Observer/Controller-Architektur. Das Konzept dieser Architektur besteht darin, den aktuellen Zustand des Systems und der Umgebung zu ĂŒberwachen, diese Daten zu analysieren und auf der Grundlage dieser Analyse Entscheidungen ĂŒber das zukĂŒnftige Systemverhalten zu treffen. Organic Computing ermöglicht es also auf der Grundlage der vergangenen und des aktuellen Zustands proaktiv Mechanismen auszuwĂ€hlen und auszulösen, die das System optimieren und unerwĂŒnschte ZustĂ€nde vermeiden. Um die Vorteile des Organic Computings auf moderne heterogene Systeme zu ĂŒbertragen, kombiniere ich den Organic Computing-Ansatz mit einem Laufzeitsystem. Laufzeitsysteme sind ein vielversprechender Kandidat fĂŒr die Umsetzung des Organic Computing-Ansatzes, da sie bereits die AusfĂŒhrung von Anwendungen ĂŒberwachen und steuern. Insbesondere betrachte und bearbeite ich in dieser Dissertation die folgenden Forschungsthemen, indem ich die Konzepte des Organic Computings und der Laufzeitsysteme kombiniere: ‱ Erfassen des aktuellen Systemzustands durch Überwachung von Sensoren und Performance Countern ‱ Vorhersage zukĂŒnftiger SystemzustĂ€nde durch Analyse des vergangenen Verhaltens ‱ Nutzung von Zustandsinformationen zur proaktiven Anpassung des Systems Ich erweitere das Thema der Erfassung von SystemzustĂ€nden auf zwei Arten. ZunĂ€chst fĂŒhre ich eine neuartige heuristische Metrik zur Berechnung der ZuverlĂ€ssigkeit einer Verarbeitungseinheit ein, die auf symptombasierter Fehlererkennung basiert. Symptombasierte Fehlererkennung ist eine leichtgewichtige Methode zur dynamischen Erkennung von soften Hardware-Fehlern durch Überwachung des AusfĂŒhrungsverhaltens mit Performance Countern. Die dynamische Erkennung von Fehlern ermöglicht dann die Berechnung einer heuristischen Fehlerrate einer Verarbeitungseinheit in einem bestimmten Zeitfenster. Die Fehlerrate wird verwendet, um die Anzahl der erforderlichen AusfĂŒhrungen einer Anwendung zu berechnen, um eine bestimmte ErgebniszuverlĂ€ssigkeit, also eine Mindestwahrscheinlichkeit fĂŒr ein korrektes Ergebnis, zu gewĂ€hrleisten. Ein wichtiger Aspekt der Zustandserfassung ist die Minimierung des entstehenden Overheads. Ich verringere die Anzahl der fĂŒr OpenMP-Tasks notwendigen Profiling-DurchlĂ€ufe durch Thread-Interpolation und ÜberprĂŒfungen des Skalierungsverhaltens. ZusĂ€tzlich untersuche ich die Vorhersage von OpenCL Task-AusfĂŒhrungszeiten. Die PrĂ€diktoren der AusfĂŒhrungszeiten werden mit verschiedenen maschinellen Lernalgorithmen trainiert. Als Input werden Profile der Kernel verwendet, die durch statische Codeanalyse erstellt wurden. Um in dieser Dissertation zukĂŒnftige SystemzustĂ€nde vorherzusagen, sollen Anwendungen vorausgesagt werden, die in naher Zukunft im System vorkommen werden. In Kombination mit der AusfĂŒhrungsdatenbank ermöglicht dies die SchĂ€tzung der anstehenden Kosten, die das System zu bewĂ€ltigen hat. In dieser Arbeit werden zwei Mechanismen zur Vorhersage von Anwendungen/Tasks entwickelt. Der erste PrĂ€diktor zielt darauf ab, neue Instanzen unabhĂ€ngiger Tasks vorherzusagen. Der zweite Mechanismus betrachtet AusfĂŒhrungsmuster abhĂ€ngiger Anwendungen und sagt auf dieser Grundlage zukĂŒnftig auftretende Anwendungen vorher. Beide Mechanismen verwenden eine Vorhersagetabelle, die auf Markov-PrĂ€diktoren und dem Abgleich von Mustern basiert. In dieser Arbeit wird das Wissen, das durch die SystemĂŒberwachung und die Vorhersage zukĂŒnftiger Anwendungen gewonnen wird, verwendet, um die Optimierungsziele des Systems proaktiv in Einklang zu bringen und zu gewichten. Dies geschieht durch eine Reihe von Regeln, die eine Systemzustandsbeschreibung, bestehend aus dem aktuellen Zustand, Vorhersagen und Randbedingungen bzw. BeschrĂ€nkungen, auf einen Vektor aus Gewichten abbilden. Zum Erlernen der Regelmenge wird ein Extended Classifer System (XCS) eingesetzt. Das XCS ist in eine hierarchische Architektur eingebettet, die nach den Prinzipien des Organic Computing entworfen wurde. Eine wichtige Designentscheidung ist dabei die Auslagerung der Erstellung neuer Regeln an einen Offline-Algorithmus, der einen Simulator nutzt und parallel zum normalen Systemablauf ausgefĂŒhrt wird. Dadurch wird sichergestellt, dass keine ungetesteten Regeln, deren Auswirkungen noch nicht bekannt sind, dem laufenden System hinzugefĂŒgt werden. Die sich daraus ergebenden Gewichte werden schließlich verwendet, um eine Bewertungsfunktion fĂŒr List Scheduling-Algorithmen zu erstellen. Diese Dissertation erweitert das Forschungsgebiet der Scheduling-Algorithmen durch zwei Mechanismen fĂŒr dynamisches Scheduling. Die erste Erweiterung konzentriert sich auf nicht sicherheitskritische Systeme, die PrioritĂ€ten verwenden, um die unterschiedliche Wichtigkeit von Tasks auszudrĂŒcken. Da statische PrioritĂ€ten in stark ausgelasteten Systemen zu Starvation fĂŒhren können, habe ich einen dynamischen Ageing-Mechanismus entwickelt, der dazu in der Lage ist, die PrioritĂ€ten der Tasks entsprechend der aktuellen Auslastung und ihrer Wartezeiten anzupassen. Dadurch reduziert der Mechanismus die Gesamtlaufzeit ĂŒber alle Tasks und die Wartezeit fĂŒr Tasks mit niedrigerer PrioritĂ€t. Noch ist eine große Anzahl von Anwendungen nicht dazu bereit, den hohen Grad an ParallelitĂ€t zu nutzen, den moderne Computersysteme bieten. Ein Konzept, das versucht dieses Problem zu lösen, indem es mehrere verschiedene Prozesse auf demselben Rechenknoten zur AusfĂŒhrung bringt, ist das Co-Scheduling. In dieser Dissertation stelle ich einen neuartigen Co-Scheduling-Mechanismus vor, welcher die Task-Schedules mehrerer Laufzeitsysteminstanzen optimiert, die auf demselben Rechenknoten ausgefĂŒhrt werden. Um die notwendigen Informationen zwischen den Laufzeitsysteminstanzen zu teilen, speichert der Mechanismus die Daten in Shared Memory. Sobald ein Laufzeitsystem neue Tasks in das System einfĂŒgt, prĂŒft der Mechanismus, ob die Berechnung eines neuen Schedules sinnvoll ist. Wird die Entscheidung getroffen, einen neuen Schedule zu berechnen, setzt der Mechanismus Simulated Annealing ein, um alle Tasks, die bisher noch nicht mit ihrer AusfĂŒhrung begonnen haben, neu auf AusfĂŒhrungseinheiten abzubilden. Zusammenfassend lĂ€sst sich sagen, dass diese Arbeit neuartige Mechanismen und Algorithmen sowie Erweiterungen zu verschiedenen Forschungsgebieten anbietet, um ein proaktives selbst-organisierendes System zu implementieren, das sich an neue und unbekannte Situationen anpassen kann. Dabei wird die KomplexitĂ€t fĂŒr Benutzer und Anwendungsentwickler reduziert, indem die Entscheidungsfindung in das System selbst ausgelagert wird. Gleichzeitig sorgt dieser Ansatz fĂŒr eine effiziente Nutzung der Ressourcen des Systems. Insgesamt leistet diese Arbeit die folgenden BeitrĂ€ge zur Erweiterung des Stands der Forschung: ‱ EinfĂŒhrung einer neuartigen heuristischen Metrik zur Messung der ZuverlĂ€ssigkeit von Verarbeitungseinheiten. Die Metrik basiert auf einer leichtgewichtigen Methode zur Fehlererkennung, genannt symptombasierte Fehlererkennung. Mit der symptombasierten Fehlererkennung ist es möglich, mehrere injizierte Fehlerklassen und Interferenzen, die Soft-Hardware-Fehler simulieren, sowohl auf einer CPU als auch auf einer GPU zuverlĂ€ssig zu erkennen. DarĂŒber hinaus werden diese Ergebnisse durch Welch\u27s t-Test statistisch bestĂ€tigt. ‱ Vorschlag eines Vorhersagemodells fĂŒr die AusfĂŒhrungszeit von OpenCL Kerneln, das auf statischer Code-Analyse basiert. Das Modell ist in der Lage, die schnellste Verarbeitungseinheit aus einer Menge von Verarbeitungseinheiten mit einer Genauigkeit von im schlechtesten Fall 69 %69\,\% auszuwĂ€hlen. Zum Vergleich: eine Referenzvariante, welche immer den Prozessor vorhersagt, der die meisten Kernel am schnellsten ausfĂŒhrt, erzielt eine Genauigkeit von 25 %25\,\%. Im besten Fall erreicht das Modell eine Genauigkeit von bis zu 83 %83\,\%. ‱ Bereitstellung von zwei PrĂ€diktoren fĂŒr kommende Tasks/Anwendungen. Der erste Mechanismus betrachtet unabhĂ€ngige Tasks, die stĂ€ndig neue Task-Instanzen erstellen, der zweite abhĂ€ngige Anwendungen, die AusfĂŒhrungsmuster bilden. Dabei erzielt der erste Mechanismus bei der Vorhersage der Zeitspanne zwischen zwei aufeinanderfolgenden Task-Instanzen einen maximalen\\ sMAPEsMAPE-Wert von 4,33 %4,33\,\% fĂŒr sporadische und 0,002 %0,002 \,\% fĂŒr periodische Tasks. DarĂŒber hinaus werden Tasks mit einem aperiodischen AusfĂŒhrungsschema zuverlĂ€ssig erkannt. Der zweite Mechanismus erreicht eine Genauigkeit von 77,6 %77,6 \,\% fĂŒr die Vorhersage der nĂ€chsten anstehenden Anwendung und deren Startzeit. ‱ EinfĂŒhrung einer Umsetzung eines hierarchischen Organic Computing Frameworks mit dem Anwendungsgebiet Task-Scheduling. Dieses Framework enthĂ€lt u.a. ein modifiziertes XCS, fĂŒr dessen Design und Implementierung ein neuartiger Reward-Mechanismus entwickelt wird. Der Mechanismus bedient sich dabei eines speziell fĂŒr diesen Zweck entwickelten Simulators zur Berechnung von Task-AusfĂŒhrungskosten. Das XCS bildet Beschreibungen des Systemzustands auf Gewichte zur Balancierung der Optimierungsziele des Systems ab. Diese Gewichte werden in einer Bewertungsfunktion fĂŒr List Scheduling-Algorithmen verwendet. Damit wird in einem Evaluationsszenario, welches aus einem fĂŒnfmal wiederholten Muster aus Anwendungen besteht, eine Reduzierung der Gesamtlaufzeit um 10,4 %10,4\,\% bzw. 26,7 s26,7\,s, des Energieverbrauchs um 4,7 %4,7\,\% bzw. 2061,1 J2061,1\,J und der maximalen Temperatur der GPU um 3,6 %3,6\,\% bzw. 2,7K2,7 K erzielt. Lediglich die maximale Temperatur ĂŒber alle CPU-Kerne erhöht sich um 6 %6\,\% bzw. 2,3 K2,3\,K. ‱ Entwicklung von zwei Erweiterungen zur Verbesserung des dynamischen Task-Schedulings fĂŒr einzelne und mehrere Prozesse, z.B. mehrere Laufzeitsysteminstanzen. Der erste Mechanismus, ein Ageing-Algorithmus, betrachtet nicht sicherheitskritische Systeme, welche Task-PrioritĂ€ten verwenden, um die unterschiedliche Bedeutung von Anwendungen darzustellen. Da es in solchen Anwendungsszenarien in Kombination mit hoher Systemauslastung zu Starvation kommen kann, passt der Mechanismus die Task-PrioritĂ€ten dynamisch an die aktuelle Auslastung und die Task-Wartezeiten an. Insgesamt erreicht dieser Mechanismus in zwei Bewertungsszenarien eine durchschnittliche Laufzeitverbesserung von 3,75 %3,75\,\% und 3,16 %3,16\,\% bei gleichzeitiger Reduzierung der Durchlaufzeit von Tasks mit niedrigerer PrioritĂ€t um bis zu 25,67 %25,67\,\%. Der zweite Mechanismus ermöglicht die Optimierung von Schedules mehrerer Laufzeitsysteminstanzen, die parallel auf demselben Rechenknoten ausgefĂŒhrt werden. Dieser Co-Scheduling-Ansatz verwendet Shared Memory zum Austausch von Informationen zwischen den Prozessen und Simulated Annealing zur Berechnung neuer Task-Schedules. In zwei Evaluierungsszenarien erzielt der Mechanismus durchschnittliche Laufzeitverbesserungen von 19,74 %19,74\,\% und 20,91 %20,91\,\% bzw. etwa 2,7 s2,7\,s und 3 s3\,s

    Automatic generation of highly concurrent, hierarchical and heterogeneous cache coherence protocols from atomic specifications

    Get PDF
    Cache coherence protocols are often specified using only stable states and atomic transactions for a single cache hierarchy level. Designing highly-concurrent, hierarchical and heterogeneous directory cache coherence protocols from these atomic specifications for modern multicore architectures is a complicated task. To overcome these design challenges we have developed the novel *Gen algorithms (ProtoGen, HieraGen and HeteroGen). Using the *Gen algorithms highly-concurrent, hierarchical and heterogeneous cache coherence protocols can be automatically generated for a wide range of atomic input stable state protocol (SSP) speci fications - including the MOESI variants, as well as for protocols that are targeted towards Total Store Order and Release Consistency. In addition, for each *Gen algorithm we have developed and published an eponymous tool. The ProtoGen tool takes as input a single SSP (i.e., no concurrency) generating the corresponding protocol for a multicore architecture with non-atomic transactions. The ProtoGen algorithm automatically enforces the correct interleaving of conflicting coherence transactions for a given atomic coherence protocol specification. HieraGen is a tool for automatically generating hierarchical cache coherence protocols. Its inputs are SSPs for each level of the hierarchy and its output is a highly concurrent hierarchical protocol. HieraGen thus reduces the complexity that architects face by offloading the challenging task of composing protocols and managing concurrency. HeteroGen is a tool for automatically generating heterogeneous protocols that adhere to precise consistency models. As input, HeteroGen takes SSPs of the per-cluster coherence protocols, each of which satisfies its own per-cluster consistency model. The output is a concurrent (i.e., with transient states) heterogeneous protocol that satisfies a precisely defined consistency model that we refer to as a compound consistency model. To validate the correctness of the *Gen algorithms, the generated output protocols were verified for safety and deadlock freedom using a model checker. To verify the correctness of protocols that need to adhere to a specific compound consistency model generated by HeteroGen, novel litmus tests for multiple compound consistency models were developed. The protocols automatically generated using the *Gen tools have a comparable or better performance than manually generated cache coherence protocols, often discovering opportunities to reduce stalls. Thus, the *Gen tools reduce the complexity that architects face by offloading the challenging tasks of composing protocols and managing concurrency

    The Virtual Bus: A Network Architecture Designed to Support Modular-Redundant Distributed Periodic Real-Time Control Systems

    Get PDF
    The Virtual Bus network architecture uses physical layer switching and a combination of space- and time-division multiplexing to link segments of a partial mesh network together on schedule to temporarily form contention-free multi-hop, multi-drop simplex signalling paths, or 'virtual buses'. Network resources are scheduled and routed by a dynamic distributed resource allocation mechanism with self-forming and self-healing characteristics. Multiple virtual buses can coexist simultaneously in a single network, as the resources allocated to each bus are orthogonal in either space or time. The Virtual Bus architecture achieves deterministic delivery times for time-sensitive traffic over multi-hop partial mesh networks by employing true line-speed switching; delays of around 15ns at each switching point are demonstrated experimentally, and further reductions in switching delays are shown to be achievable. Virtual buses are inherently multicast, with delivery skew across multiple destinations proportional to the difference in equivalent physical length to each destination. The Virtual Bus architecture is not a purely theoretical concept; a small research platform has been constructed for development, testing and demonstration purposes

    Efficient bypass mechanisms for low latency networks on-chip

    Get PDF
    RESUMEN: La importancia de las redes en-chip en los procesadores multi-nĂșcleo es cada vez mayor. Los routers con baipĂĄs son una soluciĂłn eficiente para reducir la latencia de estas redes. Existen dos tipos de redes con baipĂĄs: single-hop y multi-hop. Las redes con baipĂĄs single-hop minimizan la latencia individual de cada router al asignar los recursos del router con antelaciĂłn a la recepciĂłn de los paquetes. Las redes con baipĂĄs multi-hop, conocidas como SMART, permiten que los paquetes atraviesen mĂșltiples routers en un Ășnico ciclo. La primera propuesta de esta tesis es Non-Empty Buffer Bypass (NEBB), un mecanismo que incrementa la utilizaciĂłn del baipĂĄs de tipo single-hop, eliminando la necesidad de usar canales virtuales. Para redes con baipĂĄs multi-hop propone SMART++ y S-SMART++. SMART++ elimina la necesidad de SMART de usar una gran cantidad de canales virtuales para aprovechar el ancho de banda de la red, permitiendo el diseño de configuraciones de bajo coste. S-SMART++ hace uso de la asignaciĂłn de recursos de forma especulativa para preparar el baipĂĄs de tipo multi-hop. Este mecanismo reduce la latencia y su dependencia con la longitud mĂĄxima de los saltos de tipo multi-hop, aspecto clave para su viabilidad en diseños reales. La contribuciĂłn final es un conjunto de herramientas de cĂłdigo abierto llamada Bypass Simulation Toolset (BST) compuesto por versiones extendidas de BookSim y OpenSMART, una API para integrar BookSim en otros simuladores y una serie de scripts para facilitar el diseño y evaluaciĂłn de este tipo de redes.ABSTRACT: Networks on-Chip (NoCs) are becoming more important in many-core processors as the number of cores grows. Bypass routers are an efficient solution that skips pipeline stages. There are two types of bypass mechanisms: single-hop and multi-hop bypass. Single-hop bypass minimizes the router delay by skipping allocation stages in each hop. Multi-hop bypass, called SMART, minimizes the effective number of hops by traversing multiple routers in a single cycle. The first proposal of this dissertation is Non-Empty Buffer Bypass (NEBB) for single-hop bypass, which increases the bypass utilization without requiring VCs to match traditional bypass routers. It proposes SMART++ and S-SMART++ for multi-hop bypass. SMART++ removes the requirement of using multiple VCs of SMART to exploit the bandwidth of the network, enabling low-cost configurations. S-SMART++ relies on speculative allocation to set up multi-hop bypass paths. Thus, it reduces latency and its dependency with the maximum length of multi-hops, relaxing the requirements to integrate multi-hop bypass in real designs. The final contribution is an open-source set of tools to simulate bypass NoCs called Bypass Simulation Toolset (BST) conformed by extended versions of BookSim and OpenSMART, an API to integrate BookSim in other simulators, and scripts to simplify the designing and evaluation of such NoCs.This work was supported by the Spanish Ministry of Science, Innovation and Universities, FPI grant BES-2017-079971, and contracts TIN2010-21291-C02-02, TIN2013- 46957-C2-2-P, TIN2015-65316-P, TIN2016-76635-C2-2-R (AEI/FEDER, UE) and TIC PID2019-105660RB-C22; the European HiPEAC Network of Excellence; the European Community's Seventh Framework Programme (FP7/2007-2013), under the Mont-Blanc 1 and 2 projects (grant agreements n 288777 and 610402); the European Union's Horizon 2020 research and innovation programme under the Mont-Blanc 3 project (grant agreement nÂș 671697). Bluespec Inc. provided access to Bluespec tools

    Understanding microarchitectural effects on the performance of parallel applications

    Get PDF
    International audienceSince several years, classical multiprocessor systems have evolved to multicores, which tightly integrate multiple CPU cores on a single die or package. This technological shift leads to sharing of microarchitectural resources between the individual cores, which has direct implications on the performance of parallel applications. It consequently makes understanding and tuning these significantly harder, besides the already complex issues of parallel programming. In this work, we empirically analyze various microarchitectural effects on the performance of parallel applications, through repeatable experiments. We show their importance, besides the effects described by Amdahl's law and synchronization or communication considerations. In addition to the classification of shared resources into storage and bandwidth resources of Abel et al. [1], we view the physical temperature and power budget also as a shared resource. Dynamic Voltage and Frequency Scaling (DVFS) over a wide range is needed to meet these constraints in multicores, thus it is a very important factor for performance nowadays. Our work aims to gain a better understanding of performance-limiting factors in high performance multicores, it shall serve as a basis to avoid them and to find solutions to tune parallel applications

    ConnectIt: A Framework for Static and Incremental Parallel Graph Connectivity Algorithms

    Full text link
    Connected components is a fundamental kernel in graph applications due to its usefulness in measuring how well-connected a graph is, as well as its use as subroutines in many other graph algorithms. The fastest existing parallel multicore algorithms for connectivity are based on some form of edge sampling and/or linking and compressing trees. However, many combinations of these design choices have been left unexplored. In this paper, we design the ConnectIt framework, which provides different sampling strategies as well as various tree linking and compression schemes. ConnectIt enables us to obtain several hundred new variants of connectivity algorithms, most of which extend to computing spanning forest. In addition to static graphs, we also extend ConnectIt to support mixes of insertions and connectivity queries in the concurrent setting. We present an experimental evaluation of ConnectIt on a 72-core machine, which we believe is the most comprehensive evaluation of parallel connectivity algorithms to date. Compared to a collection of state-of-the-art static multicore algorithms, we obtain an average speedup of 37.4x (2.36x average speedup over the fastest existing implementation for each graph). Using ConnectIt, we are able to compute connectivity on the largest publicly-available graph (with over 3.5 billion vertices and 128 billion edges) in under 10 seconds using a 72-core machine, providing a 3.1x speedup over the fastest existing connectivity result for this graph, in any computational setting. For our incremental algorithms, we show that our algorithms can ingest graph updates at up to several billion edges per second. Finally, to guide the user in selecting the best variants in ConnectIt for different situations, we provide a detailed analysis of the different strategies in terms of their work and locality

    Autotuning for Automatic Parallelization on Heterogeneous Systems

    Get PDF

    THIESEL 2020.Thermo-and Fluid Dynamic Processes in Direct Injection Engines.8th-11th September

    Full text link
    'The THIESEL 2020 Conference on Thermo-and Fluid Dynamic Processes in Direct Injection Engines planned in Valencia (Spain) for 8th to 11th September 2020 has been successfully held in a virtual format, due to the COVID19 pandemic. In spite of the very tough environmental demands, combustion engines will probably remain the main propulsion system in transport for the next 20 to 50 years, at least for as long as alternative solutions cannot provide the flexibility expected by customers of the 21st century. But it needs to adapt to the new times, and so research in combustion engines is nowadays mostly focused on the new challenges posed by hybridization and downsizing. The topics presented in the papers of the conference include traditional ones, such as Injection & Sprays, Combustion, but also Alternative Fuels, as well as papers dedicated specifically to CO2 Reduction and Emissions Abatement.Papers stem from the Academic Research sector as well as from the IndustryXandra Marcelle, M.; Desantes FernĂĄndez, JM. (2020). THIESEL 2020.Thermo-and Fluid Dynamic Processes in Direct Injection Engines.8th-11th September. Editorial Universitat PolitĂšcnica de ValĂšncia. http://hdl.handle.net/10251/150759EDITORIA
    • 

    corecore