Science Score: 67.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 4 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: GNN4ITkTeam
  • License: apache-2.0
  • Language: Python
  • Default Branch: master
  • Size: 20.8 MB
Statistics
  • Stars: 10
  • Watchers: 2
  • Forks: 4
  • Open Issues: 0
  • Releases: 0
Created about 3 years ago · Last pushed 7 months ago
Metadata Files
Readme Citation

README.md

[![Static Badge](https://img.shields.io/badge/documentation-blue)](https://atlas-gnn-tracking.docs.cern.ch/) [![pipeline status](https://gitlab.cern.ch/gnn4itkteam/commonframework/badges/dev/pipeline.svg)](https://gitlab.cern.ch/gnn4itkteam/commonframework/-/commits/dev) [![coverage report](https://gitlab.cern.ch/gnn4itkteam/commonframework/badges/dev/coverage.svg)](https://gitlab.cern.ch/gnn4itkteam/commonframework/-/commits/dev) This repository contains the framework used for developing, testing and presenting the GNN-based ITk track reconstruction project GNN4ITk.

Related work can be found here: 1. https://arxiv.org/abs/2103.06995 2. https://www.epj-conferences.org/articles/epjconf/abs/2021/05/epjconfchep202103047/epjconfchep202103047.html 3. https://cds.cern.ch/record/2815578?ln=en.

This repository is still under development and may be subject to breaking changes.

Get Started

To get started, run the setup commands (Install instructions section below), then take a look at the examples in the examples directory. Instructions and further details about the framework are available under the subdirectory of interest - examples, acorn/stages or acorn/core.

Install

IMPORTANT! Please use the dev branch to run all Examples: it is the latest version and is fully supported!

To install ACORN, assuming GPU capability with cuda version >= 12.2, run the following commands.

bash git clone --recurse-submodules ssh://git@gitlab.cern.ch:7999/gnn4itkteam/acorn.git && cd acorn conda create --name acorn python=3.10 && conda activate acorn pip install torch==2.1.0 && pip install --no-cache-dir -r requirements.txt pip install -e .

Advanced Installation & Troubleshooting

To check if the installation is successful, run python check_acorn.py. If you see (approximately) the following output, you are good to go! text python interpreter: path-to-conda-env/bin/python torch: 2.1.1+cu121 torch cuda: True torch cuda device count: 1 torch cuda device name: NVIDIA A100-PCIE-40GB torch cuda device capability: (8, 0) torch distributed : True pytorch_lightning: 2.1.2 pyg: 2.4.0 frnn found cugraph: 23.12.00 cudf: 23.12.01 torch_scatter: 2.1.2 Test scatter_max in cuda. out: tensor([[0, 0, 4, 3, 2, 0], [2, 4, 3, 0, 0, 0]], device='cuda:0') argmax: tensor([[5, 5, 3, 4, 0, 1], [1, 4, 3, 5, 5, 5]], device='cuda:0')


For NERSC Perlmutter HPC users, the default cudatoolkit is 11.7 as of writing (12/13/2023). Please switch it to 12.2 by running module load cudatoolkit/12.2, then run the following commands.


It is optional to install FRNN for faster (~3x) GPU nearest neighbor search. To do so, run bash pip install git+https://github.com/asnaylor/prefix_sum.git pip install git+https://github.com/xju2/FRNN.git


IMPORTANT! On December 2, 2023 a major refactoring of the code was merged on dev

If you have previously installed a version of 'acorn' (formerly known as 'gnn4itk_cf' or GNN4ITK CommonFramework) prior to December 2, 2023, it's important to update your setup. Follow the steps below:

git checkout dev git pull dev conda create --name acorn --clone gnn4itk conda activate acorn pip uninstall gnn4itk_cf pip install -e .

You may temporarily retain the existing 'gnn4itk' conda environment for branches still in development with the previous version. If you have any active development branches from the previous setup, swiftly switch them to the 'dev' branch for updates

The new setup introduces the following changes:

  • Renames the conda environment from gnn4itk to acorn
  • Updates the command line to use acorn [train|infer|eval]
  • Old commands g4i-train, g4i-infer, and g4i-eval remain available for backward compatibility.

Framework Structure & Examples

Please see the documentation for more details, examples and tutorials.

Citing this work

If this work is useful for your research, please cite our vCHEP2021 and CTD2022 proceedings:

@ARTICLE{YourReferenceHere, author = {{Ju}, Xiangyang and {Murnane}, Daniel and {Calafiura}, Paolo and {Choma}, Nicholas and {Conlon}, Sean and {Farrell}, Steve and {Xu}, Yaoyuan and {Spiropulu}, Maria and {Vlimant}, Jean-Roch and {Aurisano}, Adam and {Hewes}, Jeremy and {Cerati}, Giuseppe and {Gray}, Lindsey and {Klijnsma}, Thomas and {Kowalkowski}, Jim and {Atkinson}, Markus and {Neubauer}, Mark and {DeZoort}, Gage and {Thais}, Savannah and {Chauhan}, Aditi and {Schuy}, Alex and {Hsu}, Shih-Chieh and {Ballow}, Alex}, title = "{Performance of a Geometric Deep Learning Pipeline for HL-LHC Particle Tracking}", journal = {arXiv e-prints}, keywords = {Physics - Data Analysis, Statistics and Probability, Computer Science - Machine Learning, High Energy Physics - Experiment}, year = 2021, month = mar, eid = {arXiv:2103.06995}, pages = {arXiv:2103.06995}, doi = {10.48550/arXiv.2103.06995}, archivePrefix = {arXiv}, eprint = {2103.06995}, primaryClass = {physics.data-an}, adsurl = {https://ui.adsabs.harvard.edu/abs/2021arXiv210306995J}, adsnote = {Provided by the SAO/NASA Astrophysics Data System} }

@article{YourReferenceHere, author = {{Biscarat, Catherine} and {Caillou, Sylvain} and {Rougier, Charline} and {Stark, Jan} and {Zahreddine, Jad}}, title = {Towards a realistic track reconstruction algorithm based on graph neural networks for the HL-LHC}, DOI= "10.1051/epjconf/202125103047", url= "https://doi.org/10.1051/epjconf/202125103047", journal = {EPJ Web Conf.}, year = 2021, volume = 251, pages = "03047", } @techreport{YourReferenceHere, author = "Caillou, Sylvain and Calafiura, Paolo and Farrell, Steven Andrew and Ju, Xiangyang and Murnane, Daniel Thomas and Rougier, Charline and Stark, Jan and Vallier, Alexis", collaboration = "ATLAS", title = "{ATLAS ITk Track Reconstruction with a GNN-based pipeline}", institution = "CERN", reportNumber = "ATL-ITK-PROC-2022-006", address = "Geneva", year = "2022", url = "https://cds.cern.ch/record/2815578", }

If you use this code in your work, please cite the gnn4itk framework:

@misc{YourReferenceHere, author = {Atkinson, Markus Julian and Caillou, Sylvain and Clafiura, Paolo and Collard, Christophe and Farrell, Steven Andrew and Huth, Benjamin and Ju, Xiangyang and Liu, Ryan and Minh Pham, Tuan and Murnane, Daniel (corresponding author) and Neubauer, Mark and Rougier, Charline and Stark, Jan and Torres, Heberth and Vallier, Alexis}, title = {gnn4itk}, url = {https://github.com/GNN4ITkTeam/CommonFramework} }

Developing & Contributing

(Optional)

Pre-commit hooks are available for running linting and code formatting. To set them up, run

pre-commit install pre-commit run

(If you are using a conda environment, you may need to run pip install pre-commit first)

Owner

  • Name: GNN4ITkTeam
  • Login: GNN4ITkTeam
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
title: gnn4itk
message: Geometric Learning for tracking in ITk
type: software
authors:
  - given-names: Markus Julian
    affiliation: Univ. Illinois at Urbana Champaign (US)
    family-names: Atkinson
    email: atkinsmj82@gmail.com
  - given-names: Sylvain
    family-names: Caillou
    email: sylvain.caillou@l2it.in2p3.fr
    affiliation: Centre National de la Recherche Scientifique (FR)
    orcid: 'https://orcid.org/0000-0002-7277-6428'
  - given-names: Paolo
    family-names: Clafiura
    email: pcalafiura@lbl.gov
    affiliation: Lawrence Berkeley National Lab. (US)
    orcid: 'https://orcid.org/0000-0002-1692-1678'
  - given-names: Christophe
    family-names: Collard
    email: christophe.collard@l2it.in2p3.fr
    affiliation: Centre National de la Recherche Scientifique (FR)
    orcid: 'https://orcid.org/0000-0003-1326-3291'
  - given-names: Steven Andrew
    family-names: Farrell
    affiliation: Lawrence Berkeley National Lab. (US)
  - given-names: Benjamin
    family-names: Huth
    affiliation: Universität Regensburg
    orcid: 'https://orcid.org/0000-0002-3163-1062'
    email: benjamin.huth@ur.de
  - given-names: Xiangyang
    family-names: Ju
    email: xju@lbl.gov
    affiliation: Lawrence Berkeley National Lab. (US)
  - given-names: Ryan
    family-names: Liu
    email: liuryan30@berkeley.edu
    affiliation: UC Berkeley
    orcid: 'https://orcid.org/0000-0002-9890-7457'
  - given-names: Tuan
    family-names: Minh Pham
    email: pmtuan@lbl.gov
    affiliation: University of Wisconsin-Madison
  - given-names: Daniel
    family-names: Murnane (Corresponding author)
    email: dtmurnane@lbl.gov
    affiliation: Lawrence Berkeley National Lab. (US)
    orcid: 'https://orcid.org/0000-0003-4046-4822'
  - given-names: Mark
    family-names: Neubauer
    email: msn@illinois.edu
    affiliation: Univ. Illinois at Urbana Champaign (US)
    orcid: 'https://orcid.org/0000-0001-8434-9274'
  - given-names: Charline
    family-names: Rougier
    email: charline.rougier@l2it.in2p3.fr
    affiliation: Centre National de la Recherche Scientifique (FR)
    orcid: 'https://orcid.org/0000-0002-9853-7468'
  - given-names: Jan
    family-names: Stark
    email: jan.stark@l2it.in2p3.fr
    affiliation: Centre National de la Recherche Scientifique (FR)
    orcid: 'https://orcid.org/0000-0002-1217-672X'
  - given-names: Heberth
    family-names: Torres
    email: heberth.torres@l2it.in2p3.fr
    affiliation: Centre National de la Recherche Scientifique (FR)
    orcid: 'https://orcid.org/0000-0003-0822-1206'
  - given-names: Alexis
    family-names: Vallier
    email: alexis.vallier@l2it.in2p3.fr
    affiliation: Centre National de la Recherche Scientifique (FR)
    orcid: 'https://orcid.org/0000-0002-5496-349X'
repository-code: 'https://github.com/GNN4ITkTeam/CommonFramework'
keywords:
  - Graph Neural Network (GNN)
  - Tracking
  - ATLAS ITk
license: Apache-2.0

GitHub Events

Total
  • Push event: 38
  • Fork event: 1
  • Create event: 4
Last Year
  • Push event: 38
  • Fork event: 1
  • Create event: 4

Dependencies

setup.py pypi
Dockerfile docker
  • pytorch/pytorch 1.13.0-cuda11.6-cudnn8-runtime build
requirements.txt pypi
  • atlasify *
  • class-resolver *
  • click *
  • cudf-cu12 *
  • cugraph-cu12 *
  • ipykernel *
  • lightning ===2.1.2
  • networkx *
  • pytest *
  • pytest-cov *
  • pyyaml *
  • seaborn *
  • torch-geometric ==2.4.0
  • tqdm *
  • uproot *