https://github.com/lanl/qmd-progress
PROGRESS: Parallel, Rapid O(N) and Graph-based Recursive Electronic Structure Solver.
https://github.com/lanl/qmd-progress
hpc mpi parallel
Last synced: 2 months ago
JSON representation
PROGRESS: Parallel, Rapid O(N) and Graph-based Recursive Electronic Structure Solver.
- Host: GitHub
- URL: https://github.com/lanl/qmd-progress
- Owner: lanl
- License: other
- Created: 2016-10-21T21:03:56.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T21:53:16.000Z (over 1 year ago)
- Last Synced: 2024-10-29T23:49:13.115Z (over 1 year ago)
- Topics: hpc, mpi, parallel
- Language: Fortran
- Homepage: https://qmd-progress.readthedocs.io/
- Size: 133 MB
- Stars: 20
- Watchers: 16
- Forks: 13
- Open Issues: 21
-
Metadata Files:
- Readme: README.rst
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
This website is intended to provide some guidance on how to get and install the
**PROGRESS** library. LA-UR number **LA-UR-17-27372**
.. list-table::
:header-rows: 1
* - Issues
- Pull Requests
- CI
- Docker
* - .. image:: https://img.shields.io/github/issues/lanl/qmd-progress.svg
:alt: GitHub issues
:target: https://github.com/lanl/qmd-progress/issues
- .. image:: https://img.shields.io/github/issues-pr/lanl/qmd-progress.svg
:alt: GitHub pull requests
:target: https://github.com/lanl/qmd-progress/pulls
- .. image:: https://github.com/lanl/qmd-progress/workflows/CI/badge.svg
:alt: GitHub Actions
:target: https://github.com/lanl/qmd-progress/actions
- .. image:: https://img.shields.io/docker/pulls/nicolasbock/qmd-progress
:alt: Docker Pulls
:target: https://hub.docker.com/repository/docker/nicolasbock/qmd-progress
A library for quantum chemistry solvers
=======================================
**PROGRESS**: Parallel, Rapid **O(N)** and Graph-based Recursive Electronic
Structure Solver. **LA-CC-16-068**
- This library is focused on the development of general solvers that are
commonly used in **quantum chemistry packages**.
- This library has to be compiled with the `Basic Matrix Library (BML)
`_.
- Our webpage can be found at https://qmd-progress.readthedocs.io/
Authors
=======
(in alphabetical order)
- Anders M. N. Niklasson
- Christian F. A. Negre
- Marc J. Cawkwell
- Nicolas Bock
- Susan M. Mniszewski
- Michael E. Wall
Contributors
============
- Alicia Welden
- Christoph Junghans
- Jean-Luc Fattebert
- Jesse Grindstaff
- Joshua D. Finkelstein
- Linnea Anderson
- Nestor Aguirre
- Yu Zhang
- Rae A. C. Grove
Build Dependencies
==================
- **>=OpenMP-3.1**
- **>=metis-5.0** if building with **PROGRESS_GRAPHLIB**
Note that on some distributions, metis is available as a package. Make sure you
install the **-dev** package. For example, Ubuntu requires **libmetis-dev**.
Testing in our CI container
===========================
We are switching our CI tests from Travis-CI to GitHub Actions because Travis-CI
is `limiting the number of builds for open source projects
`_. Our workflow
uses a
`custom Docker image `_ which
comes with the necessary compiler tool chain and a pre-installed `bml` library
to build and test the **qmd-progress** library. Using **docker** is a convenient
and quick way to develop, build, and test the **qmd-progress** library.
.. code-block:: console
./scripts/run-local-docker-container.sh
Inside the container:
.. code-block:: console
./build.sh compile
Alternatively, you can run one of the CI tests by executing e.g.
.. code-block:: console
./scripts/ci-with-graphlib-debug.sh
Build and Install Instructions
==============================
How to build
------------
.. code-block:: console
CMAKE_PREFIX_PATH= ./build.sh
How to install
--------------
.. code-block:: console
cd build
sudo make install
To specify the Intel Fortran compiler:
.. code-block:: console
FC=ifort PKG_CONFIG_PATH=/lib/pkgconfig ./build.sh
To build with the gfortran compiler and OpenMP:
.. code-block:: console
CC=gcc FC=gfortran \
CMAKE_BUILD_TYPE=Release \
PROGRESS_OPENMP=yes \
CMAKE_PREFIX_PATH= \
CMAKE_INSTALL_PREFIX= \
./build.sh configure
To build with OpenMP, MPI and testing enabled:
.. code-block:: console
CC=mpicc FC=mpif90 \
CMAKE_BUILD_TYPE=Release \
PROGRESS_OPENMP=yes \
PROGRESS_MPI=yes \
PROGRESS_TESTING=yes \
CMAKE_PREFIX_PATH= \
CMAKE_INSTALL_PREFIX= \
./build.sh configure
To build with OpenMP, MPI, testing enabled and example programs built:
.. code-block:: console
CC=mpicc FC=mpif90 \
CMAKE_BUILD_TYPE=Release \
PROGRESS_OPENMP=yes \
PROGRESS_MPI=yes \
PROGRESS_TESTING=yes \
PROGRESS_EXAMPLES=yes \
CMAKE_PREFIX_PATH= \
CMAKE_INSTALL_PREFIX= \
./build.sh configure
To build with OpenMP and MPI and testing enabled and example programs built
and the METIS graph partitioning library:
.. code-block:: console
CC=mpicc FC=mpif90 \
CMAKE_BUILD_TYPE=Release \
PROGRESS_OPENMP=yes \
PROGRESS_MPI=yes \
PROGRESS_GRAPHLIB=yes \
PROGRESS_TESTING=yes \
PROGRESS_EXAMPLES=yes \
CMAKE_PREFIX_PATH= \
CMAKE_INSTALL_PREFIX= \
./build.sh configure
Citing
======
.. code-block:: bibtex
@misc{2016progress,
title={\textrm{PROGRESS} Version 1.0},
author={Niklasson, Anders M. and
Mniszewski, Susan M and
Negre, Christian F. A. and
Wall, Michael E. and
Cawkwell, Marc J., and
Nicolas Bock},
year={2016},
url = {https://github.com/lanl/qmd-progress},
institution={Los Alamos National Laboratory (LANL), Los Alamos, NM (United States)}
}
Support acknowledges
====================
This development is currently supported by the Exascale Computing Project
(17-SC-20-SC), a collaborative effort of two U.S. Department of Energy
organizations (Office of Science and the National Nuclear Security
Administration) responsible for the planning and preparation of a capable
exascale ecosystem, including software, applications, hardware, advanced system
engineering, and early testbed platforms, in support of the nation’s exascale
computing imperative.
Basic Energy Sciences (LANL2014E8AN) and the Laboratory Directed Research and
Development Program of Los Alamos National Laboratory. To tests these
developments we used resources provided by the Los Alamos National Laboratory
Institutional Computing Program, which is supported by the U.S. Department of
Energy National Nuclear Security Administration