qmbenchio

An open-source benchmark IO project which simulates the intensive use of scratch with quantum chemistry software

https://github.com/ceisammodes/qmbenchio

Science Score: 26.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

An open-source benchmark IO project which simulates the intensive use of scratch with quantum chemistry software

Basic Info
  • Host: GitHub
  • Owner: ceisammodes
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 528 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme License Authors Codemeta

README.md

qmbenchio

An open-source benchmark IO project.

screenshot

Overview

  • Develop a more comprehensive understanding of the relationships between quantum chemistry software, computing architecture, and simulation performance
  • Investigation of storage technology impact on computation times on different scratch disk clusters

Our project begins with the utilization of OpenMOLCAS, a widely-acclaimed and extensively-used quantum chemistry software package, as part of the (ATTOP) project.

Table of contents:

Installation

We recommend using Docker installation for reproducibility

Docker

bash docker build -t qmbhenchio . bash docker start qmbenchio

getting-started

A qmbenchio have 3 steps. * Generate input data for qm software (for example openmolcas) * Run on Cluster io benchmark using previously generated data * Post processing of output file to generate Graph or report.

You can run all the step inside the docker container

The configurations of the directory path can be specified through a ini file. Examples of ini files can be found in config.ini. bash cat /app/config.ini

[Directories] RawData=../data/rawdata/molcastest ProcessedData=../data/processeddata/molcastest

run interactively inside the container bash docker exec -i -t qmbenchio /bin/bash

First step Generate the data

Example for openmolcas io

bash cd /app/scripts python generate_molcas_io_job.py --openmolcas --jobs 10 100 --dir titi

[!TIP] if the directories have already been generated the first time, it will only create the slurm files

The script take files in /app/data/raw_data and generate a titi bench with 10 job and 100 identical simultaneous job openmolcas IO input files.

All files are generated in ProcessedData directory (cf config.ini)

Example for openmolcas io bench

├── processed_data/
│   ├── molcas_test
│     ├── titi
│           ├──  job_10
│                 ├── ...
│           ├── job_100
│                  ├── ...
└── ...

Second step Launch the jobs and generate output

You can make this directly in the first step if you add --slurm arg. If bash cd /app/scripts python generate_molcas_io_job.py --openmolcas --slurm --jobs 10 100 --dir titi This script use 2 templates slurm file in data/rawdata/molcastest/

[!IMPORTANT]
You have to adapt the tpl files for your cluster

Example for our Glicid regional Cluster Nautilus

bash python generate_molcas_io_job.py --openmolcas --jobs 10 100 --dir titi --slurm .

├── job10 ├── job100
│── submolcasnautilus10.sh
└── sub
molcasnautilus100.sh

bash sbatch sub_molcas_nautilus_100.sh sbatch sub_molca_nautilus_10.sh

Third Step Analyse the output and generate report or chart

Once the jobs are launched and the calculations are completed. Run the program that extracts the values from the molcas outputs The directory must contains output in all calculations (geom_X) subdirectory

Example of titi directory :

├── 100job  
      ├── geom_1  
          ├── geometry_1.xyz  
          ├── mol_input_1.input  
          ├── mol_input_1.output  
          ├── mol_input_1.status  
          └── start.RasOrb   
      ├── geom_X  
          ├── geometry_1.xyz  
          ├── mol_input_1.input  
          ├── mol_input_1.output  
          ├── mol_input_1.status  
          └── start.RasOrb  
      ......

Extract outputs

  • With a console : bash python3 extract_benchio.py -b /tmp/titi screenshot

  • With a notebook in the docker container : The example notebook are in this directory: bash ../docs/notebooks/

launch Jupyterlab in the container : bash 4ef2f4584243:/app#/env/bin/jupyter-lab --ip=0.0.0.0 --port=8886 --no-browser --allow-root and after use the notebook: http://127.0.0.1:8886/lab/tree/docs/notebooks/openmolcasextractbench.jnb.ipynb

About Us

The ATTOP team

📢 is under active development

This project is archived in Software Heritage. SWH

Licence

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Copremo. If not, see http://www.gnu.org/licenses/.

How to cite qmbenchio If you use qmbenchio to get publisheable results, please cite: A.Blondel, qmbenchio, Nantes University , 2025.

Acknowledgments

Thanks to thierry Tran (ATTOP project) for the OpenMolcas IO Bench case.

“This benchmark io program used resources of the GLiCID Computing Facility (Ligerien Group for Intensive Distributed Computing, https://doi.org/10.60487/glicid, Pays de la Loire, France)

Owner

  • Name: ceisammodes
  • Login: ceisammodes
  • Kind: organization

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "type": "SoftwareSourceCode",
  "applicationCategory": "Chemistry HPC",
  "author": [
    {
      "id": "https://orcid.org/0009-0005-7169-5422",
      "type": "Person",
      "affiliation": {
        "id": " https://ror.org/04ysg2a58",
        "type": "Organization"
      },
      "email": "aymeric.blondel@univ-nantes.fr",
      "familyName": "Blondel",
      "givenName": "Aymeric"
    }
  ],
  "codeRepository": "https://github.com/ceisammodes/qmbenchio.git",
  "contributor": {
    "id": "https://orcid.org/0000-0002-0722-0159",
    "type": "Person",
    "affiliation": {
      "id": " https://ror.org/04ysg2a58",
      "type": "Organization"
    },
    "email": "Thierry.Tran@univ-nantes.fr",
    "familyName": "thierry",
    "givenName": "tran"
  },
  "dateCreated": "2024-06-01",
  "dateModified": "2025-02-07",
  "datePublished": "2025-02-01",
  "description": "An open-source benchmark IO project.\n\nDevelop a more comprehensive understanding of the relationships between quantum chemistry software, computing architecture, and simulation performance\nInvestigation of storage technology impact on computation times on different scratch disk clusters\n",
  "downloadUrl": "https://github.com/ceisammodes/qmbenchio/archive/refs/tags/0.1.tar.gz",
  "funder": {
    "type": "Organization",
    "name": "CNRS & ERC"
  },
  "keywords": "Benchmark IO",
  "license": "https://spdx.org/licenses/GPL-3.0",
  "name": "qmbenchio",
  "operatingSystem": "Linux",
  "programmingLanguage": "PYTHON",
  "version": "1.0",
  "funding": "ERC-STG-21 101040356 ATTOP"
}

GitHub Events

Total
  • Push event: 1
  • Create event: 2
Last Year
  • Push event: 1
  • Create event: 2

Dependencies

Dockerfile docker
  • debian latest build
requirements.txt pypi
  • jupyterlab *
  • matplotlib *
  • pandas *
  • requests *
  • tqdm *