{"id":21771416,"url":"https://github.com/alejandrogallo/atrip","last_synced_at":"2025-10-28T06:40:24.839Z","repository":{"id":42378645,"uuid":"400536007","full_name":"alejandrogallo/atrip","owner":"alejandrogallo","description":"High Performance library for the CCSD(T) algorithm in quantum chemistry","archived":false,"fork":false,"pushed_at":"2025-04-09T15:53:03.000Z","size":12520,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T16:50:49.642Z","etag":null,"topics":["asynchronous-programming","coupled-cluster","cuda","literate-programming","mpi","quantum-chemistry"],"latest_commit_sha":null,"homepage":"https://alejandrogallo.github.io/atrip","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alejandrogallo.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-27T14:28:16.000Z","updated_at":"2024-07-26T07:57:11.000Z","dependencies_parsed_at":"2023-02-16T21:30:53.467Z","dependency_job_id":"74bacc40-e957-49ab-ad72-3e8116e2335b","html_url":"https://github.com/alejandrogallo/atrip","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejandrogallo%2Fatrip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejandrogallo%2Fatrip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejandrogallo%2Fatrip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejandrogallo%2Fatrip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alejandrogallo","download_url":"https://codeload.github.com/alejandrogallo/atrip/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248747115,"owners_count":21155395,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asynchronous-programming","coupled-cluster","cuda","literate-programming","mpi","quantum-chemistry"],"created_at":"2024-11-26T14:16:22.875Z","updated_at":"2025-10-28T06:40:19.801Z","avatar_url":"https://github.com/alejandrogallo.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"#+title: ATRIP: An MPI-asynchronous implementation of CCSD(T)\n#+PROPERTY: header-args+ :noweb yes :comments noweb :mkdirp t\n\n#+begin_export rst\n.. toctree::\n   :maxdepth: 2\n\n   atrip\n#+end_export\n\n* About this document\n\nYou can find this project written as a literate program\n\n- [[https://alejandrogallo.github.io/atrip/atrip.html][Literate program]]\n\nor if you prefer reading the source code with Doxygen there is also a built\nof doxygen available:\n\n- [[https://alejandrogallo.github.io/atrip/doxygen/html/index.html][Doxygen]]\n\n* How to cite\n\nIf you need to cite this algorithm\nbefore the proper paper is released please contact me.\n\nIn the mean time the code has been used in\n[[https://aip.scitation.org/doi/10.1063/5.0074936][this publication]] and can therefore been cited.\n\n* Building\n\nAtrip uses autotools to build the system.\nAutotools works by first creating a =configure= script from\na =configure.ac= file.\n\nAtrip should be built out of source, this means that\nyou have to create a build directory other that the root\ndirectory, for instance in the =build/tutorial= directory\n\n#+begin_src sh :exports code \nmkdir -p build/tutorial/\ncd build/tutorial\n#+end_src\n\nFirst you have to build the =configure= script by doing\n\n#+begin_src sh :dir build/tutorial :exports code :results raw drawer\n../../bootstrap.sh\n#+end_src\n\n#+RESULTS:\n:results:\n\n  Creating configure script\n\n\n  Now you can build by doing\n\n  mkdir build\n  cd build\n  ../configure\n  make extern\n  make all\n\n:end:\n\nAnd then you can see the =configure= options\n#+begin_src sh :dir build/tutorial :results raw drawer :eval no \n../../configure --help\n#+end_src\n\n** Benches\n\nThe script =tools/configure-benches.sh= can be used to create\na couple of configurations for benches:\n\n#+begin_src sh :exports results :results verbatim org   :results verbatim drawer replace output \nawk '/begin +doc/,/end +doc/ { print $NL }' tools/configure-benches.sh |\ngrep -v -e \"begin \\+doc\" -e \"end \\+doc\" |\nsed \"s/^# //; s/^# *$//; /^$/d\"\n#+end_src\n\n#+RESULTS:\n:results:\n- default ::\n  This configuration uses a CPU code with dgemm\n  and without computing slices.\n- only-dgemm ::\n  This only runs the computation part that involves dgemms.\n- cuda-only-dgemm ::\n  This is the naive CUDA implementation compiling only the dgemm parts\n  of the compute.\n- cuda-slices-on-gpu-only-dgemm ::\n  This configuration tests that slices reside completely on the gpu\n  and it should use a CUDA aware MPI implementation.\n  It also only uses the routines that involve dgemm.\n:end:\n\nIn order to generate the benches just create a suitable directory for it\n\n#+begin_src sh :eval no\nmkdir -p build/benches\ncd buid/benches\n../../tools/configure-benches.sh CXX=g++ ...\n#+end_src\n\nand you will get a Makefile together with several project folders.\nYou can either configure all projects with =make all= or\nthen go in each folder.\n\nNotice that you can give a path for ctf for all of them by doing\n#+begin_src sh :eval no\n../../tools/configure-benches.sh --with-ctf=/absolute/path/to/ctf\n#+end_src\n\n* Running benches\n\n** Main benchmark\n\nThe main benchmark gets built in =bench/atrip= and is used to run an\natrip run with random tensors.\n\nA common run of this script will be the following\n\n#+begin_src sh\nbench/atrip \\\n  --no 100 \\\n  --nv 1000 \\\n  --mod 1 \\\n  --% 0 \\\n  --dist group \\\n  --nocheckpoint \\\n  --max-iterations 1000\n#+end_src\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falejandrogallo%2Fatrip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falejandrogallo%2Fatrip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falejandrogallo%2Fatrip/lists"}