What is Charliecloud?
Charliecloud provides user-defined software stacks (UDSS) for high-performance computing (HPC) centers. This "bring your own software stack" functionality addresses needs such as:
- software dependencies that are numerous, complex, unusual, differently configured, or simply newer/older than what the center provides;
- build-time requirements unavailable within the center, such as relatively unfettered internet access;
- validated software stacks and configuration to meet the standards of a particular field of inquiry;
- portability of environments between resources, including workstations and other test and development system not managed by the center;
- consistent environments, even archivally so, that can be easily, reliabily, and verifiably reproduced in the future; and/or
- usability and comprehensibility.
WARNING: Cray CLE in recent versions has a bug that crashes nodes when cleaning up after some jobs, including if Charliecloud has been used. See the installation instructions for a workaround.
How does it work?
Charliecloud uses Linux user namespaces to run containers with no privileged operations or daemons and minimal configuration changes on center resources. This simple approach avoids most security risks while maintaining access to the performance and functionality already on offer.
Container images can be built using Docker or anything else that can generate a standard Linux filesystem tree.
How do I learn more?
- Documentation: https://hpc.github.io/charliecloud
- GitHub repository: https://github.com/hpc/charliecloud
- We wrote an article for USENIX's magazine ;login: that explains in more detail the motivation for Charliecloud and the technology upon which it is based: https://www.usenix.org/publications/login/fall2017/priedhorsky
- A more technical resource is our Supercomputing 2017 paper: https://dl.acm.org/citation.cfm?id=3126925
Who is responsible?
The core Charliecloud team at Los Alamos is:
- Reid Priedhorsky <email@example.com>, co-founder and BDFL
- Tim Randles <firstname.lastname@example.org>, co-founder
- Michael Jennings <email@example.com>
- Jordan Ogas <firstname.lastname@example.org>
Patches (code, documentation, etc.) contributed by:
- Reid Priedhorsky <email@example.com>
- Rusty Davis <firstname.lastname@example.org>
- Oliver Freyermuth <email@example.com>
- Christoph Junghans <firstname.lastname@example.org>
- Jordan Ogas <email@example.com>
- Matthew Vernon <firstname.lastname@example.org>
- Peter Wienemann <email@example.com>
- Lowell Wofford <firstname.lastname@example.org>
How can I participate?
Questions, comments, feature requests, bug reports, etc. can be directed to:
- our mailing list: email@example.com or https://groups.io/g/charliecloud
- issues on GitHub
Patches are much appreciated on the software itself as well as documentation. Optionally, please include in your first patch a credit for yourself in the list above.
We are friendly and welcoming of diversity on all dimensions.
Copyright and license
Charliecloud is copyright © 2014–2018 Los Alamos National Security, LLC. This software has been approved for open source release, LA-CC 14-096.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. A copy of the license is included in file LICENSE.
This material was produced under U.S. Government contract DE-AC52-06NA25396 for Los Alamos National Laboratory (LANL), which is operated by Los Alamos National Security, LLC for the U.S. Department of Energy. The U.S. Government has rights to use, reproduce, and distribute this software. NEITHER THE GOVERNMENT NOR LOS ALAMOS NATIONAL SECURITY, LLC MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is modified to produce derivative works, such modified software should be clearly marked, so as not to confuse it with the version available from LANL.