28 research outputs found

    C Language Extensions for Hybrid CPU/GPU Programming with StarPU

    Get PDF
    Modern platforms used for high-performance computing (HPC) include machines with both general-purpose CPUs, and "accelerators", often in the form of graphical processing units (GPUs). StarPU is a C library to exploit such platforms. It provides users with ways to define "tasks" to be executed on CPUs or GPUs, along with the dependencies among them, and by automatically scheduling them over all the available processing units. In doing so, it also relieves programmers from the need to know the underlying architecture details: it adapts to the available CPUs and GPUs, and automatically transfers data between main memory and GPUs as needed. While StarPU's approach is successful at addressing run-time scheduling issues, being a C library makes for a poor and error-prone programming interface. This paper presents an effort started in 2011 to promote some of the concepts exported by the library as C language constructs, by means of an extension of the GCC compiler suite. Our main contribution is the design and implementation of language extensions that map to StarPU's task programming paradigm. We argue that the proposed extensions make it easier to get started with StarPU,eliminate errors that can occur when using the C library, and help diagnose possible mistakes. We conclude on future work

    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é

    Reproduire les environnements logiciels : un maillon incontournable de la recherche reproductible

    Get PDF
    International audienceAs software has become an integral part of scientific workflows, reproducible research practices must take it into account. In what way? Archiving source code is a necessary but insufficient condition. The ability to redeploy software environments, which at first sight may be viewed as a technical detail, is in fact a requirement. This article explores tools and methods to achieve this goal.Puisque le logiciel fait dorénavant partie du processus scientifique, une démarche de recherche reproductible doit intégrer le logiciel. Mais de quelle manière ? Si l’archivage du code source des logiciels utilisés dans la recherche est une condition nécessaire, elle n’est pas suffisante. La possibilité de redéployer les environnements logiciels, qui semble de prime abord être un détail technique, est en fait incontournable. Cet article explore différents outils et méthodes pour y parvenir

    DĂ©ploiements reproductibles dans le temps avec GNU Guix

    Get PDF
    Paru dans GNU/Linux Magazine France hors-série n°113 de mars 2021.National audiencePour la recherche scientifique comme pour d'autres domaines, on a souvent besoin de reproduire un environnement logiciel à l'identique non seulement sur différentes machines mais aussi à différents instants dans le temps. Docker et les machines virtuelles, qui sont souvent la solution choisie pour répondre à ce besoin, ont des limitations qu'il est facile de ne pas voir. Cet article illustre l'utilisation de GNU Guix pour des déploiements reproductibles, au bit près, dans l'espace et dans le temps

    Conception et mise en œuvre de rowe, une bibliothèque de communication orientée Web

    Get PDF
    The INDES project-team of Inria has been developing HOP, a multi-tier language for Web programming. As part of the RAPP FP7 European project, the team has set out to use HOP as the lingua franca of the robotics applications developed within that project. Part of the challenge lies in the integration of existing robotics code, written using ROS or custom libraries, with HOP-based application.This document reports on the implementation of rowe, a communication library designed the fill the gap between low-level robotics C components on one hand, and other C, C++, ROS, or HOP components on the other. The library aims to be a lightweight, high-performance, ``Web-friendly'' communication library. It implements a socket-like interface that allows programs to exchange JSON objects over WebSockets. We describe the rationale, design, and implementation of rowe.L'équipe-projet Inria INDES développe HOP, un langage à plusieurs niveaux pour la programmation Web. Dans le cadre du projet européen FP7 RAPP, l'équipe s'est donné pour objectif d'utiliser HOP comme lingua franca des applications robotiques développées dans le projet. Un des défis à relever est l'intégration de code robotique existant, utilisant ROS ou des bibliothèques dédiées, avec des applications en HOP.Ce document décrit rowe, une bibliothèque de communication visant à combler le vide entre d'un côté des composants robotiques bas niveau écrits en C, et d'un autre côté des composants écrits en C++, ROS ou HOP. L'objectif est de fournir une bibliothèque de communication légère, haute performance et qui s'intègre facilement à l'environnement Web. Elle met en œuvre une interface de type socket permettant d'échanger des objets JSON sur des WebSockets. Nous décrivons les motivations, les choix de conception, et la mise en œuvre de rowe

    Cooperative Data Backup for Mobile Devices

    Get PDF
    Les dispositifs informatiques mobiles tels que les ordinateurs portables, assistants personnels et téléphones portables sont de plus en plus utilisés. Cependant, bien qu'ils soient utilisés dans des contextes où ils sont sujets à des endommagements, à la perte, voire au vol, peu de mécanismes permettent d'éviter la perte des données qui y sont stockées. Dans cette thèse, nous proposons un service de sauvegarde de données coopératif pour répondre à ce problème. Cette approche tire parti de communications spontanées entre de tels dispositifs, chaque dispositif stockant une partie des données des dispositifs rencontrés. Une étude analytique des gains de cette approche en termes de sûreté de fonctionnement est proposée. Nous étudions également des mécanismes de stockage réparti adaptés. Les problèmes de coopération entre individus mutuellement suspicieux sont également abordés. Enfin, nous décrivons notre mise en oeuvre du service de sauvegarde coopérative. ABSTRACT : Mobile devices such as laptops, PDAs and cell phones are increasingly relied on but are used in contexts that put them at risk of physical damage, loss or theft. However, few mechanisms are available to reduce the risk of losing the data stored on these devices. In this dissertation, we try to address this concern by designing a cooperative backup service for mobile devices. The service leverages encounters and spontaneous interactions among participating devices, such that each device stores data on behalf of other devices. We first provide an analytical evaluation of the dependability gains of the proposed service. Distributed storage mechanisms are explored and evaluated. Security concerns arising from thecooperation among mutually suspicious principals are identified, and core mechanisms are proposed to allow them to be addressed. Finally, we present our prototype implementation of the cooperative backup servic

    Guix-HPC Activity Report 2017–2018

    Get PDF
    Guix-HPC is a collaborative effort to bring reproducible software deployment to scientific workflows and high-performance computing (HPC). Guix-HPC builds upon the GNU Guix software deployment tool and aims to make it a better tool for HPC practitioners and scientists concerned with reproducible research.Guix-HPC was launched in September 2017 as a joint software development project involving three research institutes: Inria, the Max DelbrĂĽck Center for Molecular Medicine (MDC), and the Utrecht Bioinformatics Center (UBC). GNU Guix for HPC and reproducible science has received contributions from additional individuals and organizations, including Cray, Inc. and Tourbillion Technology.This report highlights key achievements of Guix-HPC between its launch date in September 2017 and today, February 2019

    Le programme MORECOWBELL de la NSA sonne le glas du DNS

    Get PDF
    Traduit de l'anglais. Titre original : « NSA's MORECOWBELL: Knell for DNS ».Cet article décrit le programme « MORECOWBELL » de l'agence d'espionnage étasunienne NSA et montre les défauts du protocole DNS qu'il exploite. Un état de l'art des alternatives à DNS est ensuite donné, en évaluant l'efficiacité contre les attaques telles que celles perpétrées par la NSASur le net, presque tout commence par une requête au Domain Name System (DNS, pour « système de noms de domaine »), un protocole au cœur d'Internet qui permet aux usagers d'accéder à des services par un nom tel que www.example.com, plutôt que par une adresse IP numérique comme 2001:DB8:4145::4242. Développé au « bon vieux temps », le DNS contemporain ressemble à un tableau de bord de l'activité du réseau pour malvoyants. Par conséquent, il attire non seulement toutes sortes de surveillances à des fins commerciales, mais aussi la National Security Agency (NSA), comme le montrent de nouveaux documents sur son programme MORECOWBELL. Étant données les faiblesses de conception du DNS, on peut se demander si le DNS peut être sécurisé et sauvé ou bien si il doit être remplacé---tout du moins pour certains cas d'utilisation

    Rapport d’activité Guix-HPC 2019–2020

    Get PDF
    Guix-HPC is a collaborative effort to bring reproducible software deployment to scientific workflows and high-performance computing (HPC). Guix-HPC builds upon the GNU Guix software deployment tool and aims to make it a better tool for HPC practitioners and scientists concerned with reproducible research. This report highlights key achievements of Guix-HPC between our previous report a year ago and today, February 2021.This report highlights developments on GNU Guix proper, but also downstream on Guix-Jupyter, the Guix Workflow Language, as well as tools for end-to-end reproducible research article authoring pipelines
    corecore