nixos-qchem

Nix expressions for HPC/Quantum chemistry software packages

https://github.com/nix-qchem/nixos-qchem

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.9%) to scientific vocabulary

Keywords

computational-chemistry hpc nix quantum-chemistry
Last synced: 6 months ago · JSON representation ·

Repository

Nix expressions for HPC/Quantum chemistry software packages

Basic Info
  • Host: GitHub
  • Owner: Nix-QChem
  • License: mit
  • Language: Nix
  • Default Branch: master
  • Homepage:
  • Size: 7.01 MB
Statistics
  • Stars: 95
  • Watchers: 6
  • Forks: 16
  • Open Issues: 6
  • Releases: 0
Topics
computational-chemistry hpc nix quantum-chemistry
Created over 8 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

built with nix DOI:10.1002/qua.26872

NixOS-QChem

Nix expressions for HPC/Quantum chemistry software packages.

The goal of this project is to integrate software packages into nixos to make it suitable for running it on a HPC cluster. It provides popular quantum chemistry packages and performance optimization to upstream nixpkgs.

Available Packages

A list packages can be found here: Package list

Citation

The design and packaging approach of the overlay are published here: M.Kowalewski, P. Seeber, Int. J. Quantum. Chem., e26872 (2022)

If you have used NixOS-QChem to perform calculation please cite the above mentioned paper with the following sentence. This enable others to reproduce your calculations by using the same computational environment. ``` All calculation have been performed using a reproducible environment using the Nix package manager together with NixOS-QChem (commit <10 digits of SHA-1>) [1].

[1] M.Kowalewski, P. Seeber, Int. J. Quantum. Chem., e26872 (2022). ```

Usage

Overlay

The repository comes as a nixpkgs overlay (see Nixpkgs manual for how to install an overlay). The contents of the overlay will be placed in an attribute set under nixpkgs (default qchem). The original, but overridden nixpkgs will be placed in qchem.pkgs. This allows for composition of the overlay with different variants.

There is a branch (release-XX.XX) for every stable version of nixpkgs (nixos-XX.XX).

examples/pinned-project-shell/shell.nix and examples/jupyter/shell.nix also contain examples how to compose a package set and define an environment with packages from the overlay.

Channel

Via release.nix a nix channels compatible nixexprs tarball can be generated: nix-build release.nix -A qchem.channel If you have set a different cfg.prefix/NIXQC_PREFIX adapt the expression to match the chosen subset name.

NUR

The applications from the overlay are also available via Nix User Repository (NUR) (qchem repo). Access via e.g.: nix-shell -p nur.repos.qchem.<package name>.

Binary cache

The latest builds for the master branch and stable version are stored on Cachix: * Cache URL: https://nix-qchem.cachix.org * Public key: nix-qchem.cachix.org-1:ZjRh1PosWRj7qf3eukj4IxjhyXx6ZwJbXvvFk3o3Eos=

If you are allowed to add binary substituters (as trusted user), you may simply add it with nix-shell -p cachix --run "cachix use nix-qchem".

Configuration

The overlay can be configured either via an attribute set or via environment variables. If no attribute set is given the configuration the environment variables are automatically considered (impure).

Special Installation Instructions

Q-Chem

The Q-Chem version 5.{1..4} are packaged. Download the Linux binaries with all options enabled for your respective version at https://www.q-chem.com/install/#linux. Q-Chem is evaluated in two steps to obtain a valid license, after the installer has run.

  1. Build the installer nix-build -A qchem.q-chem-installer. This will install Q-Chem into the store and prepare a preliminary license.data file, and prepare a script, that helps you to obtain the final license.data. The qchem.q-chem-installer.getLicense attribute (available as ./result/bin/q-chem_prep_license) requires the following environment variables
 - `$QCHEM_NODES`: a space-separated list of nodes, for which a Q-Chem license should be obtained. All nodes must be reachable via MPI.
 - `$QCHEM_MAIL`: the e-mail address associated with the Q-Chem license. The license file will be sent to this address by Q-Chem.
 - `$QCHEM_ORDNUM:` the order number for Q-Chem.

 After these variables have been set, run `./result/bin/q-chem_prep_license`. You should now have `./license.data`. Send this file via mail to `license@q-chem.com`.
  1. After you have received your license file from license@q-chem.com, point $NIXQC_LICQCHEM or licQChem to this file. The qchem.q-chem attribute can be used normally, now; i.e. nix-build -A qchem.q-chem.

Configuration via nixpkgs

Configuration options can be set directly via config.qchem-config alongside other nixpkgs config options.

  • allowEnv : Allow to override the configuration from the environment (default false when config.qchem-config is used).
  • prefix: The packages of the overlay will be placed in subset specified by prefix (default qchem).
  • srcurl: URL for non-free packages. If set this will override the requireFile function of nixpkgs to pull all non-free packages from the specified URL
  • optpath: Path to packages that reside outside the nix store. This is mainly relevant for Gaussian and Matlab.
  • licMolpro: Molpro license token string required to run molpro.
  • optArch: Set gcc compiler flags (mtune and march) to optimize for a specific architecture. Some upstream packages will be overridden to use make use of AVX (see nixpkgs-opt.nix). Note, that this also overrides the stdenv
  • useCuda: Uses Cuda features in selected packages.
  • licQChem: Path to a Q-Chem license file as obtained via mail.

