The Experts below are selected from a list of 453 Experts worldwide ranked by ideXlab platform
Cadore Cataldo Rodrigo - One of the best experts on this subject based on the ideXlab platform.
-
Subutai : Primitives de synchronisation distribuées pour applications parallèles antérieures et émergentes
2019Co-Authors: Cadore Cataldo RodrigoAbstract:Les applications parallèles sont essentielles pour utiliser efficacement la puissance de calcul des systèmes multi-processeurs (MPSoC). Cependant, ces applications ne s’adaptent pas sans effort au nombre de cœurs à cause des opérations de synchronisation qui limitent les gains de parallélisation. Les solutions existantes soit se restreignent à un sous-ensemble de primitives de synchronisation, soit nécessitent de modifier le code source de l'application, ou les deux. Nous présentons Subutai, une solution logiciel/matériel conçue pour distribuer les mécanismes de synchronisation sur le réseau sur puce, tout en restant compatible avec le code source originel. Subutai est composé d’un matériel spécialisé dans l’accélération des opérations de synchronisation, une mémoire privée, un pilote de système d’exploitation et une bibliothèque personnalisée. Nous ciblons la bibliothèque POSIX Threads (Pthreads), largement utilisée comme bibliothèque de synchronisation native et en interne par d’autres bibliothèques telles que OpenMP ou TBB. Nous fournissons aussi des extensions à Subutai destinées à accélérer encore davantage les applications dans deux cas: (i) plusieurs applications dans un contexte d'exécution fortement disputé; et (ii) sérialisation d’accès pour les variables condition dans Pthreads. Les résultats expérimentaux sur quatre applications du benchmark PARSEC fonctionnant sur un MPSoC à 64 cœurs montrent une accélération moyenne des applications de 1,57× par rapport à des solutions purement logicielles. Une accélération de 5% en plus est obtenue en utilisant notre politique d'ordonnancement Critical Section-aware comparée à un ordonnanceur Round-Robin de baseParallel applications are essential for efficiently using the computational power of a MultiProcessor System-on-Chip (MPSoC). Unfortunately, these applications do not scale effortlessly with the number of cores because of synchronization operations that take away valuable computational time and restrict the parallelization gains. The existing solutions either restrict the application to a subset of synchronization primitives, require refactoring the source code of it, or both. We introduce Subutai, a hardware/software architecture designed to distribute the synchronization mechanisms over the Network-on-Chip. Subutai is comprised of novel hardware specialized in accelerating synchronization operations, a small private memory for recording events, an operating system driver, and a user space custom Library that supports legacy and novel parallel applications. We target the POSIX Threads (Pthreads) Library as it is widely used as a synchronization Library, and internally by other libraries such as OpenMP and Threading Building Blocks. We also provide extensions to Subutai intended to further accelerate parallel applications in two scenarios: (i) multiple applications running in a highly-contended scheduling scenario; (ii) remove the access serialization to condition variables in Pthreads. Experimental results with four applications from the PARSEC benchmark running on a 64-core MPSoC show an average application speedup of 1.57× compared with the legacy software solutions. The same applications are further sped up to 5% using our proposed Critical Section-aware scheduling policy compared to a baseline Round-Robin scheduler without any changes in the application source code
-
Subutai : Primitives de synchronisation distribuées pour applications parallèles antérieures et émergentes
HAL CCSD, 2019Co-Authors: Cadore Cataldo RodrigoAbstract:Parallel applications are essential for efficiently using the computational power of a MultiProcessor System-on-Chip (MPSoC). Unfortunately, these applications do not scale effortlessly with the number of cores because of synchronization operations that take away valuable computational time and restrict the parallelization gains. The existing solutions either restrict the application to a subset of synchronization primitives, require refactoring the source code of it, or both. We introduce Subutai, a hardware/software architecture designed to distribute the synchronization mechanisms over the Network-on-Chip. Subutai is comprised of novel hardware specialized in accelerating synchronization operations, a small private memory for recording events, an operating system driver, and a user space custom Library that supports legacy and novel parallel applications. We target the POSIX Threads (Pthreads) Library as it is widely used as a synchronization Library, and internally by other libraries such as OpenMP and Threading Building Blocks. We also provide extensions to Subutai intended to further accelerate parallel applications in two scenarios: (i) multiple applications running in a highly-contended scheduling scenario; (ii) remove the access serialization to condition variables in Pthreads. Experimental results with four applications from the PARSEC benchmark running on a 64-core MPSoC show an average application speedup of 1.57× compared with the legacy software solutions. The same applications are further sped up to 5% using our proposed Critical Section-aware scheduling policy compared to a baseline Round-Robin scheduler without any changes in the application source code.Les applications parallèles sont essentielles pour utiliser efficacement la puissance de calcul des systèmes multi-processeurs (MPSoC). Cependant, ces applications ne s’adaptent pas sans effort au nombre de cœurs à cause des opérations de synchronisation qui limitent les gains de parallélisation. Les solutions existantes soit se restreignent à un sous-ensemble de primitives de synchronisation, soit nécessitent de modifier le code source de l'application, ou les deux. Nous présentons Subutai, une solution logiciel/matériel conçue pour distribuer les mécanismes de synchronisation sur le réseau sur puce, tout en restant compatible avec le code source originel. Subutai est composé d’un matériel spécialisé dans l’accélération des opérations de synchronisation, une mémoire privée, un pilote de système d’exploitation et une bibliothèque personnalisée. Nous ciblons la bibliothèque POSIX Threads (Pthreads), largement utilisée comme bibliothèque de synchronisation native et en interne par d’autres bibliothèques telles que OpenMP ou TBB. Nous fournissons aussi des extensions à Subutai destinées à accélérer encore davantage les applications dans deux cas: (i) plusieurs applications dans un contexte d'exécution fortement disputé; et (ii) sérialisation d’accès pour les variables condition dans Pthreads. Les résultats expérimentaux sur quatre applications du benchmark PARSEC fonctionnant sur un MPSoC à 64 cœurs montrent une accélération moyenne des applications de 1,57× par rapport à des solutions purement logicielles. Une accélération de 5% en plus est obtenue en utilisant notre politique d'ordonnancement Critical Section-aware comparée à un ordonnanceur Round-Robin de bas
Frank Mueller - One of the best experts on this subject based on the ideXlab platform.
-
Pthreads Library Interface
1999Co-Authors: Frank MuellerAbstract:This document describes the interface of the Pthreads Library developed at Florida State University. The implementation is based on the \POSIX 1003.1c Threads Extension" standard by the IEEE. The implementation is currently limited to the Sun SPARC architecture and the SunOS 4.1.x or Solaris 2.x operating systems as well as the Inter x86 architecture under Linux, FreeBSD, SCO and DOS+DJGPP. The package should be portable under other BSD, SVR4, or POSIX compliant UNIX systems. (C)OPYRIGHT NOTICE: Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998 the Florida State University Distributed by the Florida State University under the terms of the GNU Library General Public License. This file is part of Pthreads. Pthreads is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation (version 2). Pthreads is distributed "AS IS" in the hope that it will be useful, but WITHOUT ANY WARRANTY; wit..
-
Pthreads Library Interface
1995Co-Authors: Frank MuellerAbstract:This document describes the interface of the Pthreads Library developed at Florida State University. The implementation is based on the standard proposal "POSIX 1003.4a Threads Extension, Draft 6". The implementation is currently limited to the Sun SPARC architecture and the SunOS 4.1.x or Solaris 2.x operating systems. The package should be portable under other BSD, SVR4, or POSIX compliant UNIX systems
-
Pthreads Library Interface
1994Co-Authors: Frank MuellerAbstract:This document describes the interface of the Pthreads Library developed at Florida State University. The implementation is based on the standard proposal "POSIX 1003.4a Threads Extension, Draft 6". The implementation is currently limited to the Sun SPARC architecture and the SunOS 4.1.x or Solaris 2.x operating systems. The package should be portable under other BSD, SVR4, or POSIX compliant UNIX systems. (C)OPYRIGHT NOTICE: Copyright (C) 1992, the Florida State University Distributed by the Florida State University under the terms of the GNU Library General Public License. This file is part of Pthreads. Pthreads is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation (version 2). Pthreads is distributed "AS IS" in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library ..
-
Pthreads Library Interface
1993Co-Authors: Frank MuellerAbstract:This document describes the interface of the Pthreads Library developed at Florida State University. The implementation is based on the standard proposal "POSIX 1003.4a Threads Extension, Draft 6". The implementation is currently limited to the Sun SPARC architecture and the SunOS 4.1 operating system
-
Pthreads Library Interface
1993Co-Authors: Frank Mueller Department, Frank MuellerAbstract:This document describes the interface of the Pthreads Library developed at Florida State University. The implementation is based on the standard proposal "POSIX 1003.4a Threads Extension, Draft 6". The implementation is currently limited to the Sun SPARC architecture and the SunOS 4.1 operating system. (C)OPYRIGHT NOTICE: Copyright (C) 1992, the Florida State University Distributed by the Florida State University under the terms of the GNU Library General Public License. This file is part of Pthreads. Pthreads is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation (version 2). Pthreads is distributed "AS IS" in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library ..
Guy E. Blelloch - One of the best experts on this subject based on the ideXlab platform.
-
Pthreads for Dynamic Parallelism
1998Co-Authors: Girija J. Narlikar, Guy E. BlellochAbstract:Expressing a large number of lightweight, parallel threads in a shared address space significantly eases the task of writing a parallel program. Threads can be dynamically created to execute individual parallel tasks; the implementation schedules these threads onto the processors and effectively balances the load. However, unless the threads scheduler is designed carefully, such a parallel program may suffer poor space and time performance. In this paper, we evaluate the performance of a native, lightweight POSIX threads (Pthreads) Library on a shared memory machine using a set of parallel benchmarks that dynamically create a large number of threads. By studying the performance of one of the benchmarks, matrix multiply, we show how simple, yet provably good modifications to the Library can result in significantly improved space and time performance. With the modified Pthreads Library, each of the parallel benchmarks performs as well as its coarse-grained, hand-partitioned counterpart. ..
-
Pthreads for Dynamic and Irregular Parallelism
IEEE, 1998Co-Authors: Girija J. Narlikar, Guy E. BlellochAbstract:High performance applications on shared memory machines have been typically written in a coarse grained style, with one heavyweight thread per processor. In comparison, programming with a large number of lightweight, parallel threads has several advantages, including simpler coding for programs with irregular and dynamic parallelism, and better adaptability to a changing number of processors. The programmer can express a new thread to execute each individual parallel task; the implementation dynamically creates and schedules these threads onto the processors, and effectively balances the load. However, unless the threads scheduler is designed carefully, the parallel program may suffer poor space and time performance. In this paper, we study the performance of a native, lightweight POSIX threads (Pthreads) Library on a shared memory machine running Solaris; to our knowledge, the Solaris Library is one of the most efficient user-level implementations of the Pthreads standard ..
Nathan E. Dossy - One of the best experts on this subject based on the ideXlab platform.
-
Thread-safe message passing with p4 and MPI
1994Co-Authors: Anthony Skjellum, Nathan E. DossyAbstract:P4 (Portable Programs for Parallel Processors) is a popular message passing system. The Pthreads Library is a POSIX-standard implementation that supports multiple ows of control, called `threads ' within a process. MPI(Message Passing Interface) is the emerging message passing system which will soon be the industry standard system. This paper illustrates using multiple threads within the P4 processes and thread-safe message passing. It also describes the various issues that have tobelooked into when dealing with the two packages (P4 and Pthreads). We demonstrate thread-safe message passing by means of some test programs. Finally we identify areas where MPI is potentially unsafe in a multithreaded environment. We delve into the details of these issues and discuss introducing multi-threaded message passing into the MPICH implementation in the near feature.
-
Thread-Safe Message Passing With P4 and MPI
1994Co-Authors: Aswini Chowdappa, Anthony Skjellum, Nathan E. DossyAbstract:P4 (Portable Programs for Parallel Processors) is a popular message passing system. The Pthreads Library is a POSIX-standard implementation that supports multiple flows of control, called `threads' within a process. MPI(Message Passing Interface) is the emerging message passing system which will soon be the industry standard system. This paper illustrates using multiple threads within the P4 processes and thread-safe message passing. It also describes the various issues that have to be looked into when dealing with the two packages (P4 and Pthreads). We demonstrate thread-safe message passing by means of some test programs. Finally we identify areas where MPI is potentially unsafe in a multithreaded environment. We delve into the details of these issues and discuss introducing multi-threaded message passing into the MPICH implementation in the near feature. 1 Introduction The multiprocessing paradigm is a widely used computational model that helps in fast and efficient solutions for a..
Emery D Berger - One of the best experts on this subject based on the ideXlab platform.
-
dthreads efficient deterministic multithreading
Symposium on Operating Systems Principles, 2011Co-Authors: Tongping Liu, Charlie Curtsinger, Emery D BergerAbstract:Multithreaded programming is notoriously difficult to get right. A key problem is non-determinism, which complicates debugging, testing, and reproducing errors. One way to simplify multithreaded programming is to enforce deterministic execution, but current deterministic systems for C/C++ are incomplete or impractical. These systems require program modification, do not ensure determinism in the presence of data races, do not work with general-purpose multithreaded programs, or run up to 8.4× slower than Pthreads. This paper presents Dthreads, an efficient deterministic multithreading system for unmodified C/C++ applications that replaces the Pthreads Library. Dthreads enforces determinism in the face of data races and deadlocks. Dthreads works by exploding multithreaded applications into multiple processes, with private, copy-on-write mappings to shared memory. It uses standard virtual memory protection to track writes, and deterministically orders updates by each thread. By separating updates from different threads, Dthreads has the additional benefit of eliminating false sharing. Experimental results show that Dthreads substantially outperforms a state-of-the-art deterministic runtime system, and for a majority of the benchmarks evaluated here, matches and occasionally exceeds the performance of Pthreads.
-
Sheriff: Detecting and Eliminating False Sharing
2010Co-Authors: Tongping Liu, Emery D BergerAbstract:False sharing is an insidious problem for multi-threaded programs running on multicore processors, where it can silently degrade performance and scalability. Debugging false sharing problems is notoriously difficult. Previous approaches aimed at identifying false sharing are not only prohibitively slow (degrading performance by 200X), but also cannot distinguish false sharing from true sharing, cannot cope with dynamically allocated objects, generate numerous false positives, and fail to pinpoint the sources of false sharing. This paper presents Sheriff, a software-only system that both withstands and identifies false sharing in C/C++ applications. As a false sharing resistant runtime system, Sheriff replaces the standard Pthreads Library and eliminates false sharing, dramatically improving performance in the face of catastrophic false sharing (in one case, by almost 10X versus Pthreads). As a false sharing detection tool, Sheriff precisely identifies the sources of false sharing with no false positives and low overhead. A case study with the Phoenix and PARSEC benchmark suites shows that Sheriff can quickly identify false sharing and guide programmers to remove it. 1