New Repo: fpzip
December 20, 2019 (new-repo)
fpzip is a library and command-line utility for lossless and optionally lossy compression of 2D and 3D floating-point arrays. fpzip currently supports IEEE-754 single (32-bit) and double (64-bit) precision floating-point data. Read more about this repo and its relationship to the zfp repo.
RAJAPerf 0.6.0 Released
December 19, 2019 (release)
The RAJA performance suite (RAJAPerf) is designed to explore performance of loop-based computational kernels found in HPC applications. v0.6.0 contains two new variants of each kernel (sequential-lambda
and OpenMP-lambda
) and several new kernels.
Learn more:
Hatchet 1.0.0 Released
December 12, 2019 (release)
Hatchet is a Python-based library that allows Pandas dataframes to be indexed by structured tree and graph data. Version 1.0.0 is the first major release of this software.
Learn more:
CHAI 2.0.0 Released
December 12, 2019 (release)
CHAI is a C++ library providing an array object that can be used transparently in multiple memory spaces. CHAI can be used standalone, but is best when paired with the RAJA library, which has built-in CHAI integration that takes care of everything. This release includes a major refactoring of the integration with the RAJA performance portability layer. CHAI now provides an ENABLE_RAJA_PLUGIN
option that will build a plugin for RAJA enabling automatic data migration when CHAI and RAJA are linked in the same application.
Learn more:
MFEM and VisIt Benefits Engineer in LLNL’s Design Optimization Laboratory
December 10, 2019 (story)
MFEM and VisIt are key design codes in LLNL’s Center for Design and Optimization, which is developing algorithms that can optimize immensely complex systems in HPC environments. The MFEM library enables application scientists to prototype parallel physics application codes quickly, based on partial differential equations discretized with high-order finite elements. VisIt—a visualization, animation, and analysis tool—helps scientists and engineers interactively visualize and analyze data, from small (<101 core) desktop-sized projects to large (>105 core) leadership-class computing facility simulation campaigns. Learn more about the Center in the Science & Technology Review article “Leading a Revolution in Design.”
On the Spack Track at SC19
December 06, 2019 (story)
At the annual supercomputing conference (SC19) in Denver, Colorado, Spack events were held each day. As a reflection of its grassroots heritage, nine sessions were planned by more than a dozen thought leaders from seven organizations, including three DOE laboratories and Sylabs, the company behind Singularity. Thirteen thousand six hundred conference attendees had the chance to learn about Spack from two meet-and-greets, three birds-of-a-feather meetings, three papers, and more. This HPCwire article describes Spack’s history, functionality, impact, and user community through the many Spack-related events at SC19.
Podcast: R&D 100 Award-winning Software Enables I/O Performance Portability and Code Progress
December 06, 2019 (multimedia)
A software product called the Scalable Checkpoint/Restart (SCR) Framework 2.0 recently won an R&D 100 Award. SCR enables HPC simulations to take advantage of hierarchical storage systems, without complex code modifications.
In this podcast episode (12:18) produced by the Exascale Computing Project, LLNL’s Kathryn Mohror and Elsa Gonsiorowski talk about what SCR is and does, the challenges involved in creating it, and the impact it is expected to have on HPC performance.
LLNL’s Presence in HPC Shines Bright at SC19
December 05, 2019 (event-report)
The 2019 International Conference for High Performance Computing, Networking, Storage, and Analysis—better known simply as SC19—returned to Denver, and once again LLNL made its presence known as a force in supercomputing. The conference, held November 17 through 22, was attended by nearly 14,000 people representing 118 countries.
Many open source technologies were featured in LLNL’s technical program. Read the full recap on LLNL’s main website.
Podcast: Software Enables Use of Distributed In-System Storage and Parallel File System
December 05, 2019 (multimedia)
For decades, HPC applications used a shared parallel file system for input/output (I/O), but the recent addition of new storage devices in systems—burst buffers, for example—has enabled the creation of a storage hierarchy. The hierarchy can be arranged such that in-system storage is the first level, and the parallel file system the second. For optimal performance, applications must change along with the architectures.
In this podcast episode (11:28) produced by the Exascale Computing Project, LLNL’s Kathryn Mohror and ORNL’s Sarp Oral talk about the open source tool UnifyFS, which can provide I/O performance portability for applications, enabling them to use distributed in-system storage and the parallel file system.
Spack 0.13.2 Released
December 04, 2019 (release)
Spack is a flexible, configurable, Python-based, and open-source HPC package manager. Spack automates the installation and fine-tuning of simulations and libraries, operating on a wide variety of HPC platforms and enabling users to build many code configurations.
Version 0.13.2 contains major performance improvements for Spack environments, such as:
- allow missing modules if they are blacklisted
- speed up environment activation
- not modifying run-env if a spec is not installed
Learn more:
Maestrowf 1.1.6 Released
December 04, 2019 (release)
Maestrowf is a tool for specifying and conducting general workflows locally and on supercomputers. Maestro parses a human-readable YAML specification that is self-documenting and portable from one user and environment to another. This release contains new features such as:
- Enabling of loading specifications from streams and stream-like objects
- User-enabled workspace hashing to counter long parameter lists
- Automatic adapter detection
Learn more:
New Repo: Simplexdesign
November 26, 2019 (new-repo)
Simplexdesign is a collection of tools for the design of statistical experiments on Agent Based Models. It includes a coordinate exchange algorithm for homogeneous agents and, more generally, any simplex. The repo also includes an optimization algorithm for the case with multiple classes of homogeneous agents.
New Repo: Quantkriging
November 26, 2019 (new-repo)
Quantkriging is a method to model the uncertainty of a stochastic simulation by modelling both the overall simulation response and the output distribution at each sample point. The output distribution is characterized by dividing it into quantiles, where the division of each quantile is determined by kriging.
LLNL-Led Team Wins SC19 Best Paper Award
November 22, 2019 (event-report) (story)
On November 22, a panel of judges at the International Conference for High Performance Computing, Networking, Storage and Analysis (SC19) awarded a multi-institutional team led by LLNL computer scientists with the conference’s Best Paper award. The paper, entitled “Massively Parallel Infrastructure for Adaptive Multiscale Simulations: Modeling RAS Initiation Pathway for Cancer,” describes the workflow driving a first-of-its-kind multiscale simulation on predictively modeling the dynamics of RAS proteins—a family of proteins whose mutations are linked to more than 30 percent of all human cancers—and their interactions with lipids, the organic compounds that help make up cell membranes.
The team’s software, called MuMMI (Multiscale Machine-Learned Modeling Infrastructure), will soon be released as open source. Read more about the award on LLNL news.
New Repo: Merlin
November 19, 2019 (new-repo)
Merlin is a tool for running machine learning based workflows. The goal of Merlin is to make it easy to build, run, and process the kinds of large scale HPC workflows needed for cognitive simulation. At its heart, Merlin is a distributed task queuing system, designed to allow complex HPC workflows to scale to large numbers of simulations. See the documentation for more information including configuration variables and FAQ.
New Repo: Hatchet
November 18, 2019 (new-repo)
Hatchet is a Python-based library that allows Pandas dataframes to be indexed by structured tree and graph data. It is intended for analyzing performance data that has a hierarchy (for example, serial or parallel profiles that represent calling context trees, call graphs, nested regions’ timers, etc.). Hatchet implements various operations to analyze a single hierarchical data set or compare multiple data sets, and its API facilitates analyzing such data programmatically. See the documentation for more information including installation steps.
Caliper 2.12.0 Released
November 13, 2019 (release)
Caliper is a program instrumentation and performance measurement framework. It is designed as a performance analysis toolbox in a library, allowing one to bake performance analysis capabilities directly into applications and activate them at runtime. The latest release includes several improvements and new features, such as:
- Many improvements to the ConfigManager API and syntax
- Support for metadata collection with the Adiak library
- Record memory high-water mark
Learn more:
New Repo: Variorum
November 12, 2019 (new-repo)
Variorum is a platform-agnostic library exposing monitor and control interfaces for several features in hardware architectures. It provides general interfaces to provide privileged functionality for monitoring and controlling various hardware-level features of multiple hardware architectures. Variorum provides vendor-neutral APIs such that the user can query or control hardware knobs without needing to know the underlying vendor’s implementation. These APIs enable HPC application developers to gain a better understanding of performance through various metrics for the devices contained within the node. See the documentation for a Quick Start Guide.
Software Engineering 101: I have some code! Now what?
November 12, 2019 (event-report) (story) (this-website)
As part of LLNL’s Computing 101 speaker series, Ian Lee gave a talk to employees on November 12 titled “Software Engineering 101: I have some code! Now what?” The presentation reviewed the Lab’s resources for supporting software engineering and open source development.
Lee, who manages this website and leads many initiatives in the Lab’s open source community, aimed his remarks at relative newcomers to the software development landscape. He also updated the audience on the state of open source development at the Lab.
The Lab provides a wide range of support and solutions for just about any task a developer does: programming languages, package managers, computing platforms, code editors, version control systems, project communication, project tracking, documentation, and much more. Lee provided an overview of these options, offered advice about how to navigate the Lab’s software resources, and encouraged developers to take advantage of colleagues’ knowledge and experience.
Lee summarized the Lab’s recent open source activity, which echoes a trend toward developing “out in the open,”—i.e., not waiting for code to mature before releasing it for community feedback and contributions. (As this website shows, the Lab and affiliated GitHub organizations have almost 600 repos.) Accordingly, the Lab has updated its open source release policies to support modern code development practices.
Among open source projects Lee highlighted in his talk were 2019 R&D 100 Award winners Spack and SCR (Scalable Checkpoint/Restart) and the software stack underpinning the Exascale Computing Project.
Lee also demoed this website’s category-driven design changes, LLNL’s open source logo (and stickers), the @LLNL_OpenSource Twitter account, and Slack channels. He noted that LLNL may have a booth at PyCon 2020, which will be held April 15-23 in Pittsburgh. (Conferences such as PyCon provide LLNL’s open source software community with opportunities for networking, collaboration, and technical skills development. Lab employees interested in attending similar events may contact Ian Lee for funding.)
New Repo: SAFIRE
November 11, 2019 (new-repo)
SAFIRE (Scalable and Accurate Fault Injection for Parallel Multi-threaded Applications) is a fault injection framework, descending from REFINE, that supports injecting bit-flip faults in both serial and multi-threaded programs. SAFIRE includes a modified LLVM compiler backend for x86 to instrument and inject bit-flip faults on machine instructions. The backend implements several optimizations for fast instrumentation and injection that make SAFIRE the fastest and most accurate tool for fault injection so far.
ESGF Architecture Workshop
November 08, 2019 (event-report)
Members of the Earth System Grid Federation (ESGF) gathered in Abingdon, England, on November 5-7 to kick off the redesign process for the Federation’s computing architecture. Since the original system was designed a decade ago, the number of ESGF’s supported projects and disciplines has grown and diversified. Furthermore, operational requirements are clearer for the ESGF to support an international federated archive of this size. Many of the ESGF nodes now have other functions beyond CMIP (the Coupled Model Intercomparison Project), and the landscape of data repository and science needs has changed.
Led by ESGF’s Executive Committee, the workshop team discussed improvements to the user experience, data repository and management, data compute requirements, and platform and system administration. This workshop concluded with a high-level roadmap for future architecture directions, which will be presented at the larger ESGF conference in March. LLNL’s delegates to the workshop were Ghaleb Abdulla (principal investigator and co-chair of the Executive Committee), Sasha Ames (member of multiple ESGF Working Teams) and Jason Boutte (Compute Working Team member).
New Repo: Spack Tutorial
November 07, 2019 (new-repo)
As part of Spack’s v0.13.0 release, the tutorial has been broken out into its own repo for easier archiving of versions from past events. The tutorial is available in its own Read the Docs instance while remaining navigable from Spack’s full RtD documentation.
CCT 1.0.7 Released
November 07, 2019 (release)
The Coda Calibration Tool (CCT) calculates reliable moment magnitudes for small- to moderate-sized seismic events. This release contains several new features, including:
- Added a constraint set configuration panel in Parameter for the velocity model and the model space bounds on Shape (V/B/G) models for advanced users
- Updated the input/output formats to include the new configurable fields
- Updated notebook to use new REST JSON format for measurements
- Added ability in Shape and Site to grow/shrink the data on the Y and X axis respectively via a button toggle
Learn more:
Charliecloud 0.12 Released
November 04, 2019 (release)
LANL led with LLNL contributors, Charliecloud provides user-defined software stacks for HPC centers. It 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.
This release contains two new test suite features:
- Added a script
ch-test
that manages the tests
- Removed the option to use an embedded Bats, eliminating the need for a Git submodule and simplifying packaging
Learn more:
ESGF User Tutorial Videos
November 01, 2019 (multimedia)
The Earth System Grid Federation (ESGF)—a robust, distributed data and computation platform enabling worldwide access to huge amounts of scientific data—has launched a YouTube channel for user support. Current videos include tutorials for data downloads. Subscribe to the channel to be notified when new videos are posted.
RAJA 0.10.0 Released
October 30, 2019 (release)
RAJA is a software abstraction that systematically encapsulates platform-specific code to enable applications to be portable across diverse hardware architectures without major source code disruption. The v.0.10.0 release includes new features:
- Plugin registry feature
- CUDA block direct execution policies
- Bounds checking option to RAJA Layout types
- Template project on GitHub
Learn more:
Conduit 0.5 Released
October 26, 2019 (release)
Conduit provides an intuitive model for describing hierarchical scientific data in C++, C, Fortran, and Python. It is used for data coupling between packages in-core, serialization, and I/O tasks. The Core API provides a flexible way to describe and access hierarchical data. v0.5 includes:
- node set support for Python tuples and Numpy String Arrays
- new blueprints for topological data generation and ZFP compressed array data
- new relays to support ZFP and HPF5 I/O
Learn more:
Spack 0.13 Released
October 25, 2019 (release)
Spack is a flexible, configurable, Python-based, and open-source HPC package manager. Spack automates the installation and fine-tuning of simulations and libraries, operating on a wide variety of HPC platforms and enabling users to build many code configurations.
Spack grew by over 700 packages in the past year – now more than 3,500 total – and the project now has over 450 contributors. v0.13 is a major release:
- environments behaving more like virtualenv/conda
- combinatorial environments for facility deployment
- ability to build easily navigable symlink trees environments
- many new commands/options
- continuous integration/build farm support
- simplified package syntax for specifying build/run environment modifications
- separate tutorial repo
- and much more!
Learn more:
Two Repos among 2019 R&D 100 Award Finalists
October 24, 2019 (story)
The annual R&D 100 Awards finalists have been announced. Among them are six LLNL-developed or co-developed technologies. In the Software/Services category, two open source projects have been recognized:SCR (Scalable Checkpoint/Restart) and Spack. Winners will be announced on October 29.
SUNDIALS 5.0.0 Released
October 21, 2019 (release)
SUNDIALS is a SUite of Nonlinear and DIfferential/ALgebraic equation Solvers. Incremental v5.0.0 releases occurred in March, June, and September. This complete release includes:
- increased minimum required CMake version to 3.5 for most SUNDIALS configurations
- multiple new functions to assist in creating custom objects
- new Fortran 2003 interfaces
- new linear solver interface functions
- and much, much more!
Learn more:
New Repo: ExaConstit
October 11, 2019 (new-repo)
ExaConstit is a crystal plasticity finite-element methods code used to determine bulk constitutive properties of metals. It is a nonlinear, quasi-static, implicit solid mechanics code built on the MFEM library based on an updated Lagrangian formulation (velocity based). The code supports either constant time steps or user-supplied delta time steps. Boundary conditions are supplied for the velocity field applied on a surface. ExaConstit supports a number of different preconditioned Krylov iterative solvers (PCG, GMRES, MINRES) for either symmetric or nonsymmetric positive-definite systems.
New Repo: Graph-embed
October 04, 2019 (new-repo)
Graph-embed is a small library for multi-level graph partitioning and embedding. Graphs can be read in using linalgcpp. Examples are provided.
UnifyFS 0.9.0 Released
October 03, 2019 (release)
Unify is a suite of specialized, flexible file systems that can be included in a user’s job allocations. Formerly known as UnifyCR (for checkpoint/restart), UnifyFS supports scalable and efficient aggregation of I/O bandwidth from burst buffers while having the same life cycle as a batch-submitted job.
Learn more:
New Repo: Rescal-snow
October 03, 2019 (new-repo)
Rescal-snow is a model of dunes and snow waves. When wind blows over snow, it self-organizes. This forms surface features, such as ripples and dunes, that alter the reflectivity and thermal conductivity of the snow. Studying these features in the field is cold and challenging, so Rescal-snow was created to enable snow scientists to study snow features in controlled numerical experiments. This model is intended for researchers in snow science, geomorphology, and polar climate.
New Repo: Adiak
October 02, 2019 (new-repo)
Adiak is a library for collecting metadata from HPC application runs, and distributing that metadata to subscriber tools. Adiak has a tool interface, which allows tools to subscribe to this metadata. Example tools might include performance analysis tools, workflow tracking tools, or anything else that needs this metadata. Tools can iterate receive metadata name/values as they are provided by the application, or examine existing metadata values.
VisIt 3.0.2 Released
September 24, 2019 (release)
VisIt is an Open Source, interactive, scalable, visualization, animation and analysis tool. Among the enhancements included in v3.0.2 are:
- Openssl added to the list of required libraries in
build_visit
- Added turbo color table
- Host profiles added for the Oak Ridge National Laboratory’s Summit supercomputer
- Binary distributions added for Ubuntu 16, Ubuntu 18, Debian 9, and Fedora 27
- and much more!
Learn more:
New Repo: FPP
September 24, 2019 (new-repo)
FPP (Function Preserving Projection) is a linear projection technique for finding a 2D view that captures interpretable patterns of the given function in a high-dimensional domain. The function can be univariate or multivariate, continuous (regression), or discrete (classification).
SUNDIALS 5.0.0-dev.2 Released
September 18, 2019 (release)
SUNDIALS is a SUite of Nonlinear and DIfferential/ALgebraic equation Solvers. This release includes:
- new optional operation to the SUNLINEARSOLVER API
- performance improvements to the CUDA NVECTOR
- two new
Set
functions to MRIStep
- new SUNLinearSolver implementation
- three new accessor functions to the SUNLinSol_KLU module
Learn more:
libCEED 0.5 Released
September 18, 2019 (release)
The Center for Efficient Exascale Discretizations (CEED) within the US Department of Energy’s ECP is helping applications leverage future architectures by developing state-of-the-art discretization algorithms that better exploit the hardware and deliver a significant performance gain over conventional methods. libCEED is a high-order API library that provides a common algebraic low-level operator description, allowing a wide variety of applications to take advantage of the efficient operator evaluation algorithms in the different CEED packages. libCEED is a C99 library with no external dependencies.
Learn more:
Charliecloud 0.11 Released
September 17, 2019 (release)
LANL led with LLNL contributors, Charliecloud provides user-defined software stacks for HPC centers. It 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.
This release contains new features along with documentation and test suite improvements:
- Charliecloud is now in Fedora and EPEL
ch-grow
: support ARG
instruction
ch-run
: /etc/resolv.conf
on the host is now optional
Learn more:
Umpire 1.1.0 Released
September 16, 2019 (release)
Umpire is a resource management library that allows the discovery, provision, and management of memory on next-generation architectures. v1.1.0 includes upgrades to detect version mismatches when linking multiple libraries, fixes to signature of C function, and updated pool algorithm.
Learn more:
New Repo: UEDGE
September 13, 2019 (new-repo)
UEDGE is an interactive suite of physics packages using the Python or BASIS scripting systems. The plasma is described by time-dependent 2D plasma fluid equations that include equations for density, velocity, ion temperature, electron temperature, electrostatic potential, and gas density in the edge region of a magnetic fusion energy confinement device. slab, cylindrical, and toroidal geometries are allowed, and closed and open magnetic field-line regions are included. Classical transport is assumed along magnetic field lines, and anomalous transport is assumed across field lines. Multi-charge state impurities can be included with the corresponding line-radiation energy loss.
New Repo: MI-ChemVis
September 01, 2019 (new-repo)
Domain-specific applications often require specially designed visualization systems. MI-ChemVis is a browser-based visualization of chemistry papers, specifically morphology, material, and chemical data extracted from them. The UI is made with nanomaterial synthesis papers in mind.
JuliaCon Recap and Videos
August 22, 2019 (event-report) (multimedia)
LLNL’s Seth Bromberger attended JuliaCon 2019 on July 22–25 in Baltimore, Maryland. He gave a talk on July 24 to a full house: “Using Julia in Secure Environments” (abstract, YouTube video). The focus of the presentation was engaging the community in thinking about transitive package dependencies and the security of the source code supply chain.
Other notable events at the conference included a keynote address by Steven Lee, applied mathematics program manager for Advanced Scientific Computing Research (ASCR) within the U.S. Department of Energy’s Office of Science. His presented his office’s computing priorities and mentioned related LLNL work (YouTube video). In addition, LLNL’s Jane Herriman received a Julia Community Prize for her “teaching, outreach, and community stewardship.”
Conferences such as JuliaCon provide LLNL’s open source software community with opportunities for networking, collaboration, and technical skills development. Lab employees interested in attending similar events may contact Ian Lee for funding.
CCT 1.0.5 Released
August 14, 2019 (release)
The Coda Calibration Tool (CCT) calculates reliable moment magnitudes for small- to moderate-sized seismic events. This release contains performance improvements and other updates, namely:
- Added REST endpoint on the envelope service to request to just get stacked files back rather than envelopes
- 10–30% performance improvements when making many (>10K) high sample rate (>100hz) envelopes at once
Learn more:
New Repo: ExaCMech
August 05, 2019 (new-repo)
ExaCMech is a GPU-friendly library of constitutive models. The models are based on standard continuum mechanics concepts. Crystal-mechanics-based and porosity-mechanics-based models are a principal focus. Models are meant for standard crystalline metallic materials deforming under quasi-static conditions. Constitutive model response is a main ingredient in the simulation of deformation of material, and the constitutive model has two main jobs: It provides the stress tensor that goes into the balance of linear momentum, and it updates the evolving state of the material. This state can be tracked by variables for the stress, dislocation density, orientation of crystal lattices, grain size, and so on. For context, the GitHub repository includes links to relevant journal articles that reference similar models and algorithms.
CHAI 1.2.0 Released
August 05, 2019 (release)
The CHAI library handles automatic data migration to different memory spaces behind an array-style interface. It was designed to work with RAJA and integrates with it. CHAI may be used with other C++ abstractions as well. v1.2.0 contains support for AMD devices using HIP as well as updates for the 1.0.0 release of Umpire.
Umpire 1.0.0 Released
August 03, 2019 (release)
Umpire is a resource management library that allows the discovery, provision, and management of memory on next-generation architectures. With v1.0.0, Umpire is MPI-aware, and AllocationStrategies
may be wrapped with multiple extra layers. Additional changes include directing log and replay output to files, one per process.
Learn more:
New Repo: PySABER
August 02, 2019 (new-repo)
PySABER is a python package for characterizing the X-ray source and detector blur in cone-beam X-ray imaging systems. SABER is an abbreviation for Systems Approach to Blur Estimation and Reduction. Note that even parallel beam X-rays in synchrotrons are in fact cone beams albeit with a large source to object distance. X-ray images, also called radiographs, are simultaneously blurred by both the X-ray source spot blur and detector blur. This package uses a numerical optimization algorithm to disentangle and estimate both forms of blur simultaneously.
New Repo: HELICS-FMI
August 01, 2019 (new-repo)
Energy systems and their associated information and communication technology systems are becoming increasingly intertwined. As a result, effectively designing, analyzing, and implementing modern energy systems increasingly relies on advanced modeling that simultaneously captures both the cyber and physical domains in combined simulations. It is designed to increase scalability and portability in modeling advanced features of highly integrated power system and cyber-physical energy systems.
LLNL’s Hierarchical Engine for Large-scale Infrastructure Co-Simulation (HELICS) was originally developed for electric power systems use cases, and now it can be used for co-simulation in other domains. The HELICS library provides a general-purpose, modular, highly-scalable co-simulation framework that runs cross-platform. A new repository has been added to the HELICS suite, HELICS-FMI, which allows functional mockup units to interact with HELICS.
Software Portal Redesign and GitHub Integration
July 30, 2019 (this-website)
Recently this website received several changes that improve the user’s experience, keep the content fresh, and help the admin team monitor and track all repositories under the LLNL organization on GitHub. We are excited to improve user access to LLNL’s 500+ open source repositories and appreciate the help of our summer intern, Angela Flores, who is pursuing a B.S. in computer science with a minor in cybersecurity from Cal State Long Beach.
New website features include:
- Home page leaderboard image
- Dynamic catalog navigation by categories and their “overflow” pages (e.g., Applications)
- Standardized use of topic tags on repos, which drive the categories
- RADIUSS catalog,* a subset of the full catalog
- Embedded Twitter feed on the News and News Archive pages
- Automatic twice-daily GitHub data update, which updates the repos listed under each category as well as the visualizations on the Explore page
- and much more!
*LLNL’s RADIUSS project—Rapid Application Development via an Institutional Universal Software Stack—aims to broaden usage across LLNL and the open source community of a set of libraries and tools used for HPC scientific application development.
LLNL's Third Annual Developer Day Focuses on Career Lifecycle and Best Practices
July 26, 2019 (story)
Initiated in 2017, Developer Day is a day-long, annual event that brings software developers together from all over LLNL. This year’s Dev Day included a panel discussion about onboarding new hires; short talks on topics ranging from staying engaged at work to learning unicode characters; and deep dives on software quality assurance and cloud services. The event featured a keynote address by Dr. Jeffrey Carver from the University of Alabama, who spoke about “Contemporary Peer Code Review Practices in Research Software.”
RAJA 0.9.0 Released
July 25, 2019 (release)
RAJA is a software abstraction that systematically encapsulates platform-specific code to enable applications to be portable across diverse hardware architectures without major source code disruption. The v.0.9.0 release includes new features:
- Change in atomic operations
- Extension of the lambda statement interface in the RAJA kernel API
- Support of tuple index values by minloc and maxloc reductions
Learn more:
New Repo: Bridge Kernel
July 25, 2019 (new-repo)
Bridge Kernel is a Jupyter kernel for connecting to backends that implement the bridge kernel (bk) protocol. The bk protocol is a small client-server protocol that emphasizes minimal dependencies, easier embedding with MPI, secure connections, secure authentication, and automatic tunneling.
New Repo: SPIFY
July 20, 2019 (new-repo)
SPIFY, which stands for Spify Parser of Input Files with YAML syntax, is a C++ library for parsing input files to be used in scientific computing applications. The library allows an application developer to define a full set of required and optional input variable of different types and handles all of the parsing and validation.
New Repo: GIDIplus
July 18, 2019 (new-repo)
GIDIplus provides C++ libraries for accessing nuclear data from the Generalized Nuclear Database Structure (GNDS).
CEED’s Impact on Exascale Computing Project Efforts Is Wide-Ranging
July 17, 2019 (release)
The Center for Efficient Exascale Discretizations (CEED) within the US Department of Energy’s ECP is helping applications leverage future architectures by developing state-of-the-art discretization algorithms that better exploit the hardware and deliver a significant performance gain over conventional methods. The focus is on high-order methods for high-fidelity and better machine utilization, with a range of orders providing flexibility in uncertain hardware and software environments.
The recent release of CEED v2.0 includes many open source projects such as 12 integrated Spack packages for libCEED, MFEM, Nek5000, NekCEM, Laghos, NekBone, HPGMG, OCCA, MAGMA, gslib, PETSc, and PUMI, plus an updated CEED “meta-package.”
Video: CASC Accelerates Scientific Discovery
July 17, 2019 (multimedia)
LLNL’s Center for Applied Scientific Computing (CASC) serves as a window to the broader computer science, computational physics, applied mathematics, and data science research communities. A new video showcasing CASC’s computational mathematics research debuted at the International Council for Industrial and Applied Mathematics (ICIAM) conference in July. Among the featured projects are open source repos MFEM, a library of scalable finite-element discretization and solver algorithms, and [XBraid] (https://github.com/XBraid/xbraid), a library of parallel-in-time solvers.
Charliecloud 0.10 Released
July 16, 2019 (release)
LANL led with LLNL contributors, Charliecloud provides user-defined software stacks for HPC centers. It uses Linux user namespaces to run containers with no privileged operations or daemons and minimal configuration changes on center resources.
This release contains two important new features:
- Completely unprivileged end-to-end workflow, with no root, no sudo, and no setuid/setcap helper programs
- SquashFS wrapper scripts to facilitate a workflow based on SquashFS files rather than tarballs
Learn more:
VisIt 3.0.1 Released
July 15, 2019 (release)
VisIt is an Open Source, interactive, scalable, visualization, animation and analysis tool. Among the enhancements included in v3.0.1 are:
- Rewrite of the Mili database reader
- New database readers for ADIOS2 v2.4.0
- Default color map settings
- Enhanced default volume renderer
- Ability for internallauncher to launch single-processor parallel engines
Learn more:
New Repo: CSLD
July 13, 2019 (new-repo)
Compressive Sensing Lattice Dynamics, or CSLD, provides a comprehensive package to study lattice dynamics from first-principles. The interatomic force constants were fitted using the compressive sensing algorithm. CSLD requires Python, C++, and Fortran 90 compilers for installation.
Why Do We Need Supercomputers and Who Is Using Them?
July 10, 2019 (story)
PC Magazine recently featured LLNL’s supercomputing facility to find out how the supercharged machines handle everything from virtual nuclear weapons tests to weather modeling. The article highlights examples of simulations performed on the Lab’s computers, such as a fusion energy research experiment generated by the MFEM-based BLAST shock hydrodynamics code and visualized with VisIt.
Hypre 2.17 Released
July 10, 2019 (release)
Hypre is a library of high-performance preconditioners and solvers featuring multigrid methods for the solution of large, sparse linear systems of equations on massively parallel computers. Version 2.17 changes the license from GNU to Apache 2.0/MIT.
Learn more:
MacPatch 3.3.0.2 released
July 08, 2019 (release)
MacPatch – used at LLNL to manage 3,000+ computers – simplifies the act of patching and installing software on Mac OS X based systems. The client relies on using the built-in software update application for patching the Mac OS X system updates and its own scan and patch engine for custom patches. v3.3.0.2 is a major release with a completely new UI and the backend updated to Python 3.
Learn more:
New Repo: Zero-Order Reaction Kinetics (Zero-RK)
July 01, 2019 (new-repo)
Zero-Order Reaction Kinetics, or Zero-RK is a software package that simulates chemically reacting systems in a computationally efficient manner. The fundamental advance embodied in Zero-RK is the numerical approach, which results in orders-of-magnitude reduction in simulation time while maintaining the accuracy of the results.
New Repo: H5Z-ZFP
June 28, 2019 (new-repo)
H5Z-ZFP is a highly flexible floating-point and integer compression plugin for the HDF5 library using ZFP compression. The plugin supports ZFP versions 0.5.0 through 0.5.5. It also supports all 4 modes of the ZFP compression library as well as 1D, 2D, and 3D datasets of single and double precision integer and floating-point data. Check out the GitHub repo and the v1.0.0 release.
umap 2.0.0 Released
June 26, 2019 (release)
Umap is a library that provides an mmap()-like interface to a simple, user- space page fault handler based on the userfaultfd Linux feature. The use case is to have an application specific buffer of pages cached from a large file (i.e. out-of-core execution using memory map). This release includes:
- Performance improvements
- Support for multiple umap regions
- Support for page prefetch
- Support for page read-ahead
Learn more:
Caliper 2.1.0 Released
June 25, 2019 (release)
Caliper is a program instrumentation and performance measurement framework. It is designed as a performance analysis toolbox in a library, allowing one to bake performance analysis capabilities directly into applications and activate them at runtime. This release includes several improvements and new features:
- Simplified linking of all modules
- ConfigManager for enabling configuration profiles
- ChannelController for creating custom configuration profiles
- RegionProfile for accessing timing information
- cpuinfo service reports
- Gotcha 1.0.2 bundled
Learn more:
SUNDIALS 5.0.0-dev.1 Released
June 24, 2019 (release)
SUNDIALS is a SUite of Nonlinear and DIfferential/ALgebraic equation Solvers. This version is a beta release of the next major SUNDIALS version and offers a preview of what is to come, including
- new Fortran 2003 interface modules
- new linear solver interface functions
- a new N_Vector implementation, NVECTOR_MPIPLUSX
- and much more!
Learn more:
Kripke 1.2.4 Released
June 18, 2019 (release)
Kripke is a simple, scalable, 3D Sn deterministic particle transport code. Its primary purpose is to research how data layout, programming paradigms and architectures effect the implementation and performance of Sn transport. A main goal of Kripke is investigating how different data-layouts effect instruction, thread and task level parallelism, and what the implications are on overall solver performance. v1.2.4 changes the software license to BSD 3-clause.
Learn more:
BLT 0.2.5 Released
June 14, 2019 (release)
BLT (Building, Linking, and Testing) is a streamlined CMake build system foundation for developing HPC software. BLT makes it easy to get up and running on a wide range of HPC compilers (e.g., gcc, clang), operating systems (e.g., Linux, Mac OS, Windows), and technologies (e.g., MPI, OpenMP, CUDA). BLT also includes unit testing and benchmarking.
LLNL initially released BLT in 2017, and now v0.2.0 and v0.2.5 are available.
Learn more:
Redesign of Cardioid's Heartbeat Simulation Brings Code One Step Closer to Clinical Use
June 12, 2019 (multimedia) (story)
LLNL researchers have successfully optimized a code that models the human heartbeat for next-generation, GPU-based supercomputers, with an eye on developing it for virtual drug screening and modeling heart activity in clinical settings. Cardioid, a suite merging mathematical solvers for electrophysiology, fiber-generation, cardiac mechanics, torso-electrocardiograms (ECGs) and cardiac meshing tools, simulates the electrical current running through the heart tissue, triggering cells to contract like cascading dominoes and causing the heart to beat. It was originally developed by LLNL and IBM for Sequoia, at one time the world’s fastest supercomputer, and was a finalist for the 2012 Gordon Bell Prize, supercomputing’s top honor.
Learn more:
Umpire 0.3.5 Released
June 11, 2019 (release)
Umpire is a resource management library that allows the discovery, provision, and management of memory on next-generation architectures. v0.3.4 and v0.3.5 together include bug fixes for AllocationMap
.
Learn more:
Video: SCR Framework, Accelerating Resilience and I/O for Supercomputing Applications
June 07, 2019 (multimedia)
The SCR software framework provides efficient, scalable checkpoint/restart capability for simulation codes, ensuring faster time to solution and allowing scientists to focus on the science. SCR caches checkpoint data in storage on the compute nodes of a Linux cluster to provide a fast, scalable checkpoint restart capability for MPI codes.
In this video, LLNL’s Kathryn Mohror explains how SCR works. Physicist Denise Hinkel then discusses how SCR has impacted simulation capabilities at the National Ignition Facility.
Video: Spack, a Flexible Package Manager for HPC Software
June 06, 2019 (multimedia)
Spack is a flexible, configurable, Python-based, and open-source HPC package manager. Spack automates the installation and fine-tuning of simulations and libraries, operating on a wide variety of HPC platforms and enabling users to build many code configurations.
In this video, LLNL’s Todd Gamblin and Greg Becker describe how Spack works and how its open source community has grown. They are joined by Lori Diachin, deputy director for the U.S. Department of Energy’s Exascale Computing Project, or ECP, who explains Spack’s value to the ECP software stack.
Magpie 2.3 Released
June 01, 2019 (release)
Magpie contains a number of scripts for running big data software in HPC environments. It currently supports running over the parallel file system Lustre and running over any generic network filesystem. There is scheduler/resource manager support for Slurm, Moab, Torque, and LSF.
This release focuses on adding experimental support for Ray. Learn more:
MFEM 4.0 Released
May 24, 2019 (release)
Version 4.0 of MFEM, a lightweight, general, scalable C++ library for finite element methods, is now available.
The goal of MFEM is to enable high-performance scalable finite element discretization research and application development on a wide variety of platforms, ranging from laptops to exascale supercomputers.
For the first time ever, MFEM-4.0 adds support for GPU acceleration in the library:
- Device kernels can be written in CUDA, OCCA, RAJA or OpenMP.
- Several examples have been ported with minimal code changes.
- Many linear algebra and finite element operations can use device acceleration by simply replacing loops with the MFEM_FORALL macro.
- The library provides seamless device/host memory management.
Some other new additions in version 4.0 are:
- Partially assembled finite element operators in the core library.
- Support for wedge/prism elements and meshes with mixed element types.
- General “low-order refined”-to-“high-order” field transfer.
- Seven new examples and miniapps.
The MFEM library has many more features, including:
- 2D and 3D, arbitrary order H1, H(curl), H(div), L2, NURBS elements.
- Parallel version scalable to hundreds of thousands of MPI cores.
- Conforming/nonconforming adaptive mesh refinement (AMR), including anisotropic refinement, derefinement and parallel load balancing.
- Galerkin, mixed, isogeometric, discontinuous Galerkin, hybridized, and DPG discretizations.
- Support for triangular, quadrilateral, tetrahedral and hexahedral elements, including arbitrary order curvilinear meshes.
- Scalable algebraic multigrid, time integrators, and eigensolvers.
- Lightweight interactive OpenGL visualization with the MFEM-based GLVis tool.
MFEM is being developed in CASC, LLNL and is freely available under LGPL 2.1.
For more details, see the interactive documentation and the full CHANGELOG.
ZFS on Linux 0.8.0 Released
May 23, 2019 (release)
The Livermore Big Artificial Neural Network toolkit (LBANN) is an open-source, HPC-centric, deep learning training framework that is optimized to compose multiple levels of parallelism.
v0.8.0 includes many performance updates, new features, and improvements, such as:
- Native encryption
- Raw encrypted ‘zfs send/receive’
- Pool TRIM and initialization
- Project accounting and quota
- Channel programs
- Pyzfs and Python 3 compatibility
Learn more:
LBANN 0.99 Released
May 14, 2019 (release)
The Livermore Big Artificial Neural Network toolkit (LBANN) is an open-source, HPC-centric, deep learning training framework that is optimized to compose multiple levels of parallelism.
This release includes support for new training algorithms, performance optimizations, I/O and data readers, updates to the Python front-end, and much more.
Learn more:
Charliecloud 0.9.10 Released
May 14, 2019 (release)
LANL led with LLNL contributors, Charliecloud provides user-defined software stacks for HPC centers. It uses Linux user namespaces to run containers with no privileged operations or daemons and minimal configuration changes on center resources.
This release includes:
- New OpenMPI examples
- Updated Travis CI tests
- New interface for
ch-build2dir
Learn more:
Video: LLNL at the 2019 Red Hat Summit
May 08, 2019 (event-report) (multimedia)
At the recent Red Hat Summit in Boston, LLNL’s Robin Goldstone discussed open-source technologies and the Sierra supercomputer. Goldstone, an HPC solutions architect, said “open source makes perfect sense” for scalability and performance in an HPC center like LLNL’s. She stated, “We have all that visibility and that software. If it doesn’t work for our needs, we can make it work for our needs. And then we can give it back to the community because even though people aren’t doing things at the scale that we are today, a lot of the things that we’re doing really do trickle down and be used by a lot of other people.” A transcript of her interview is included with the video, which runs 15:28.
OSS Project Lead Kathryn Mohror Completes Tenure as S&TR Scientific Editor
May 07, 2019 (profile)
Like many LLNL computer scientists, Kathryn Mohror juggles multiple responsibilities both at her workplace and in the scientific community. She recently completed a 12-month term as scientific editor of LLNL’s Science & Technology Review magazine. Read about her experience with the publication while still keeping up with her own research in scalable fault-tolerant computing and input/output for next-generation computing systems – not to mention her two open source projects, SCR and UnifyCR.
CCT 1.0.4-M3 Released
May 07, 2019 (release)
The Coda Calibration Tool (CCT) calculates reliable moment magnitudes for small- to moderate-sized seismic events. This release contains many improvements and updates, including:
- Overall optimization for the GUI and calibration modules (faster while using less memory)
- Configurable group velocities used for selection criteria during calibration
- Filter data from use in calibration
- Auto (re)center of the map
- Three new plots on the Mw tab
- and much more!
Learn more:
LMT 3.2.6 Released
May 06, 2019 (release)
The Lustre Monitoring Tools (LMT) repo is a distributed system that provides a “top”-like display of the activity levels of the server-side (MDS, OSSes, and LNET routers) nodes of one or more Lustre-based filesystems. This release includes support for Lustre 2.12.0.
Learn more:
zfp 0.5.5 Released
May 05, 2019 (release)
zfp is a library for compressed numerical arrays that support high-throughput read and write random access. zfp also supports streaming compression of integer and floating-point data, e.g., for applications that read and write large data sets to and from disk. zfp is primarily written in C and C++ but also includes Python and Fortran bindings.
This release includes these additions to the code:
- Support for reversible (lossless) compression of floating-point and integer data
- Methods for serializing and deserializing zfp’s compressed arrays
- Python bindings for compressing NumPy arrays
- Fortran bindings to zfp’s high-level C API
Learn more:
How Machine Learning Could Change Science
May 03, 2019 (story)
Artificial intelligence tools are revolutionizing scientific research and changing the needs of high performance computing. In an article from Data Center Dynamics, LLNL’s Fred Streitz and Brian Van Essen discuss the future of scientific computing, highlighting the Exascale Computing Project (ECP) and the Livermore Big Artificial Neural Network (LBANN).
The ECP is a multi-institutional Department of Energy collaboration aimed at achieving exascale computing capability. Many open source software projects, from LLNL and elsewhere, are crucial components of the ECP ecosystem.
LBANN is an open source deep learning toolkit developed at the Lab. It provides model-parallel acceleration through domain decomposition to optimize for strong scaling of network training.
VisIt 3.0 Released
May 01, 2019 (release)
This is a huge release for LLNL’s VisIt visualization tool. The many new features include:
- Support for outputting Cinema databases
- Support for rendering 3D images using the OSPRay
- Enhancements that leverage VTK-m for some operations
- Custom animation behaviors in plots
- Ability to build expressions with support for OpenMP, letting them parallelize over multiple threads
The release notes also detail changes in GUI behavior, file format reader, plots, operators, expression language, configuration, and more.
Learn more:
MSR-SAFE 1.3.0 Released
April 29, 2019 (release)
MSR-SAFE allows safer access to model-specific registers. v1.3.0 includes updates to the spank plugin, msrsave
and msrrestore
functions, and command line parameters. The release also adds an initial Travis CI yaml configuration file to test against multiple OS.
Learn more:
Magpie 2.2 Released
April 25, 2019 (release)
Magpie contains a number of scripts for running big data software in HPC environments. It currently supports running over the parallel file system Lustre and running over any generic network filesystem. There is scheduler/resource manager support for Slurm, Moab, Torque, and LSF.
This release includes:
- New submission script type “sbatchmpirun”
- Experimental support for Tensorflow
- Support for additional versions of Spark and Hadoop
Learn more:
PnMPI 1.8.1 Released
April 24, 2019 (release)
PnMPI is a dynamic MPI tool infrastructure that builds on top of the standardized PMPI interface. With it you can run multiple PMPI tools concurrently, activate PMPI tools without relinking, multiplex toolsets during a single run, and write cooperative PMPI tools.
Learn more:
Opening Supercomputing to All Agencies
April 24, 2019 (story)
LLNL’s Ian Lee discusses the importance of open-source software and cloud computing for HPC centers and government agencies in this GCN.com article. He states, “We’ve been doing open source on big Unix systems for more than 20 years. Back then, if we produced open source software for our supercomputers, we were the only ones who could use that software. Now, the software can be ported out and mainstreamed, and it’s a lot easier to make use of supercomputing in other places.”
Spack Team Visits RIKEN
April 23, 2019 (event-report)
Spack’s first tutorial in Japan took place on April 23, 2019. With more than 40 participants, the onsite tutorial at RIKEN’s Kobe research center was the latest international event for the Spack team and collaborators. Read more about Spack’s European tour of HPC facilities. Everything you need to get started with Spack is available on the website.
MemSurfer 1.0 Released
April 17, 2019 (release)
This is MemSurfer’s initial release. MemSurfer is an efficient and versatile tool to compute and analyze membrane surfaces found in a wide variety of large-scale molecular simulations. MemSurfer works independent of the type of simulation, directly on the 3D point coordinates, and can handle a variety of membranes as well as atomic simulations. It provides many in-built analysis tasks, such as computing the membrane curvature, density and normals of lipids, and area per lipid.
Learn more:
Caliper Library Highlighted at 31st VI-HPS Tuning Workshop
April 15, 2019 (event-report)
The Virtual Institute – High Productivity Supercomputing (VI-HPS) conducts a long-running series of tuning workshops, where participants can learn about programming tools developed by the institute partners. Morning sessions consist of tool presentations and hands-on exercises. In the afternoon, users can apply the tools to their own codes with the help of the instructors. Whilst most of the workshops take place in Europe, the 31st tuning workshop was held at the University of Tennessee, Knoxville (UTK), on April 9–12, 2019.
As part of the workshop, LLNL computer scientist David Boehme conducted a 75-minute tutorial on Caliper, an open-source performance profiling library for HPC software. The session included hands-on exercises using the Lulesh proxy application as an example. There were around 15–20 participants, primarily HPC software developers from UTK and Oak Ridge National Laboratory, as well as the other HPC tool presenters. This tutorial marked the first time Caliper was presented within the VI-HPS tuning workshop series. Boehme’s tutorial was well received, and several participants were able to successfully apply Caliper to their programs.
The workshop also provided an opportunity to discuss common software infrastructure as well as integration and interoperability possibilities with other performance analysis tools. For example, the PAPI team plans to explore using Caliper’s data collection and processing functionality. Finally, as a VI-HPS member organization, LLNL’s participation in the tuning workshop series helped showcase the Lab’s strong portfolio of open-source programming tools among the VI-HPS partners and in the HPC community at large.
Learn more about Caliper:
Charliecloud 0.9.9 Released
April 13, 2019 (release)
Charliecloud provides user-defined software stacks (UDSS) for HPC centers. It uses Linux user namespaces to run containers with no privileged operations or daemons and minimal configuration changes on center resources.
This release includes:
- Docker environment variables available in images
- Alpine example images upgraded to 3.9
- Documentation improvements and more
Learn more:
CTR: An Introduction Using Recent Tech Refresh Experiences on VisIt
April 12, 2019 (story)
This LLNL-authored blog post describes the practice of continuous technology refreshment, or CTR – the periodic upgrade or replacement of infrastructure to deliver continued reliability, improved speed, capacity, and/or new features. Using the VisIt code’s recent migration to GitHub as an example, the post explains the development team’s process through wrangling binary content, revision control, issue tracking, documentation, and other refreshments.
Learn more:
RAJAPerf 0.5.1 Released
April 12, 2019 (release)
The RAJA performance suite (RAJAPerf) is designed to explore performance of loop-based computational kernels found in HPC applications. It is used to assess, monitor, and compare runtime performance of kernels implemented using RAJA and variants implemented using standard or vendor-supported parallel programming models directly.
v0.5.1 contains several documentation updates and changes to default CMake configuration so that RAJA tests and examples are not built unless explicitly turned on by passing the proper options to CMake.
Learn more:
Umpire 0.3.3 Released
April 11, 2019 (release)
Umpire is a resource management library that allows the discovery, provision, and management of memory on next-generation architectures.
v0.3.3 includes:
- NUMA strategy that allows allocating memory to specific NUMA nodes
- Updates to the replay tool
- GitHub workflow to check for CHANGELOG updates
- Dockerfile for multi-stage builds
- and much more!
Learn more:
libCEED 0.4 Released
April 01, 2019 (release)
libCEED is a low-level API library for the efficient high-order discretization methods developed by the Exascale Computing Project’s co-design Center for Efficient Exascale Discretizations, also known as CEED.
v0.4 includes new backends, performance improvements, operator composition, and new examples.
Learn more:
SCR 2.0 Released
March 29, 2019 (release)
The Scalable Checkpoint/Restart (SCR) library enables MPI applications to utilize distributed storage on Linux clusters to attain high file I/O bandwidth for checkpointing, restarting, and writing large datasets. The 2.0 release marks a milestone in SCR’s long history of bringing dependable, scalable, file set management to multiple HPC platforms.
Some highlights include:
- Support for multiple platform specific hardware technologies, including Cray DataWarp
- Portability across many HPC centers via scheduler integration
- Scalable checkpoint resilience and restart capabilities
Learn more:
SUNDIALS 5.0.0-dev.0 Released
March 28, 2019 (release)
SUNDIALS is a SUite of Nonlinear and DIfferential/ALgebraic equation Solvers. In this release, an additional N_Vector implementation, NVECTOR_MANYVECTOR, was created to support flexible partitioning of solution data among different processing elements (e.g., CPU + GPU) or for multi-physics problems that couple distinct MPI-based simulations together. Eleven new optional vector operations have also been added to the N_Vector API to support the new NVECTOR_MANYVECTOR implementation.
Learn more:
RAJA 0.8.0 & RAJAPerf 0.5.0 Released
March 28, 2019 (release)
RAJA is a software abstraction that systematically encapsulates platform-specific code to enable applications to be portable across diverse hardware architectures without major source code disruption. The RAJA performance suite (RAJAPerf) is designed to explore performance of loop-based computational kernels of the sort found in HPC applications.
In RAJA v0.8.0, the build system was updated to use the latest version of BLT (or close to it). Depending on how one builds RAJA, this could require changes to how information is passed to CMake. The RAJAPerf 0.5.0 release contains several new kernels, plus substantial changes to many CUDA kernel variants to improve performance.
Learn more:
The Linux Foundation's Open Source Leadership Summit
March 15, 2019 (event-report)
The Linux Foundation’s Open Source Leadership Summit occurred in Half Moon Bay, California, on Thursday, March 14. LLNL’s Todd Gamblin presented “Open Source in the Exascale Computing Project: Building a Software Ecosystem for Science.” Check out the conference schedule.
This presentation covered the challenges of building software for machines that don’t exist yet, and how government laboratories, academia, and industry are collaborating to build a highly optimized software distribution. From deploying services like GitLab CI and JupyterHub in high-security HPC centers, challenges for architecture-specific containers, the use of Spack to package and distribute optimized binaries, and the social hurdles of scientists and developers working together, this talk summarized the open source challenges in DOE’s largest-ever HPC software project.
New Repo: FGPU
March 14, 2019 (new-repo)
FGPU is a collection of code examples focusing on porting FORTRAN codes to run on GPU architectures. The repo includes learning aids for developers and a regression test for compilers supporting OpenMP4.5, OpenACC, CUDA FORTRAN, and more. While FGPU’s examples have a heavy FORTRAN emphasis, some examples also include C++ usage. Check out the GitHub repo and LLNL project summary.
Charliecloud 0.9.8 Released
March 11, 2019 (release)
Charliecloud provides user-defined software stacks (UDSS) for HPC centers. It uses Linux user namespaces to run containers with no privileged operations or daemons and minimal configuration changes on center resources.
This release includes:
- New RPM spec file and supporting scripts
- New example workflow using Buildah
ch-tar2dir
: support tarball extension
- Refactoring and more
Learn more:
The Great Migration: VisIt Moves from SVN to GitHub
March 08, 2019 (story)
Software development is often a story of teamwork and determination. It’s a tale of persistence through failure toward, ideally, success. At LLNL, this story plays out in countless daily iterations as software teams strive to advance the Lab’s national security mission. When it comes to supporting both stockpile stewardship and foundational science, the VisIt visualization tool is the backbone of LLNL’s computer simulation analysis and visualization capabilities.
For the VisIt team, migration is modernization. Some of VisIt’s original development technologies are now considered ancient. But migrating 2 million lines of code is easier said than done. Go behind the scenes as an LLNL team discusses the logistics, challenges, and benefits of VisIt’s complicated move to GitHub.
Learn more:
CCT 1.0.4-M2.1 Released
March 06, 2019 (release)
The Coda Calibration Tool (CCT) calculates reliable moment magnitudes for small- to moderate-sized seismic events. After the January 25 release, you spoke and we listened! This is a minor bugfix and feature update release based on community feedback. Changes include:
- Make optimization for Path correction significantly more aggressive
- Reweight GT spectra with stress drop values defined to be 1.0 across all frequencies
- Make noise floor display consistent across the board
- Show ‘bad’ autopicks so humans get more feedback on what the autopicker is doing
- Remove AP pick if a human moves them (consider as ‘reviewed’)
Learn more:
Caliper 2.0 Released
March 04, 2019 (release)
Caliper is a program instrumentation and performance measurement framework. It is designed as a performance analysis toolbox in a library, allowing one to bake performance analysis capabilities directly into applications and activate them at runtime. Caliper is primarily aimed at HPC applications but works for any C/C++/Fortran program on Unix/Linux.
Functionality in v2.0 includes the new Channel API, which allows multiple, independent measurement configurations to be active at the same time.
Learn more:
Magpie 2.1 Released
March 02, 2019 (release)
Magpie allows Hadoop and similar data analytics frameworks to run on LLNL’s HPC systems. Magpie instantiates the framework within the context of a batch job – rather than on a persistent, dedicated cluster – and by reading and writing from the Lustre parallel HPC file system instead of local disk drives.
v2.1 includes support for several versions of Hbase, Spark, Hadoop, and Zeppelin.
Learn more:
Conduit 0.4 Released
March 01, 2019 (release)
Conduit provides an intuitive model for describing hierarchical scientific data in C++, C, Fortran, and Python. It is used for data coupling between packages in-core, serialization, and I/O tasks. The Core API provides a flexible way to describe and access hierarchical data. v0.4 includes several new functions, new Blueprint protocols, and enhanced Relay support.
Learn more:
Unify 0.2.0 Released
February 25, 2019 (release)
Unify is a suite of specialized, flexible file systems—this one is for checkpoint/restart workloads—that can be included in a user’s job allocations. This v0.2.0 release builds on the repo’s initial release from January.
Learn more:
Umpire 0.3.2 Released
February 25, 2019 (release)
Umpire is a resource management library that allows the discovery, provision, and management of memory on next-generation architectures. (Please download the umpire-0.3.2.tar.gz file, rather than the automatically generated files. These do not include all the necessary submodule code.)
v0.3.1 includes:
- Added a “cookbook” of examples on using Umpire in complex situations
- Allow users to provide a heuristic to modify pool behavior, determining when unused blocks will be coalesced
- Modify the CudaAdvice* operations to take a specific device id
- Improve error message when running a CUDA-enabled version of Umpire on a machine without GPUs
v0.3.2 includes:
- New functions to create Allocators to the C interface and ensure all C interface files are correctly installed
- New tool to only replay AllocationMap operations
Learn more:
New Repo: UMAP
February 20, 2019 (new-repo)
UMAP is a library that provides an mmap()-like interface to a simple, user- space page fault handler based on the userfaultfd
Linux feature (starting with 4.3 linux kernel). The use case is to have an application specific buffer of pages cached from a large file, i.e. out-of-core execution using memory map.
Learn more:
Inaugural NAHOMCon19 Coming to San Diego
February 14, 2019 (event)
To all computational scientists, mathematicians, scientists, and engineers interested in high-order methods and PDEs: Several institutions have joined together to organize the inaugural North American High Order Methods Conference (NAHOMCon19). The conference will be held in San Diego in the summer of 2019 and will focus on the many developments in high-order discretizations and applications taking place in North America.
The DOE co-design Center for Efficient Exascale Discretizations (CEED) is pleased to participate in the conference. CEED is a partnership between two U.S. DOE laboratories (Livermore & Argonne) and five universities in support of the Exascale Computing Project.
Learn more:
SUNDIALS 4.1.0 Released
February 13, 2019 (release)
In this release:
- Added an additional N_Vector implementation for Tpetra vector from Trilinos library (user docs and examples are updated to reflect this)
- Fixed a bug where a nonlinear solver object could be freed twice in some use cases
- Fixed a bug in ARKodeButcherTable_Write when printing a Butcher table without an embedding
- Removed EXAMPLES_ENABLE_RAJA CMake option
Important notes:
- The implementation header files (e.g., arkode_impl.h) are no longer installed. Users who are directly manipulating package memory structures will need to update their code to use the package’s public API.
- Python is no longer required to run make test and make test_install.
Learn more:
ESGF Conference Caps a Productive Year
February 12, 2019 (event-report)
Held in Washington, DC, the Earth System Grid Federation’s (ESGF) 8th annual face-to-face conference was a lively, fruitful affair. The event packed 40 presentations, several plenary sessions, a poster session, guest speakers, an awards ceremony, and an executive committee meeting into the week.
The federation houses an enormous database of global observational and simulation data—more than 5 petabytes—and manages the HPC hardware and software infrastructure necessary for scientific climate research. In the nearly two decades since its launch, ESGF has grown to serve 25,000 users on 6 continents.
Among ESGF’s 2018 milestones were support for CMIP6 data (thanks to input4MIPs and obs4MIPs initiatives), beta v3.0 of the software stack installer, OAuth single sign-on integration, and progress in containerized architecture. Read more about the conference and check out ESGF’s GitHub repo.
Charliecloud 0.9.7 Released
February 12, 2019 (release)
Charliecloud provides user-defined software stacks (UDSS) for HPC centers. It uses Linux user namespaces to run containers with no privileged operations or daemons and minimal configuration changes on center resources.
This release includes:
- Upgrade OpenMPI examples to 3.1.3
- New example image build with skopeo and umoci
- Re-mount images read-only reliably
- Documentation improvements & miscellaneous bug fixes
Learn more:
LBANN 0.9 Released
February 11, 2019 (release)
The Livermore Big Artificial Neural Network toolkit (LBANN) is an open-source, HPC-centric, deep learning training framework that is optimized to compose multiple levels of parallelism.
v0.9 is LBANN’s initial release. The release notes linked below contain details about v0.9x iterations. Some deprecated features have been retired. At a high level, this release includes new development in these areas:
- Support for new training algorithms (e.g., generative adversarial networks)
- Support for new network structures
- Support for new layers (e.g., learning, metrics, optimizers, activations)
- Performance optimizations (e.g., GPU model-parallel softmax layer)
- Model portability & usability
- Support for an online, distributed data store
- Overhauled I/O & data readers
- Overhauled code base (see README_coding_style.txt)
- New features & build system (e.g., support for convolutional and pooling layers, GPU acceleration of local Elemental GEMM operations)
- and much more!
Learn more:
HiOp 0.2 Released
February 01, 2019 (release)
HiOp is an optimization solver for solving certain mathematical optimization problems expressed as nonlinear programming problems. This lightweight HPC solver leverages application’s existing data parallelism to parallelize the optimization iterations by using specialized linear algebra kernels.
HiOp’s initial release occurred in December 2017. This v0.2 includes:
- Implementation of various strategies to deal with fixed variables
- Comprehensive testing and bug fixing for MacOS
- Minor fixes of bugs found on various HPC platforms
- Minor interface and options refinement required by the integration with MFEM mesh optimization interface
Learn more:
Aluminum 0.2 Released
January 30, 2019 (release)
First released in September 2018, Aluminum provides a generic interface to high-performance communication libraries with a focus on allreduce algorithms. Blocking and non-blocking algorithms and GPU-aware algorithms are supported. Aluminum also contains custom implementations of select algorithms to optimize for certain situations.
Improvements included in this release:
- Host-transfer implementations of standard collectives in the
MPI-CUDA
backend
- Experimental RMA Put/Get operations
- Improved algorithm specification, point-to-point operations, testing, and benchmarks
Learn more:
CCT 1.0.4 Released
January 25, 2019 (release)
The Coda Calibration Tool (CCT) calculates reliable moment magnitudes for small- to moderate-sized seismic events. The v1.0.4 release includes several performance and stability improvements along with a few new features:
- Shared interaction between data plots and the map display
- Data point selection highlights relevant elements on the map (events/stations) and vice-versa
- Support for arbitrary user-defined lists of WMS 1.3.0-compliant map tile servers/layers for display on the map
- Automatic display of context-sensitive information based on which tab the user is actively looking at
Learn more:
SUNDIALS 4.0.2 Released
January 23, 2019 (release)
This release is a patch with many changes, including (but not limited to):
- unified linear solver interfaces in all SUNDIALS packages
- encapsulated nonlinear solvers in all SUNDIALS integrators
- reorganization of ARKode to allow for the development of new integration methods
- new ARKode stepper for two-rate explicit/explicit multirate infinitesimal step methods
- Fortran 2003 interfaces to CVODE and several SUNDIALS modules
- an OpenMP 4.5+ NVECTOR
Learn more:
New Repo: VisIt
January 19, 2019 (new-repo)
VisIt (Visualization and Data Analysis for Mesh-based Scientific Data) is an interactive, parallel visualization and graphical analysis tool for viewing scientific data on Unix and PC platforms. While this repo has been around for a while enjoying a robust developer community, it is newly housed on GitHub. Stay up to date with the latest release notes.
With VisIt, users can quickly generate visualizations from their data, animate them through time, manipulate them, and save the resulting images for presentations.
VisIt contains a rich set of visualization features so that you can view your data in a variety of ways. It can be used to visualize scalar and vector fields defined on 2D and 3D structured and unstructured meshes. VisIt was designed to handle very large data set sizes in the peta-scale range, yet it can also handle small data sets in the kilobyte range.
Learn more:
RAJA 0.7.0 Released
January 10, 2019 (release)
RAJA is a software abstraction that systematically encapsulates platform-specific code to enable applications to be portable across diverse hardware architectures without major source code disruption. The v0.7.0 release contains several major changes, new features, a variety of bug fixes, and expanded user documentation and accompanying example codes. Major changes include:
RAJA::forallN and RAJA::forall
methods were marked deprecated in the v0.6.0 release and have been removed.
- CUDA execution policies for use in RAJA::kernel policies have been significantly reworked and redefined to be much more flexible and provide improved run time performance.
- Improved support for loop tiling algorithms, CPU cache blocking, CUDA GPU thread local data, and shared memory
- Expanded documentation and example codes for the
RAJA::kernel
interface
Learn more:
New Repo: MemSurfer
January 10, 2019 (new-repo)
MemSurfer computes bilayer membrane surfaces found in a wide variety of large-scale molecular simulations. The tool works independent of the type of simulation, directly on the 3D point coordinates; as a result, it can handle a variety of membranes as well as atomic simulations.
Core functionality is written in Python and C++. Check out the GitHub repo for more information.