Configuration via environment variables

The overlay will check for environment variables to configure some features:

  • NIXQC_PREFIX
  • NIXQC_SRCURL
  • NIXQC_OPTPATH
  • NIXQC_LICMOLPRO
  • NIXQC_AVX: see optAVX, setting this to 1 corresponds to true.
  • NIXQC_OPTARCH
  • NIXQC_CUDA: see useCuda, setting this to 1 corresponds to true.
  • NIXQC_LICQCHEM: see licQChem

Owner

  • Name: Nix-QChem
  • Login: Nix-QChem
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
title: NixOS-QChem
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Markus
    family-names: Kowalewski
    email: markus.kowalewski@fysik.su.se
    orcid: 'https://orcid.org/0000-0002-2288-2548'
  - given-names: Phillip
    family-names: Seeber
    email: phillip.seeber@uni-jena.de
    orcid: 'https://orcid.org/0000-0002-4968-7726'
identifiers:
  - type: doi
    value: 10.1002/qua.26872
    description: >-
      M. Kowalewski, P. Seeber, "Sustainable Packaging of
      Quantum Chemistry Software with the Nix Package
      Manager", Int. J. Quantum Chem., 122, e26872 (2022).
repository-code: 'https://github.com/Nix-QChem/NixOS-QChem'
abstract: >+
  Nix expressions for HPC/Quantum chemistry software
  packages.

  The goal of this project is to integrate software packages
  into nixos to make it suitable for running it on a HPC
  cluster. It provides popular quantum chemistry packages
  and performance optimization to upstream nixpkgs.

keywords:
  - nix
  - hpc
  - computational-chemistry
  - quantum-chemistry
license: MIT
preferred-citation:
  type: article
  authors:
  - given-names: Markus
    family-names: Kowalewski
  - given-names: Phillip
    family-names: Seeber
  doi: 10.1002/qua.26872
  journal: "Int. J. Quantum Chem."
  start: e26872
  title: "Sustainable Packaging of Quantum Chemistry Software with the Nix Package Manager"
  volume: 122
  year: 2022

GitHub Events

Total
  • Issues event: 12
  • Watch event: 18
  • Delete event: 125
  • Issue comment event: 37
  • Push event: 142
  • Pull request review comment event: 3
  • Pull request review event: 7
  • Pull request event: 247
  • Fork event: 2
  • Create event: 121
Last Year
  • Issues event: 12
  • Watch event: 18
  • Delete event: 125
  • Issue comment event: 37
  • Push event: 142
  • Pull request review comment event: 3
  • Pull request review event: 7
  • Pull request event: 247
  • Fork event: 2
  • Create event: 121

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 23
  • Total pull requests: 278
  • Average time to close issues: 3 months
  • Average time to close pull requests: 5 days
  • Total issue authors: 5
  • Total pull request authors: 3
  • Average comments per issue: 1.74
  • Average comments per pull request: 0.3
  • Merged pull requests: 178
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 13
  • Pull requests: 159
  • Average time to close issues: 3 days
  • Average time to close pull requests: about 18 hours
  • Issue authors: 4
  • Pull request authors: 2
  • Average comments per issue: 1.31
  • Average comments per pull request: 0.23
  • Merged pull requests: 103
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • markuskowa (18)
  • sheepforce (2)
  • joegilkes (1)
  • alejandrogallo (1)
  • berquist (1)
Pull Request Authors
  • markuskowa (226)
  • sheepforce (53)
  • mcwitt (1)
Top Labels
Issue Labels
hydra (2) bug (2) CI/builds (2) question (1) cleanup (1) package update (1) new package (1)
Pull Request Labels
hydra (161) package update (11) CI/builds (5) enhancement (2) bug (2) cleanup (1) new package (1)

Dependencies

.github/workflows/editorconfig.yml actions
  • actions/checkout v2 composite
  • cachix/install-nix-action v16 composite
  • jitterbit/get-changed-files v1 composite
  • workflow/nix-shell-action v3 composite
.github/workflows/nix-checks.yml actions
  • actions/checkout v2 composite
  • cachix/install-nix-action v16 composite
  • jitterbit/get-changed-files v1 composite
  • workflow/nix-shell-action v3 composite
.github/workflows/nix-rebuild.yml actions
  • actions/checkout v2 composite
  • cachix/install-nix-action v16 composite
  • machine-learning-apps/pr-comment master composite
.github/workflows/typos.yml actions
  • actions/checkout v2 composite
  • cachix/install-nix-action v16 composite
  • jitterbit/get-changed-files v1 composite
  • workflow/nix-shell-action v3 composite
.github/workflows/flake-update.yml actions
  • actions/checkout v3 composite
  • cachix/install-nix-action v20 composite