Source-linked AI summary

The ALPS project release 2.0: Open source software for strongly correlated systems

B. Bauer, L. D. Carr, H. G. Evertz, A. Feiguin, J. Freire, S. Fuchs, L. Gamper, J. Gukelberger, E. Gull, S. Guertler, A. Hehn, R. Igarashi, S. V. Isakov, D. Koop, P. N. Ma, P. Mates, H. Matsuo, O. Parcollet, G. Pawlowski, J. D. Picon, L. Pollet, E. Santos, V. W. Scarola, U. Schollwöck, C. Silva, B. Surer, S. Todo, S. Trebst, M. Troyer, M. L. Wall, P. Werner, S. Wessel

arXiv:1101.2646v4cond-mat.str-elphysics.comp-ph

TL;DR

Strongly correlated systems require direct numerical simulation, but increasingly complex algorithms make development and use difficult. ALPS 2.0 addresses this through an open-source framework of libraries, standardized formats, evaluation tools, applications, and workflow integration. The release improves reproducibility and accessibility while adding new algorithms and platform support.

  • Problem

    Increasingly complex algorithms and specialized individual codes make numerical simulation of strongly correlated systems harder to develop and use.

  • Method

    ALPS 2.0 combines open-source libraries, standardized XML and HDF5 data formats, Python evaluation tools, ready-to-use algorithms, and VisTrails workflow integration.

  • Results

    ALPS 2.0 provides an updated framework with new QMC and TEBD applications, HDF5 output, Python evaluation, Windows support, binary installers, and provenance integration.

  • Takeaways & Limitations

    The project provides reusable tools and applications intended to help researchers develop, run, evaluate, and reproduce simulations of strongly correlated lattice models.

  • Takeaways & Limitations

    ALPS remains a work in progress, with further evaluation tools, plotting functionality, and programming-language support planned for later releases.

Abstract

from arXiv · show

We present release 2.0 of the ALPS (Algorithms and Libraries for Physics Simulations) project, an open source software project to develop libraries and application programs for the simulation of strongly correlated quantum lattice models such as quantum magnets, lattice bosons, and strongly correlated fermion systems. The code development is centered on common XML and HDF5 data formats, libraries to simplify and speed up code development, common evaluation and plotting tools, and simulation programs. The programs enable non-experts to start carrying out serial or parallel numerical simulations by providing basic implementations of the important algorithms for quantum lattice models: classical and quantum Monte Carlo (QMC) using non-local updates, extended ensemble simulations, exact and full diagonalization (ED), the density matrix renormalization group (DMRG) both in a static version and a dynamic time-evolving block decimation (TEBD) code, and quantum Monte Carlo solvers for dynamical mean field theory (DMFT). The ALPS libraries provide a powerful framework for programers to develop their own applications, which, for instance, greatly simplify the steps of porting a serial code onto a parallel, distributed memory machine. Major changes in release 2.0 include the use of HDF5 for binary data, evaluation tools in Python, support for the Windows operating system, the use of CMake as build system and binary installation packages for Mac OS X and Windows, and integration with the VisTrails workflow provenance tool. The software is available from our web server at http://alps.comp-phys.org/.

1. Introduction

ALPS 2.0 updates an open-source project for simulating strongly correlated lattice models. It responds to increasingly complex algorithms and the need for accessible numerical simulation tools.

  • ALPS 2.0 is an open-source software project for strongly correlated lattice models.It updates publications describing earlier ALPS releases.
  • Accurate direct numerical simulations are important because strong interactions make analytical treatments of strongly correlated systems difficult.The target systems exhibit properties including quantum magnetism, high-temperature superconductivity, heavy-fermion behavior, and topological quantum order.
  • Algorithmic advances such as non-local QMC updates have produced computational speedups of many orders of magnitude.These advances also increase algorithmic complexity.
  • The growing complexity of algorithms and increasing use of numerical approaches make it harder for beginning researchers to implement modern methods.Strongly correlated systems have largely relied on individual codes developed for particular projects rather than community codes.

2. The ALPS project

The ALPS project addresses increasingly complex many-body algorithms through open-source libraries, standardized data handling, evaluation tools, applications, and workflow integration. Release 2.0 adds portability, binary distribution, Python analysis, new algorithms, and provenance support.

  • Overview: ALPS aims to simplify new-code development and provide black-box implementations of popular algorithms through an open-source software initiative.The project targets problems caused by algorithmic complexity and researcher specialization.
  • Overview: Standardized XML and HDF5 formats support exchange, distribution, archiving, and interoperability between simulation codes.
  • Overview: ALPS provides evaluation and post-processing tools for simulation results, including 2D and 3D plotting.
  • Overview: Common libraries simplify development of quantum and classical lattice-model codes for serial and parallel platforms.
  • Overview: Ready-to-use applications cover major algorithms for theoreticians, experimentalists, and students learning computational physics and many-body theory.
  • Overview: ALPS 2.0 improves reproducibility by publishing source code and integrating the VisTrails provenance-enabled workflow system.
  • New features in version 2.0: Release 2.0 adds CMake-based Windows builds, binary installers for MacOS X and Windows, HDF5 binary output, and more flexible Python evaluation tools.
  • New features in version 2.0: New applications include a revised directed-loop QMC code, DMFT QMC solvers, and a TEBD code for one-dimensional quantum dynamics.

