21 research outputs found

    HPAC-Offload: Accelerating HPC Applications with Portable Approximate Computing on the GPU

    Full text link
    The end of Dennard scaling and the slowdown of Moore's law led to a shift in technology trends toward parallel architectures, particularly in HPC systems. To continue providing performance benefits, HPC should embrace Approximate Computing (AC), which trades application quality loss for improved performance. However, existing AC techniques have not been extensively applied and evaluated in state-of-the-art hardware architectures such as GPUs, the primary execution vehicle for HPC applications today. This paper presents HPAC-Offload, a pragma-based programming model that extends OpenMP offload applications to support AC techniques, allowing portable approximations across different GPU architectures. We conduct a comprehensive performance analysis of HPAC-Offload across GPU-accelerated HPC applications, revealing that AC techniques can significantly accelerate HPC applications (1.64x LULESH on AMD, 1.57x NVIDIA) with minimal quality loss (0.1%). Our analysis offers deep insights into the performance of GPU-based AC that guide the future development of AC algorithms and systems for these architectures.Comment: 12 pages, 12 pages. Accepted at SC2

    Checkpoint restart support for heterogeneous HPC applications

    Get PDF
    As we approach the era of exa-scale computing, fault tolerance is of growing importance. The increasing number of cores as well as the increased complexity of modern heterogenous systems result in substantial decrease of the expected mean time between failures. Among the different fault tolerance techniques, checkpoint/restart is vastly adopted in supercomputing systems. Although many supercomputers in the TOP 500 list use GPUs, only a few checkpoint restart mechanism support GPUs.In this paper, we extend an application level checkpoint library, called fault tolerance interface (FTI), to support multi-node/multi-GPU checkpoints. In contrast to previous work, our library includes a memory manager, which upon a checkpoint invocation tracks the actual location of the data to be stored and handles the data accordingly. We analyze the overhead of the checkpoint/restart procedure and we present a series of optimization steps to massively decrease the checkpoint and recovery time of our implementation. To further reduce the checkpoint time we present a differential checkpoint approach which writes only the updated data to the checkpoint file. Our approach is evaluated and, in the best case scenario, the execution time of a normal checkpoint is reduced by 15x in contrast with a non-optimized version, in the case of differential checkpoint the overhead can drop to 2.6% when checkpointing every 30s.The research leading to these results has received funding from the European Union’s Horizon 2020 Programme under the LEGaTO Project (www.legato-project.eu), grant agreement #780681.Peer ReviewedPostprint (author's final draft

    Scrooge Attack: Undervolting ARM Processors for Profit

    Full text link
    Latest ARM processors are approaching the computational power of x86 architectures while consuming much less energy. Consequently, supply follows demand with Amazon EC2, Equinix Metal and Microsoft Azure offering ARM-based instances, while Oracle Cloud Infrastructure is about to add such support. We expect this trend to continue, with an increasing number of cloud providers offering ARM-based cloud instances. ARM processors are more energy-efficient leading to substantial electricity savings for cloud providers. However, a malicious cloud provider could intentionally reduce the CPU voltage to further lower its costs. Running applications malfunction when the undervolting goes below critical thresholds. By avoiding critical voltage regions, a cloud provider can run undervolted instances in a stealthy manner. This practical experience report describes a novel attack scenario: an attack launched by the cloud provider against its users to aggressively reduce the processor voltage for saving energy to the last penny. We call it the Scrooge Attack and show how it could be executed using ARM-based computing instances. We mimic ARM-based cloud instances by deploying our own ARM-based devices using different generations of Raspberry Pi. Using realistic and synthetic workloads, we demonstrate to which degree of aggressiveness the attack is relevant. The attack is unnoticeable by our detection method up to an offset of -50mV. We show that the attack may even remain completely stealthy for certain workloads. Finally, we propose a set of client-based detection methods that can identify undervolted instances. We support experimental reproducibility and provide instructions to reproduce our results.Comment: European Commission Project: LEGaTO - Low Energy Toolset for Heterogeneous Computing (EC-H2020-780681

    Υλοποίηση τεχνικών λογισμικού για την αύξηση της ανθεκτικότητας των εφαρμογών σε σφάλματα σε σύγχρονες πλατφόρμες

    No full text
    Chip manufacturers introduce redundancy at various levels of CPU design to guaranteecorrect operation even for worst-case combinations of non-idealities in process variation andsystem operating conditions. This redundancy is implemented partly in the form of wide voltagemargins.This PhD dissertation is based on the concept that these conservative design runes aremostly excessive, as they account for execution scenarios that rarely appear during the lifetime of the systems. If the faults are ignored the system will result to application crashes or even system-wide failures. Our software based approach treats these faults to enable execution in such conditions.The approach is based on the concept that many applications domains it is not the exactoutput that matters but a rough estimation of the output. Therefore, we propose a programming model in which the developer can define which parts of the application are more significant than others. The programming model extends a widely used parallel programming model, called OpenMP. The developer provides information about the significance of computations and the programming model exposes a parameter, called ratio, which can control the extend of quality degradation and energy efficiency.The idea of significance-aware computing is ported into two different computing paradigms,the fault tolerant one and the approximate. In the case of fault tolerant computing we implement a significance-centric programming model and runtime support which sets the supply voltage in a multicore CPU to sub-nominal values to reduce the energy footprint and provide mechanisms to control output quality. The developers specify the significance of application tasks respecting their contribution to the output quality and provide check and repair functions for handling faults. On a multicore system we evaluate our approach using an energy model which quantifies the energy reduction. When executing the least significant tasks unreliably, our approach leads to 20% CPU energy reduction with respect to a reliable execution and has minimal quality degradation.In the case of approximate computing, we implement a similar programming model thatpromotes the combination of the significance and ratio features. The approach using analytical models of the energy consumption of the application can iii efficiently decide the degree of approximation to meet certain user defined energy requirements.There are many application domains which require their computations to be performedwithout any errors. Our study on the x86-64 Haswell and Skylake multicore microarchitecturesreveals wide voltage which can be removed without observing any errors. These margins canreach up to 22% and 13% of the nominal supply voltage for the Skylake and Haswellarchitectures respectively. The margins vary across different microarchitectures, different chipparts of the same microarchitecture, and across different workloads.We introduce a model which can be used dynamically to adjust the supply voltage of modernmulticore x86-64 CPUs to just above the minimum required for safe operation. We identify a set of performance metrics – directly measurable via performance monitoring counters – with high predictive value for the minimum tolerable supply voltage (Vmin ). We use benchmarks that vary in terms of application domain, resource utilization and pressure, and software/hardware interaction characteristics to train a Vmin prediction model. Finally, at execution time those metrics are monitored and serve as input to the model, in order to predict and apply the appropriate Vmin for the workload. Compared to the conventional approaches, our methodology achieves up to 42% energy savings for the Skylake family and 34% for the Haswell family for complex, real-world applications.Last but not least, during the course of the thesis we implemented the infrastructure toobserve accurately the application resiliency of faults as well as to identify voltage andfrequency margins of modern processors. GemFI is a fault injection tool based on the cycleaccurate full system simulator Gem5. GemFI provides fault injection methods and is easilyextensible to support future fault models. It also supports multiple processor models and ISAsand allows fault injection in both functional and cycle-accurate simulations. GemFI offers fast-forwarding of simulation campaigns via checkpointing. Moreover, it facilitates the parallelexecution of campaign experiments on a network of workstations. XM2 enables the evaluationof software on systems operating outside their nominal margins. It supports both bare-metaland OS-controlled execution using an API to control the fault injection procedure and providesautomatic management of experimental campaigns.Η βιομηχανία των ημιαγωγών έχει βασιστεί τις τελευταίες δεκαετίες στο νόμο τουMoore, ο οποίος προβλέπει κάθε 18 μήνες τον διπλασιασμό του αριθμού των transistorsανά μονάδα επιφάνειας σε ολοκληρωμένα κυκλώματα βασισμένα σε τεχνολογία CMOS. Σεαντιδιαστολή με το παρελθόν (πριν από το 2004), όπου οι σχεδιαστές επεξεργαστικώνσυστημάτων, μέσω της αύξησης του αριθμού των transistor, είχαν ως στόχο τηναντίστοιχη αύξηση της απόδοσης, η νέα πραγματικότητα θέτει την μείωση τηςκατανάλωσης ισχύος (και ενέργειας) ως την μεγαλύτερη πρόκληση στην σχεδίασηεπεξεργαστών.Ταυτόχρονα, η μεγάλη πυκνότητα τοποθέτησης των transistors οδηγούν στηναναξιόπιστη λειτουργία των σύγχρονων επεξεργαστών. Η αναξιοπιστία αυτή οφείλεται ενμέρει στις δυναμικές διακυμάνσεις ρεύματος και τάσης (supply voltage) οι οποίες είναι πιοπιθανό να δημιουργήσουν λάθη χρονισμού σε μικρές γεωμετρίες τεχνολογίας CMOS.Επίσης είναι πιο πιθανά τα κατασκευαστικά λάθη (fabrication faults) λόγω ατελειών τηςδιαδικασίας φωτολιθογραφίας. Επιπλέον, παροδικά λάθη (transient faults) που οφείλονταισε εξωγενείς παράγοντες, όπως alpha particles, έχουν μεγαλύτερη επίδραση σεμικρότερες γεωμετρίες τεχνολογίας CMOS. Για να επιτευχθεί αξιόπιστη λειτουργία υπόαυτές τις συνθήκες, οι σχεδιαστές σύγχρονων επεξεργαστικών συστημάτωνχρησιμοποιούν συντηρητικές σχεδιαστικές τεχνικές, όπως υψηλά περιθώρια τάσηςτροφοδοσίας (Vdd) και συχνότητας ρολογιού έτσι ώστε ο επεξεργαστής να προστατεύεταιαπό κάθε πιθανότητα λαθών χρονισμού. Οι συντηρητικές αυτές τεχνικές μπορεί μεν ναπροστατεύουν την αξιόπιστη λειτουργία του επεξεργαστή, έχουν όμως ως αποτέλεσμαμεγάλη σπατάλη σε ισχύ και ενέργεια η οποία φτάνει μέχρι και το 35% σε αρκετέςπεριπτώσεις.Η βασική ιδέα της παρούσας διδακτορικής διατριβής βασίζεται στο ότι αυτές οισυντηρητικές τεχνικές σχεδιασμού είναι σχεδόν πάντα περιττές και αντιστοιχούν σεπεριπτώσεις λειτουργίας που σχεδόν ποτέ δεν πρόκειται να συμβούν ταυτόχρονα κατά τηνδιάρκεια της λειτουργίας του επεξεργαστή. Χρησιμοποιώντας τεχνικές κυρίως στο επίπεδολογισμικού συστήματος και εφαρμογών, η διατριβή προτείνει την λειτουργία τουεπεξεργαστή πολύ κοντά στις ακραίες καταστάσεις λειτουργίας του και την εξάλειψη τουμεγαλύτερου μέρους του σχεδιαστικού περιθωρίου. Για παράδειγμα, η δυναμική μείωσητης τάσης τροφοδοσίας ενός επεξεργαστή κατά την διάρκεια λειτουργίας του μπορεί ναεπιφέρει μεγάλες βελτιώσεις στην κατανάλωση ισχύος του, αλλά, εφόσον δεν ελεγχθεί,είναι δυνατόν να δημιουργήσει λανθασμένα αποτελέσματα ή και να διακόψει απότομα τηνλειτουργία του. Από την άλλη, η αύξηση της συχνότητας του ρολογιού ενός επεξεργαστή,μπορεί μεν να βελτιώσει την απόδοση και να επιφέρει μείωση του χρόνου εκτέλεσης,αλλά, μπορεί να δημιουργήσει προβλήματα στην αξιοπιστία της λειτουργίας του.Η διατριβή βασίζεται στην ιδέα ότι σε πολλές εφαρμογές (ή επιμέρους φάσειςεφαρμογών) το ακριβές αποτέλεσμα είτε δεν μας ενδιαφέρει, είτε είναι πολύ απαιτητικό σεκύκλους μηχανής και κατανάλωση ενέργειας για να μας συμφέρει να υπολογιστεί.Προτείνουμε ένα νέο προγραμματιστικό μοντέλο στο οποίο ο προγραμματιστής μπορεί ναχαρακτηρίσει την σημαντικότητα των διαφορετικών τμημάτων μιάς εφαρμογής και τηνσυνεισφορά τους στην ποιότητα του τελικού αποτελέσματος. Το προγραμματιστικόμοντέλο επεκτείνει το γνωστό μοντέλο OpenMP που χρησιμοποιείται ευρέως στονπαράλληλο προγραμματισμό. Μέσω της πληροφορίας της σημαντικότητας που παρέχει οπρογραμματιστής σε επίπεδο πηγαίου κώδικα (source code) και μιας επιπλέονπαραμέτρου, που ονομάζεται ratio ο προγραμματιστής μπορεί και ελέγχει την αναλογίατης μείωσης της ενέργειας προς την μείωση της ποιότητας του αποτελέσματος.Η διατριβή υλοποιεί την παραπάνω ιδέα σε δύο διαφορετικούς τομείς υπολογισμών,τον προσεγγιστικό (approximate) τομέα και στον τομέα των ανθεκτικών υπολογισμών σεσφάλματα (fault tolerant). Στον τομέα τον ανθεκτικών υπολογισμών, υλοποιείται ηυποδομή του λογισμικού συστήματος (προγραμματιστικό μοντέλο και σύστημα χρόνουεκτέλεσης) για να καλύψει περιβάλλοντα αναξιόπιστης υπολογιστικής. Η υλοποιήση αυτήαναφέρεται κυρίως στο ότι σε αναξιόπιστα περιβάλλοντα που μπορεί να προκαλούνταιαπο χαμηλότερη τάση τροφοδοσίας ή/και υψηλότερη συχνότητα ρολογιού μπορεί νασυμβεί οποιοδήποτε λάθος στο υλικό το οποίο είναι πέρα από τον έλεγχο τουπρογραμματιστή. Αυτό επιβάλλει την ύπαρξη μηχανισμών αναγνώρισης και διόρθωσηςλαθών καθώς και μηχανισμούς απομόνωσης λαθών ώστε αυτά να μην επεκταθούν σεσημεία του κώδικα που μπορεί να είναι κρίσιμα για την σωστότητα της εφαρμογής. Οιμηχανισμοί αυτοί θα πρέπει να έχουν όσο το δυνατόν υψηλότερο ποσοστό ανίχνευσηςλαθών, αλλά και μικρή επιβάρυνση στην απόδοση της εφαρμογής. Η διατριβή προτείνει και υλοποιεί αναλυτικά μοντέλα απόδοσης και κατανάλωσηςενέργειας σε πολυπύρηνους επεξεργαστές. Πολύ σημαντική επίσης είναι και η αναλυτικήμοντελοποίηση των λαθών χρονισμού (fault modeling) που συμβαίνουν σε ένανεπεξεργαστή σε συνάρτηση με την τάση τροφοδοσίας του επεξεργαστή αυτού. Το πλήρεςσύστημα λογισμικού αξιόπιστης υπολογιστικής, μαζί με τα μοντέλα αυτά,χρησιμοποιούνται σε εκτεταμένες προσομοιώσεις εφαρμογών στον προσομοιωτή GemFIγια την εκτίμηση της βελτίωσης κατανάλωση ενέργειας (λόγω μειωμένης τάσηςτροφοδοσίας) χωρίς αλλοίωση των τελικών αποτελεσμάτων του υπολογισμού και χωρίςδιακοπή της λειτουργίας του επεξεργαστή. Τα πειράματα έδειξαν ότι μπορούμε ναμειώσουμε την τάση τροφοδοσίας ενός επεξεργαστή κατά μέσο όρο 15% μέχρι ναφτάσουμε στο Point of First Failure (PoFF), κάτω από το οποίο ο επεξεργαστής εκτίθεταισε μαζικά λάθη χρονισμού και είναι αδύνατη (ή ασύμφορη) κάθε προσπάθεια λειτουργίαςτου. Το σύστημα λογισμικού αξιόπιστης υπολογιστικής επιτρέπει την μείωση της τάσηςτροφοδοσίας μέχρι το PoFF (αλλά όχι πιο χαμηλά) αντιμετωπίζοντας επιτυχώς τα λάθηπου εμφανίζονται στην περιοχή αυτή και επιτυγχάνοντας μεγάλη μείωση της κατανάλωσηςισχύος/ενέργειας χωρίς επίπτωση στην ταχύτητα του επεξεργαστή. ́Οσον αφορά τον προσεγγιστικό τομέα, προτείνουμε και υλοποιούμε ένα παρόμοιοπρογραμματιστικό μοντέλο και ενα σύστημα χρόνου εκτέλεσης (run time system), το οποίοχρησιμοποιώντας αναλυτικά μοντέλα της απόδοσης και κατανάλωσης ισχύος τουεπεξεργαστή παίρνει ενημερωμένες αποφάσεις για τη ροή και το συντονισμό τηςεκτέλεσης του προγράμματος. Ο μηχανισμός αυτός επιτρέπει στον προγραμματιστή ναπροσαρμόσει δυναμικά την ποιότητα των αποτελεσμάτων μιας εφαρμογής με τηναπόδοση του συστήματος και την κατανάλωση ισχύος/ενέργειας.Για πολλες εφαρμογές όμως, είναι απαραίτητοι οι ακριβείς υπολογισμοί καθώς δενανέχονται μείωση της ποιότητας του αποτελέσματος. Επομένως, μέσω μιάς σειράςπειραμάτων σε Intel x86-64 επεξεργαστές αναγνωρίσαμε την μέγιστη μείωση της τάσηςτροφοδοσίας έτσι ώστε ο επεξεργαστής να παραμένει σε ασφαλή ζώνη λειτουργίας (χωρίςσφάλματα). Τα πειράματα αυτά φανέρωσαν ότι τα περιθώρια μείωσης της τάσης φτάνουν μέχρι 22% για επεξεργαστές Skylake και 13% για Haswell.Η παραπάνω ανάλυση των περιθωρίων τάσης έδωσαν την δυνατότητα ναδημιουργηθεί ένα μοντέλο μηχανικής μάθησης που χρησιμοποιήθηκε για την πρόβλεψημελλοντικών περιθωρίων τάσης τροφοδοσίας. Το μοντέλο αυτό δέχεται σαν είσοδο τιμέςτων performance counters του επεξεργαστή (ενώ το πρόγραμμα εκτελείται) και προβλέπειτο περιθώριο τάσης για το επόμενο χρονικό διάστημα. Με άλλα λόγια, η διατριβή αυτή έχειδείξει πειραματικά την συσχέτιση μεταξύ γεγονότων σε επίπεδο μικροαρχιτεκτονικής(όπως αυτά περιγράφονται από τους performance counters του επεξεργαστή) και τουμέγιστου περιθωρίου τάσης τροφοδοσίας. Το μοντέλο αυτό χρησιμοποιείται από ένανεξελιγμένο governor τάσης/συχνότητας που ορίζει κάθε φορά την τάση του επεξεργαστήώστε να επιτυγχάνουμε μεγάλη μείωση στην κατανάλωση ισχύος χωρίς τον κίνδυνομειωμένης αξιοπιστίας. Σε σύγκριση με τον συμβατικό Intel DVFS (Dynamic VoltageFrequency Scaling) governor, η μέθοδός μας επιτυγχάνει μείωση ενέργειας κατά 42% σεεπεξεργαστές Skylake και 34% σε επεξεργαστές Haswell.Η διατριβή αυτή επίσης μελέτησε την επίδραση που έχουν στα περιθώρια τάσηςτροφοδοσίας οι βελτιστοποιήσεις που κάνουν οι μεταγλωττιστές στον κώδικα μιαςεφαρμογής. Με τη χρήση του εργαλείου XM2 διαπιστώθηκε ότι οι μετασχηματισμοί πουμειώνουν τις προσπελάσεις στην κύρια μνήμη έχουν μεγάλη επίδραση στα περιθώρια τηςτάση τροφοδοσίας. Σε γενικές γραμμές όμως, η τάση τροφοδοσίας είναι περισσότεροσυνάρτηση της μικροαρχιτεκτονικής του επεξεργαστή παρά των βελτιστοποίησεων στονκώδικα που επιφέρει ο compiler.Η διδακτορική διατριβή δημιούργησε επίσης την ερευνητική υποδομή για ταπειράματα που διεξήχθησαν στα πλαίσια της αξιολόγησης των τεχνικών πουπεριγράφησαν στις προηγούμενες παραγράφους. Το GemFI είναι ένα εργαλείοδημιουργίας και προσομοίωσης λογικών λαθών σε ένα πολυπύρηνο επεξεργαστικόσύστημα. Δίνει την δυνατότητα στο χρήστη να εισάγει διάφορους τύπους λαθών, σεοποιαδήποτε χρονική στιγμή κατά τη διάρκεια εκτέλεσης του προγράμματος, και σεοποιοδήποτε τμήμα της αρχιτεκτονικής του επεξεργαστή. Το GemFI, το οποίο βασίζεταιστο γνωστό προσομοιωτή Gem5, μπορεί να εκτελέσει πλήρως το λογισμικό εφαρμογώνκαι συστήματος για μεγάλη γκάμα διαφορετικών αρχιτεκτονικών, δίνοντας έτσι τηδυνατότητα μελέτης της αξιοπιστίας του συστήματος κάτω απο διαφορετικές συνθήκες.Επίσης δημιουργήθηκε ένα δεύτερο εργαλείο, ο eXtended Margins eXperimentManager (ΧΜ2) που αυτοματοποιεί τη δημιουργία πειραμάτων σε πραγματικούςεπεξεργαστές που μπορούν να τίθενται σε μη-αξιόπιστες καταστάσεις τάσης καισυχνότητας. Το εργαλείο χρησιμοποιήθηκε για την δημιουργία τέτοιων πειραμάτων για τονχαρακτηρισμό της αξιοπιστίας του υλικού και για τον προσδιορισμό της ανοχής σε λάθηλογισμικού εφαρμογών που εκτελούνται σε επεξεργαστές x86-64 (Skylake, Haswell) καιAR

    Design and study of elastic recovery in HPC applications

    Get PDF
    The efficient utilization of current supercomputing systems with deep storage hierarchies demands scientific applications that are capable of leveraging such heterogeneous hardware. Fault tolerance, and checkpointing in particular, is one of the most time-consuming aspects if not handled correctly. High checkpoint performance can be achieved using optimized multilevel checkpoint and restart libraries. Unfortunately, those libraries do not allow for restarts with a modified number of processes or scientific post-processing of the checkpointed data. This is because they typically use an N-N checkpointing scheme and opaque file-formats. In this article, we present a novel mechanism to asynchronously store checkpoints into a self-descriptive file format and load the data upon recovery with a different number of processes. We provide an API that defines the process-local data as part of a globally shared dataset. Our measurements demonstrate a low overhead between 0.6% and 2.5% for a 2.25 TB checkpoint with 6K processes.Part of the research presented here has received funding from the Horizon 2020 (H2020) funding framework under grant/award number: 824158; Energy oriented Centre of Excellence II (EoCoE-II). The present publication reflects only the authors’ views. The European Commission is not liable for any use that might be made of the information contained therein. This work was partially performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under contract DEAC52-07NA2734 (LLNLCONF-811845).Peer ReviewedPostprint (author's final draft
    corecore