12 research outputs found

    Reproducible and User-Controlled Software Environments in HPC with Guix

    Get PDF
    Support teams of high-performance computing (HPC) systems often find themselves between a rock and a hard place: on one hand, they understandably administrate these large systems in a conservative way, but on the other hand, they try to satisfy their users by deploying up-to-date tool chains as well as libraries and scientific software. HPC system users often have no guarantee that they will be able to reproduce results at a later point in time, even on the same system-software may have been upgraded, removed, or recompiled under their feet, and they have little hope of being able to reproduce the same software environment elsewhere. We present GNU Guix and the functional package management paradigm and show how it can improve reproducibility and sharing among researchers with representative use cases.Comment: 2nd International Workshop on Reproducibility in Parallel Computing (RepPar), Aug 2015, Vienne, Austria. http://reppar.org

    Towards a discipline of performance engineering : lessons learned from stencil kernel benchmarks

    Get PDF
    High performance computing systems are characterized by a high level of complexity both on their hardware and software side. The hardware has evolved offering a lot of compute power, at the cost of an increasing effort needed to program the systems, whose software stack can be correctly managed only by means of ad-hoc tools. Reproducibility has always been one of the cornerstones of science, but it is highly challenged by the complex ecosystem of software packages that run on HPC platforms, and also by some malpractices in the description of the configurations adopted in the experiments. In this work, we first characterize the factor that affects the reproducibility of experiments in the field of high performance computing and then we define a taxonomy of the experiments and levels of reproducibility that can be achieved, following the guidelines of a framework that is presented. A tool that implements said framework is described and used to conduct Performance Engineering experiments on kernels containing the stencil (structured grids) computational pattern. Due to the trends in architectural complexity of the new compute systems and the complexity of the software that runs on them, the gap between expected and achieved performance is widening. Performance engineering is critical to address such a gap, with its cycle of prediction, reproducible measurement, and optimization. A selection of stencil kernels is first modeled and their performance predicted through a grey box analysis and then compared against the reproducible measurements. The prediction is then used to validate the measured performance and vice-versa, resulting in a "Gold Standard" that draws a path towards a discipline of performance engineering

    Reproductibilité et performance : pourquoi choisir ?

    Get PDF
    International audienceResearch processes often rely on high-performance computing (HPC), but HPC is often seen as antithetical to "reproducibility": one would have to choose between software that achieves high performance, and software that can be deployed in a reproducible fashion. However, by giving up on reproducibility we would give up on verifiability, a foundation of the scientific process. How can we conciliate performance and reproducibility? This article looks at two performance-critical aspects in HPC: message passing (MPI) and CPU micro-architecture tuning. Engineering work that has gone into performance portability has already proved fruitful, but some areas remain unaddressed when it comes to CPU tuning. We propose package multi-versioning, a technique developed for GNU Guix, a tool for reproducible software deployment, and show that it allows us to implement CPU tuning without compromising on reproducibility and provenance tracking.Les travaux de recherche dépendent souvent de calcul intensif (ou HPC, pour « high-performance computing »), mais celui-ci est souvent perçu comme incompatible avec la « reproductibilité » : il faudrait choisir entre un logiciel performant et un logiciel qui puisse être déployé de manière reproductible. Mais en renonçant à la reproductibilité, on perdrait la capacité de vérifier les résultats, qui est pourtant un fondement de la démarche scientifique. Comment peut-on concilier performance et reproductibilité ? Cet article s’intéresse à deux aspects critiques de la performance en HPC : le passage de messages (MPI) et les micro-architectures de processeurs. Le travail d’ingénierie pour atteindre la portabilité des performances a été fructueux, mais certaines zones d’ombres persistent lorsqu’il s’agit de produire du code pour un processeur spécifique. Nous proposons le multi-versionage de paquets, une technique développée pour GNU Guix, un outil de déploiement logiciel reproductible, et montrons que cela permet de produire du code optimisé pour un CPU sans renoncer à la reproductibilité et à la traçabilité

    HPC Cluster Argo: Συναρμολόγηση, Εγκατάσταση, Συντήρηση, Λειτουργία με το OpenHPC

    Get PDF
    Η παρούσα πτυχιακή εργασία εκπονήθηκε κατά τους μήνες Μάρτιο – Οκτώβριο του 2019, πάνω στο αντικείμενο των Συστημάτων Υψηλής Υπολογιστικής Απόδοσης (HPC Systems) – Υπερυπολογιστών. Τα High Performance Computing Συστήματα, έχουν εφαρμογή σε ένα ευρύ φάσμα εφαρμογών. Η αξία τους είναι φανερά σημαντική και το πεδίο τους ιδιαίτερα ενδιαφέρον, αφού συνδυάζοντας αρχές της παραλληλίας, λύνουν προβλήματα σε συντομότερο και μη απαγορευτικό χρόνο. Στα πλαίσια της παρούσας πτυχιακής εργασίας, έγινε μελέτη στις αρχές των HPC Συστημάτων και έρευνα στην δύναμη τους, το πώς μπορεί να εγκατασταθεί ένα HPC Σύστημα και τέλος στο πώς να διαχειριστεί σωστά για εκμετάλλευση της δύναμης του. Τελικός και σημαντικότερος στόχος της εργασίας αυτής είναι να γίνει εκτενής περιγραφή όλης της διαδικασίας εγκατάστασης ενός HPC Συστήματος, που επέτρεψε την καλύτερη κατανόηση των Συστημάτων και την πρακτική ενασχόληση με αυτά. Συγκεκριμένα, έγινε εγκατάσταση της Argo με χρήση των εργαλείων του ανοικτού πακέτου OpenHPC, αποτελώντας ένα μικρό Cluster που συνδυάζει 10 μηχανές και συνολικά 80 πυρήνες. Παρακάτω γίνεται αρχικά εισαγωγή στα HPC Συστήματα, με αναφορά στον σκοπό τους, τα προβλήματα που λύνουν, τις εφαρμογές τους και την ιστορική τους εξέλιξη. Ακολουθεί παρουσίαση του OpenHPC λογισμικού και των τεχνολογιών που συνδυάζει για την δημιουργία και διαχείριση HPC συστήματος. Τέλος γίνεται εκτενής αναφορά στην διαδικασία ανάπτυξης της Argo, η οποία περιέχει οπτικό υλικό, παρουσίαση προβλημάτων, τρόπους επίλυσης κτλ. Η αναφορά μπορεί να χρησιμοποιηθεί, από κάποιον άπειρο, σαν βοήθεια για ανάπτυξη καινούργιων μικρών, ή και μεγάλων cluster.This dissertation thesis was conducted during March - October 2019, on the subject of High-Performance Computing Systems (HPC Systems) - Supercomputers. High Performance Computing Systems apply to a wide range of applications. Their value is obviously important and their scope is of particular interest, since combining the principles of parallelism solves problems in a shorter and non-prohibitive time. In the course of this thesis, we studied the principles of HPC Systems, researched into their power, how to install an HPC System and finally how to manage it properly to harness its power. The ultimate and most important goal of this work is to provide a detailed description of the entire process of installing an HPC System, which has allowed for a better understanding and practical application of the HPC Systems. Specifically, Argo was installed using the tools of the OpenHPC open source package, constituting a small Cluster combining 10 machines and a total of 80 cores. Below is an introduction to HPC Systems, with reference to their purpose, the problems they solve, their applications and their historical evolution. Then follows a presentation of the OpenHPC software and the technologies it combines for creating and managing an HPC system. Finally, there is an extensive reference to the Argo System development process, which contains visual material, problem presentation, ways to solve, etc. The reference can be used by any inexperienced to help develop new small and/or large cluster

    On benchmarking of deep learning systems: software engineering issues and reproducibility challenges

    Get PDF
    Since AlexNet won the ImageNet Large Scale Visual Recognition Challenge (ILSVRC) in 2012, Deep Learning (and Machine Learning/AI in general) gained an exponential interest. Nowadays, their adoption spreads over numerous sectors, like automotive, robotics, healthcare and finance. The ML advancement goes in pair with the quality improvement delivered by those solutions. However, those ameliorations are not for free: ML algorithms always require an increasing computational power, which pushes computer engineers to develop new devices capable of coping with this demand for performance. To foster the evolution of DSAs, and thus ML research, it is key to make it easy to experiment and compare them. This may be challenging since, even if the software built around these devices simplifies their usage, obtaining the best performance is not always straightforward. The situation gets even worse when the experiments are not conducted in a reproducible way. Even though the importance of reproducibility for the research is evident, it does not directly translate into reproducible experiments. In fact, as already shown by previous studies regarding other research fields, also ML is facing a reproducibility crisis. Our work addresses the topic of reproducibility of ML applications. Reproducibility in this context has two aspects: results reproducibility and performance reproducibility. While the reproducibility of the results is mandatory, performance reproducibility cannot be neglected because high-performance device usage causes cost. To understand how the ML situation is regarding reproducibility of performance, we reproduce results published for the MLPerf suite, which seems to be the most used machine learning benchmark. Because of the wide range of devices and frameworks used in different benchmark submissions, we focus on a subset of accuracy and performance results submitted to the MLPerf Inference benchmark, presenting a detailed analysis of the difficulties a scientist may find when trying to reproduce such a benchmark and a possible solution using our workflow tool for experiment reproducibility: PROVA!. We designed PROVA! to support the reproducibility in traditional HPC experiments, but we will show how we extended it to be used as a 'driver' for MLPerf benchmark applications. The PROVA! driver mode allows us to experiment with different versions of the MLPerf Inference benchmark switching among different hardware and software combinations and compare them in a reproducible way. In the last part, we will present the results of our reproducibility study, demonstrating the importance of having a support tool to reproduce and extend original experiments getting deeper knowledge about performance behaviours

    HIGH PERFORMANCE CLUSTER MANAGEMENT

    Get PDF
    Η παρούσα εργασία πάνω στο αντικείμενο των Συστημάτων Υψηλής Υπολογιστικής Απόδοσης (HPC Systems) κάνει μια εκτενή περιγραφή ολόκληρης της διαδικασίας εγκατάστασης ενός συστήματος HPC. Συγκεκριμένα, έγινε εγκατάσταση της Argo με χρήση των εργαλείων του πακέτου ανοιχτού κώδικα OpenHPC, σχηματίζοντας ένα Cluster που συνδυάζει 11 κόμβους και συνολικά 90 πυρήνες. Επιπλέον, περιγράφονται τα δομικά στοιχεία ενός Unix/Linux cluster, και η διαχείριση ενός υπολογιστικού συστήματος υψηλής απόδοσης. Στο πλαίσιο της παρούσας εργασίας η μελέτη των HPC Συστημάτων περιέλαβε: διερεύνηση της λειτουργίας και οργάνωσής τους, διαδικασία εγκατάστασης και αναβάθμισης λογισμικού και ορθή διαχείριση και εκμετάλλευση πόρων. Συγκεκριμένα, έγινε αρχικά η αναβάθμιση των πακέτων του λογισμικού ohpc από την έκδοση 1.3.8 σε 1.3.9., έπειτα ενσωματώθηκε ο 11ος κόμβος στο σύστημα και έγινε η εγκατάσταση των απαιτούμενων εργαλείων για τη μεταγλώττιση και εκτέλεση παράλληλων προγραμμάτων αξιοποιώντας δυο κάρτες γραφικών Nvidia, καθώς και ο ορισμός ουράς για την εκτέλεση των προγραμμάτων, χρησιμοποιώντας το λογισμικό OpenPBS. Τα προηγούμενα βήματα, παρότι επαναλήφθηκαν καθ’ όλη τη διάρκεια της εργασίας, ήταν καθοριστικά στην απόκτηση γνώσεων επί διαφόρων πτυχών της διαδικασίας, βοήθησαν στην κατανόηση του μηχανισμού λειτουργίας του συστήματος, ενώ ήταν και αναγκαία για την ενημέρωση του συστήματος για αποφυγή τυχόν κινδύνων ασφαλείας, και αξιοποίηση της τελευταίας έκδοση λογισμικού που παρέχει το OpenHPC. Το επόμενο βήμα ήταν η αναβάθμιση του συστήματος στην έκδοση OpenHPC 2 για το οποίο χρειάστηκε να γίνει η διαδικασία της εγκατάστασης εξ αρχής. Επομένως, έγινε εγκατάσταση του CentOS 8 στο server, εγκατάσταση των εργαλείων του OpenHPC και ρύθμιση του συστήματος που περιλαμβάνει: την εγκατάσταση των προγραμμάτων υποδομής, την ενσωμάτωση των κόμβων, την εγκατάσταση βασικών εργαλείων μεταγλώττισης και τη ρύθμιση εργαλείων επίβλεψης ορθής λειτουργία του συστήματος. Παρακάτω, γίνεται αρχικά εισαγωγή στα HPC Συστήματα, όπου περιγράφονται τα βασικά στοιχειά ενός (HPC Systems), το λογισμικό και οι τεχνολογίες που συνδυάζουν για τη δημιουργία και διαχείριση HPC συστήματος. Επιπλέον, γίνεται εκτενής αναφορά στη διαδικασία εγκατάσταση της Argo, παρουσίαση προβλημάτων, τρόποι επίλυσης κτλ. Τέλος, γίνεται αναφορά στις βασικές εργασίες όπου μπορεί να χρειαστεί να επέμβει ο διαχειριστής του συστήματος, σε ξεχωριστά παραρτήματα.HPC Systems, support a wide range of applications. They have significant contribution in cases where parallelism can be introduced inside computation-intensive cases, allowing problem-solving and data generation in shorter times than using a single PC. Aim of this thesis was to compile an extensive documentation related to the installation, building, management, and administration of an HPC System, through the OpenHPC open-source framework. A small cluster was formed comprised by a Master Server (Argo) and 11 computational nodes. An in-depth investigation of the system architecture, the required software and technologies used to setup and manage the cluster was performed. Emphasis was given in setting up and configuring Argo to properly handle all the nodes. Finally, some guidelines for System Administrators to address common issues are provided

    Contribution à la convergence d'infrastructure entre le calcul haute performance et le traitement de données à large échelle

    Get PDF
    The amount of produced data, either in the scientific community or the commercialworld, is constantly growing. The field of Big Data has emerged to handle largeamounts of data on distributed computing infrastructures. High-Performance Computing (HPC) infrastructures are traditionally used for the execution of computeintensive workloads. However, the HPC community is also facing an increasingneed to process large amounts of data derived from high definition sensors andlarge physics apparati. The convergence of the two fields -HPC and Big Data- iscurrently taking place. In fact, the HPC community already uses Big Data tools,which are not always integrated correctly, especially at the level of the file systemand the Resource and Job Management System (RJMS).In order to understand how we can leverage HPC clusters for Big Data usage, andwhat are the challenges for the HPC infrastructures, we have studied multipleaspects of the convergence: We initially provide a survey on the software provisioning methods, with a focus on data-intensive applications. We contribute a newRJMS collaboration technique called BeBiDa which is based on 50 lines of codewhereas similar solutions use at least 1000 times more. We evaluate this mechanism on real conditions and in simulated environment with our simulator Batsim.Furthermore, we provide extensions to Batsim to support I/O, and showcase thedevelopments of a generic file system model along with a Big Data applicationmodel. This allows us to complement BeBiDa real conditions experiments withsimulations while enabling us to study file system dimensioning and trade-offs.All the experiments and analysis of this work have been done with reproducibilityin mind. Based on this experience, we propose to integrate the developmentworkflow and data analysis in the reproducibility mindset, and give feedback onour experiences with a list of best practices.RésuméLa quantité de données produites, que ce soit dans la communauté scientifiqueou commerciale, est en croissance constante. Le domaine du Big Data a émergéface au traitement de grandes quantités de données sur les infrastructures informatiques distribuées. Les infrastructures de calcul haute performance (HPC) sont traditionnellement utilisées pour l’exécution de charges de travail intensives en calcul. Cependant, la communauté HPC fait également face à un nombre croissant debesoin de traitement de grandes quantités de données dérivées de capteurs hautedéfinition et de grands appareils physique. La convergence des deux domaines-HPC et Big Data- est en cours. En fait, la communauté HPC utilise déjà des outilsBig Data, qui ne sont pas toujours correctement intégrés, en particulier au niveaudu système de fichiers ainsi que du système de gestion des ressources (RJMS).Afin de comprendre comment nous pouvons tirer parti des clusters HPC pourl’utilisation du Big Data, et quels sont les défis pour les infrastructures HPC, nousavons étudié plusieurs aspects de la convergence: nous avons d’abord proposé uneétude sur les méthodes de provisionnement logiciel, en mettant l’accent sur lesapplications utilisant beaucoup de données. Nous contribuons a l’état de l’art avecune nouvelle technique de collaboration entre RJMS appelée BeBiDa basée sur 50lignes de code alors que des solutions similaires en utilisent au moins 1000 fois plus.Nous évaluons ce mécanisme en conditions réelles et en environnement simuléavec notre simulateur Batsim. En outre, nous fournissons des extensions à Batsimpour prendre en charge les entrées/sorties et présentons le développements d’unmodèle de système de fichiers générique accompagné d’un modèle d’applicationBig Data. Cela nous permet de compléter les expériences en conditions réellesde BeBiDa en simulation tout en étudiant le dimensionnement et les différentscompromis autours des systèmes de fichiers.Toutes les expériences et analyses de ce travail ont été effectuées avec la reproductibilité à l’esprit. Sur la base de cette expérience, nous proposons d’intégrerle flux de travail du développement et de l’analyse des données dans l’esprit dela reproductibilité, et de donner un retour sur nos expériences avec une liste debonnes pratiques

    The Lens of the Lab: Design Challenges in Scientific Software

    Get PDF
    Playful and gameful design could improve the quality of scientific software. However, literature about gamification methods for that particular type of software is presently scarce. As an effort to fill that gap, this paper introduces a set of design challenges and opportunities that should be informative to professionals approaching the area. This research is based on literature review on scientific software development, also contemplating material on the gamification of science, software, and work. From the gathered information, we identify, map, and discuss key aspects of development and use of professional scientific software. Those findings are, then, formatted as a Design Lens—a set of questions designers should ask themselves to gain insight, from a particular perspective, on their work. We propose the Lens of the Lab as a design lens to support designers working in collaboration with scientists and software engineers in professional scientific software initiatives
    corecore