3. Building and Installing ALPS

ALPS 2.0 uses CMake to make configuration and installation more portable, provides binary packages for MacOS X and Windows, and offers additional installation options for Linux.

  • CMake replaces autotools with a more flexible and portable build system whose variables control the installation.It supports customization, binary package creation, and Windows builds.
  • Source installation is recommended on Unix and Linux systems and when users need specific BLAS libraries or Python interpreters.
  • CMake-generated binary installation packages simplify ALPS installation on MacOS X and Windows.The authors recommend installing a VisTrails binary package as well to use all ALPS features.
  • Additional source and binary packages for MacOS X and Linux package managers were planned for future availability.
  • LiveALPS provides a ready-to-use Linux distribution with ALPS preinstalled for trying the software, summer schools, and lectures.

4. Data formats

ALPS uses standardized XML and HDF5 formats to represent simulation inputs and outputs across applications. HDF5 is the default for large binary simulation results, while XML remains available for compatibility.

  • Data formats: Standardized file formats enable data exchange, common evaluation tools, applying multiple algorithms to one model, and archiving simulation data.
  • XML: XML was selected in ALPS version 1 as a text-based format because it was widely used on the Internet and supported by many tools.
  • XML: ALPS XML schemas describe simulation parameters, quantum lattice models, and simulation results.
  • XML: The XML format is documented through an appendix and detailed online specifications.
  • HDF5: HDF5 complements XML as a portable, machine-independent format for large binary files and is ALPS’s default output format for simulation data.It is supported by visualization and analysis tools in C, C++, Fortran, Python, and other languages.
  • HDF5: HDF5 is significantly faster than text formats for large writes, and on-the-fly compression further reduces file size.
  • HDF5: ALPS HDF5 files store parameters, Monte Carlo results, ED and DMRG spectra and expectation values, and TEBD time evolutions.
  • HDF5: ALPS provides C++ and Python functions for reading HDF5 results, while any HDF5-compatible tool can also read them.Simulation codes can additionally write XML for backward compatibility with existing evaluation tools.

5. ALPS Libraries

The ALPS libraries provide shared infrastructure for applications, including data formats, symbolic expressions, parallel scheduling, lattice and model construction, statistical analysis, and portable serialization.

  • The ALPS libraries form the common foundation for all ALPS applications.
  • Core components include XML and HDF5 input/output, symbolic-expression manipulation, and portable serialization of C++ data structures.
  • A scheduler supports automatic parallelization of Monte Carlo and other embarrassingly parallel applications with load balancing and checkpointing.
  • Lattice and model libraries construct graphs, Bravais lattices, basis sets, operators, and Hamiltonians from XML input.
  • The alea library evaluates Monte Carlo data using binning and jackknife analyses, while generic C++ techniques preserve flexibility without sacrificing performance.

6. Evaluation Tools in Python

ALPS 2.0 replaces limited XML/XSLT evaluation with Python-based tools for interactive analysis, plotting, simulation control, and statistical post-processing.

  • Python-based evaluation replaces earlier XML/XSLT plotting with interactive analysis and arbitrarily complex evaluations.
  • The tools create two-dimensional plots with matplotlib or ALPS-supported formats and three-dimensional graphs through VisTrails and VTK.
  • Python interoperates with low-level C/C++ numerical code through Boost.Python and supports numerical calculation and plotting through PyLab libraries.
  • The pyalps package interfaces Python with ALPS code, runs simulations serially or in parallel, and supports evaluation and post-processing.
  • DataSet objects combine NumPy x and y arrays with metadata, enabling complex evaluations across parameter scans.
  • ALPS exports Monte Carlo evaluation functionality to Python, including numerical types that propagate full statistical error analysis.

7. Applications

ALPS 2.0 retains and expands ready-to-use applications for quantum and classical lattice models, sharing file formats to simplify multi-method studies and tutorials.

  • ALPS 2.0 retains nearly all ALPS 1.3 applications, adds new applications, and standardizes their file formats.
  • Exact diagonalization: Exact-diagonalization programs target flexible calculations of ground states, excitations, complete spectra, thermodynamic properties, and user-defined measurements.
  • Monte Carlo applications: The spinmc and loop codes provide classical local or cluster updates and quantum loop-cluster updates for supported magnetic models and fields.
  • Monte Carlo applications: dirloop sse is a new and improved directed-loop QMC implementation replacing the versions in ALPS 1.2 and 1.3, aimed at spin and hard-core boson models.
  • Monte Carlo applications: The qwl application generalizes Wang–Landau sampling to quantum systems to obtain thermodynamic quantities over broad temperature ranges.
  • Tensor-network and DMFT applications: The DMRG, TEBD, and DMFT applications cover quasi-one-dimensional states, time evolution, and single-site multi-orbital fermionic lattice problems with QMC impurity solvers.

