nixos-qchem
Nix expressions for HPC/Quantum chemistry software packages
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
Repository
Nix expressions for HPC/Quantum chemistry software packages
Basic Info
Statistics
- Stars: 95
- Watchers: 6
- Forks: 16
- Open Issues: 6
- Releases: 0
Topics
Metadata Files
README.md
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.
- Build the installer
nix-build -A qchem.q-chem-installer. This will install Q-Chem into the store and prepare a preliminarylicense.datafile, and prepare a script, that helps you to obtain the finallicense.data. Theqchem.q-chem-installer.getLicenseattribute (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`.
- After you have received your license file from
license@q-chem.com, point$NIXQC_LICQCHEMorlicQChemto this file. Theqchem.q-chemattribute 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 whenconfig.qchem-configis used).prefix: The packages of the overlay will be placed in subset specified byprefix(defaultqchem).srcurl: URL for non-free packages. If set this will override therequireFilefunction of nixpkgs to pull all non-free packages from the specified URLoptpath: 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 (mtuneandmarch) to optimize for a specific architecture. Some upstream packages will be overridden to use make use of AVX (seenixpkgs-opt.nix). Note, that this also overrides the stdenvuseCuda: 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_PREFIXNIXQC_SRCURLNIXQC_OPTPATHNIXQC_LICMOLPRONIXQC_AVX: seeoptAVX, setting this to 1 corresponds totrue.NIXQC_OPTARCHNIXQC_CUDA: seeuseCuda, setting this to 1 corresponds totrue.NIXQC_LICQCHEM: seelicQChem
Owner
- Name: Nix-QChem
- Login: Nix-QChem
- Kind: organization
- Repositories: 2
- Profile: https://github.com/Nix-QChem
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
Pull Request Labels
Dependencies
- actions/checkout v2 composite
- cachix/install-nix-action v16 composite
- jitterbit/get-changed-files v1 composite
- workflow/nix-shell-action v3 composite
- actions/checkout v2 composite
- cachix/install-nix-action v16 composite
- jitterbit/get-changed-files v1 composite
- workflow/nix-shell-action v3 composite
- actions/checkout v2 composite
- cachix/install-nix-action v16 composite
- machine-learning-apps/pr-comment master composite
- actions/checkout v2 composite
- cachix/install-nix-action v16 composite
- jitterbit/get-changed-files v1 composite
- workflow/nix-shell-action v3 composite
- actions/checkout v3 composite
- cachix/install-nix-action v20 composite