Charliecloud: Unprivileged containers for user-defined software stacks in HPC
Abstract
Supercomputing centers are seeing increasing demand for user-defined software stacks (UDSS), instead of or in addition to the stack provided by the center. These UDSS support user needs such as complex dependencies or build requirements, externally required configurations, portability, and consistency. The challenge for centers is to provide these services in a usable manner while minimizing the risks: security, support burden, missing functionality, and performance. We present Charliecloud, which uses the Linux user and mount namespaces to run industry-standard Docker containers with no privileged operations or daemons on center resources. Our simple approach avoids most security risks while maintaining access to the performance and functionality already on offer, doing so in less than 500 lines of code. Charliecloud promises to bring an industry-standard UDSS user workflow to existing, minimally altered HPC resources.
- Authors:
-
- Los Alamos National Lab. (LANL), Los Alamos, NM (United States)
- Publication Date:
- Research Org.:
- Los Alamos National Lab. (LANL), Los Alamos, NM (United States)
- Sponsoring Org.:
- USDOE
- OSTI Identifier:
- 1296650
- Report Number(s):
- LA-UR-16-22370
- DOE Contract Number:
- AC52-06NA25396
- Resource Type:
- Conference
- Country of Publication:
- United States
- Language:
- English
- Subject:
- 97 MATHEMATICS AND COMPUTING
Citation Formats
Priedhorsky, Reid, and Randles, Timothy C. Charliecloud: Unprivileged containers for user-defined software stacks in HPC. United States: N. p., 2016.
Web. doi:10.2172/1296650.
Priedhorsky, Reid, & Randles, Timothy C. Charliecloud: Unprivileged containers for user-defined software stacks in HPC. United States. doi:10.2172/1296650.
Priedhorsky, Reid, and Randles, Timothy C. Tue .
"Charliecloud: Unprivileged containers for user-defined software stacks in HPC". United States.
doi:10.2172/1296650. https://www.osti.gov/servlets/purl/1296650.
@article{osti_1296650,
title = {Charliecloud: Unprivileged containers for user-defined software stacks in HPC},
author = {Priedhorsky, Reid and Randles, Timothy C.},
abstractNote = {Supercomputing centers are seeing increasing demand for user-defined software stacks (UDSS), instead of or in addition to the stack provided by the center. These UDSS support user needs such as complex dependencies or build requirements, externally required configurations, portability, and consistency. The challenge for centers is to provide these services in a usable manner while minimizing the risks: security, support burden, missing functionality, and performance. We present Charliecloud, which uses the Linux user and mount namespaces to run industry-standard Docker containers with no privileged operations or daemons on center resources. Our simple approach avoids most security risks while maintaining access to the performance and functionality already on offer, doing so in less than 500 lines of code. Charliecloud promises to bring an industry-standard UDSS user workflow to existing, minimally altered HPC resources.},
doi = {10.2172/1296650},
journal = {},
number = ,
volume = ,
place = {United States},
year = {Tue Aug 09 00:00:00 EDT 2016},
month = {Tue Aug 09 00:00:00 EDT 2016}
}
-
Semantic-driven Parallelization of Loops Operating on User-defined Containers
The authors describe ROSE, a C++ infrastructure for source-to-source translation, that provides an interface for programmers to easily write their own translators for optimizing user-defined high-level abstractions. Utilizing the semantics of these high-level abstractions, they demonstrate the automatic parallelization of loops that iterate over user-defined containers that have interfaces similar to the lists, vectors and sets in the Standard Template Library (STL). The parallelization is realized in two phases. First, they insert OpenMP directives into a serial program, driven by the recognition of the high-level abstractions, containers, that are thread-safe. Then, they translate the OpenMP directives into library routines thatmore »