8. Integration with the VisTrails Workflow and Computational Provenance Tools

ALPS 2.0 integrates VisTrails to record computational provenance and make simulation workflows reproducible and shareable. Its modules support input preparation, simulation execution, analysis, plotting, and interactive parameter exploration.

  • Computational provenance: ALPS 2.0 records algorithm workflows, simulation parameters, and version history through VisTrails to automate reproducibility.
  • Workflow integration: VisTrails modules cover input preparation, simulation execution, and analysis and plotting, while allowing each group to be used separately.
  • Workflow construction: ALPS workflows use descriptive module names to connect lattice and model inputs, quantum Monte Carlo execution, and data rendering.
  • Reproducible results: Clicking the Fig. 1 result retrieves its workflow and version history, allowing readers with ALPS and VisTrails installed to redo the full simulation.
  • Interactive analysis: The Fig. 3 workflow downloads stored results, loads the Binder Cumulant, and interactively explores critical exponents for a data collapse.

9. Tutorials and Examples

ALPS provides tutorials that introduce command-line, Python, and VisTrails workflows for running simulations, evaluating results, and developing new applications. Examples span complete simulations and integration of user-written Monte Carlo codes with ALPS tools.

  • Python workflow: The Python example prepares parameterized inputs, runs the ALPS loop application, loads susceptibility measurements, and collects them as a function of temperature.
  • Tutorial formats: ALPS tutorials demonstrate command-line use, Python scripts, and VisTrails workflows for simulations and data analysis.
  • Resources: Tutorial inputs are available online and included in both source and binary distributions.
  • Application examples: The Heisenberg spin-chain example progresses from command-line simulation to Python-based evaluation and plotting, with a corresponding VisTrails workflow.
  • Library development: A second tutorial set shows how to write simple Monte Carlo simulations in Python or C++ and integrate user code with ALPS tools and VisTrails.

10. License

ALPS uses separate licenses for its libraries and applications, modeled after the GPL with an additional citation requirement. Users must cite this paper and relevant application papers whenever ALPS is used.

  • License terms: ALPS libraries and applications have separate licenses modeled after the GNU General Public License with an added citation requirement.
  • Citation obligations: Any use of ALPS requires citing this paper and acknowledging ALPS, including use limited to testing scientific code.
  • Application citations: Papers required for a specific application are printed when it runs and listed in CITATIONS.txt.

11. Future Development plans

ALPS 2.0 is an ongoing project with planned expansion of evaluation, plotting, language, scheduling, and simulation capabilities. Future development also targets broader scalability and community contributions.

  • Planned tools: Release 2.1 plans include more Monte Carlo evaluation tools and expanded 2D and 3D plotting functionality.
  • Language support: ALPS 2.1 plans a Fortran library for writing HDF5 files, extending ALPS evaluation tools to results from Fortran codes.
  • Scalability: A redesigned scheduler is intended to integrate ALPS codes into other programs and Python scripts and scale to tens of thousands of CPUs.
  • Simulation applications: Planned simulation additions include a worm algorithm for optical lattices with millions of sites and cluster extensions for DMFT codes.
  • Project development: ALPS remains an open initiative that welcomes contributions from the community.

Appendix A.2. Data Provenance

ALPS 2.0 uses VisTrails provenance to record workflow specifications, executions, versions, parameters, and metadata, supporting reproducible and exploratory computational research. Its change-based model also enables workflow comparison, debugging, caching, and publication of computational artifacts.

  • Prospective provenance records workflow specifications, while retrospective provenance records executed steps and the execution environment for specific results.
  • VisTrails records workflow instances, parameter assignments, workflow runs, and user annotations as provenance data.
  • A tree-based history lets scientists return to previous workflow versions, undo changes, compare workflows, and inspect actions leading to results.
  • Change-based provenance supports debugging modified workflows and speeds similar workflow runs through caching.
  • Persistent caching stores and versions input, intermediate, and output data so intermediate results can be reused across later sessions.
  • The ALPS–VisTrails integration supports reproducibility and publication by linking workflows, results, figures, and version histories to computational artifacts.

Appendix D.1. Lattice definitions

ALPS lattice definitions describe finite geometries, unit-cell bonds, inhomogeneous couplings, and site depletion. The same framework supports model-specific operators and spatially varying parameters for spin and bosonic systems.

  • Lattice definitions: Inhomogeneous lattices allow couplings to differ across bonds or sites, supporting disordered systems and spatially varying trapping potentials.
  • Lattice definitions: A finite square lattice is specified by dimension, extent, boundary conditions, a unit cell, and nearest-neighbor bonds.
  • Lattice definitions: ALPS can randomly deplete lattice sites; the depletion fraction and random realization are controlled through input parameters and a seed.
  • Model definitions: The bosonic Hubbard example combines a local basis with site-dependent couplings, including a harmonic trapping potential dependent on site coordinates.
  • Model definitions: Model definitions can introduce composite site and bond operators, such as double occupancy and boson hopping, for use in Hamiltonians and measurements.
Loading 1101.2646v4…