{"title":"TorchAmi:算法松原整合的通用 CPU/GPU 实现","authors":"M.D. Burke , J.P.F. LeBlanc","doi":"10.1016/j.cpc.2024.109437","DOIUrl":null,"url":null,"abstract":"<div><div>We present <span>torchami</span>, an advanced implementation of algorithmic Matsubara integration (AMI) that utilizes <span>pytorch</span> as a backend to provide easy parallelization and GPU support. AMI is a tool for analytically resolving the sequence of nested Matsubara integrals that arise in virtually all Feynman perturbative expansions. In this implementation we present a new AMI algorithm that creates a more natural symbolic representation of the Feynman integrands. In addition, we include peripheral tools that allow for import and labeling of simple graph structures and conversion to <span>torchami</span> input. The code is written in c++ with python bindings provided.</div></div><div><h3>Program summary</h3><div><em>Program Title:</em> torchami</div><div><em>CPC Library link to program files:</em> <span><span>https://doi.org/10.17632/m79hnngy8s.1</span><svg><path></path></svg></span></div><div><em>Developer's repository link:</em> <span><span>https://github.com/mdburke11/torchami/releases/tag/v1.0</span><svg><path></path></svg></span></div><div><em>Licensing provisions:</em> GPLv3</div><div><em>Programming language:</em> <span>C++, python</span></div><div><em>Nature of problem:</em> Feynman diagrams are pictorial representations of perturbative expansions often formulated in the imaginary frequency/time axis and involve a high-dimensional sequence of nested integral over spatial and temporal degrees of freedom.</div><div><em>Solution method:</em> <span>torchami</span> provides a framework to symbolically generate and store the analytic solution to the temporal Matsubara sums through repeated application of multipole residue theorems. The solutions are stored using a tree structure for arbitrary products and sums of Fermi/Bose functions, and the evaluation functions provide both CPU and GPU support with automatic parallelization for batch sampling problems.</div><div><em>Additional comments including restrictions and unusual features:</em> Requires <span>C++17</span> standard, the boost graph library, as well as <span>pytorch</span>.</div></div><div><h3>References</h3><div><ul><li><span>[1]</span><span><div>Amir Taheridehkordi, S. H. Curnoe, and J. P. F. LeBlanc, Algorithmic Matsubara integration for Hubbard-like models, Phys. Rev. B 99 035120 (2019).</div></span></li><li><span>[2]</span><span><div>H. Elazab, B. D. E. McNiven, and J. P. F. LeBlanc, LIBAMI: Implementation of algorithmic Matsubara integration, Computer Physics Communications 280, 108469 (2022)</div></span></li></ul></div></div>","PeriodicalId":285,"journal":{"name":"Computer Physics Communications","volume":"308 ","pages":"Article 109437"},"PeriodicalIF":7.2000,"publicationDate":"2024-11-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"TorchAmi: Generalized CPU/GPU implementation of algorithmic matsubara integration\",\"authors\":\"M.D. Burke , J.P.F. LeBlanc\",\"doi\":\"10.1016/j.cpc.2024.109437\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div><div>We present <span>torchami</span>, an advanced implementation of algorithmic Matsubara integration (AMI) that utilizes <span>pytorch</span> as a backend to provide easy parallelization and GPU support. AMI is a tool for analytically resolving the sequence of nested Matsubara integrals that arise in virtually all Feynman perturbative expansions. In this implementation we present a new AMI algorithm that creates a more natural symbolic representation of the Feynman integrands. In addition, we include peripheral tools that allow for import and labeling of simple graph structures and conversion to <span>torchami</span> input. The code is written in c++ with python bindings provided.</div></div><div><h3>Program summary</h3><div><em>Program Title:</em> torchami</div><div><em>CPC Library link to program files:</em> <span><span>https://doi.org/10.17632/m79hnngy8s.1</span><svg><path></path></svg></span></div><div><em>Developer's repository link:</em> <span><span>https://github.com/mdburke11/torchami/releases/tag/v1.0</span><svg><path></path></svg></span></div><div><em>Licensing provisions:</em> GPLv3</div><div><em>Programming language:</em> <span>C++, python</span></div><div><em>Nature of problem:</em> Feynman diagrams are pictorial representations of perturbative expansions often formulated in the imaginary frequency/time axis and involve a high-dimensional sequence of nested integral over spatial and temporal degrees of freedom.</div><div><em>Solution method:</em> <span>torchami</span> provides a framework to symbolically generate and store the analytic solution to the temporal Matsubara sums through repeated application of multipole residue theorems. The solutions are stored using a tree structure for arbitrary products and sums of Fermi/Bose functions, and the evaluation functions provide both CPU and GPU support with automatic parallelization for batch sampling problems.</div><div><em>Additional comments including restrictions and unusual features:</em> Requires <span>C++17</span> standard, the boost graph library, as well as <span>pytorch</span>.</div></div><div><h3>References</h3><div><ul><li><span>[1]</span><span><div>Amir Taheridehkordi, S. H. Curnoe, and J. P. F. LeBlanc, Algorithmic Matsubara integration for Hubbard-like models, Phys. Rev. B 99 035120 (2019).</div></span></li><li><span>[2]</span><span><div>H. Elazab, B. D. E. McNiven, and J. P. F. LeBlanc, LIBAMI: Implementation of algorithmic Matsubara integration, Computer Physics Communications 280, 108469 (2022)</div></span></li></ul></div></div>\",\"PeriodicalId\":285,\"journal\":{\"name\":\"Computer Physics Communications\",\"volume\":\"308 \",\"pages\":\"Article 109437\"},\"PeriodicalIF\":7.2000,\"publicationDate\":\"2024-11-19\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Computer Physics Communications\",\"FirstCategoryId\":\"101\",\"ListUrlMain\":\"https://www.sciencedirect.com/science/article/pii/S0010465524003606\",\"RegionNum\":2,\"RegionCategory\":\"物理与天体物理\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q1\",\"JCRName\":\"COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Computer Physics Communications","FirstCategoryId":"101","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0010465524003606","RegionNum":2,"RegionCategory":"物理与天体物理","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS","Score":null,"Total":0}
引用次数: 0
摘要
我们介绍的 torchami 是算法松原积分(AMI)的高级实现,它利用 pytorch 作为后端,提供简便的并行化和 GPU 支持。AMI 是一种用于分析解决嵌套松原积分序列的工具,几乎所有费曼微扰展开中都会出现嵌套松原积分。在本实现中,我们介绍了一种新的 AMI 算法,它为费曼积分创建了一种更自然的符号表示。此外,我们还提供了外围工具,可以导入和标注简单的图结构,并将其转换为 torchami 输入。代码以 c++ 编写,并提供了 python 绑定。程序摘要程序标题:torchamiCPC 库程序文件链接:https://doi.org/10.17632/m79hnngy8s.1Developer's repository 链接:https://github.com/mdburke11/torchami/releases/tag/v1.0Licensing 规定:GPLv3 编程语言解决问题的方法:torchami 提供了一个框架,通过重复应用多极残差定理,以符号方式生成并存储时间松原和的解析解。解法采用树形结构存储,适用于任意乘积和费米/玻色函数之和,评估函数同时支持 CPU 和 GPU,并可自动并行处理批量采样问题:Requires C++17 standard, the boost graph library, as well as pytorch.References[1]Amir Taheridehkordi, S. H. Curnoe, and J. P. F. LeBlanc, Algorithmic Matsubara integration for Hubbard-like models, Phys. Rev. B 99 035120 (2019).[2]H. Elazab, B. D. Matsubara integration for Hubbard-like models, Phys. Rev. B 99 035120 (2019).Elazab, B. D. E. McNiven, and J. P. F. LeBlanc, LIBAMI: Implementation of algorithmic Matsubara integration, Computer Physics Communications 280, 108469 (2022).
TorchAmi: Generalized CPU/GPU implementation of algorithmic matsubara integration
We present torchami, an advanced implementation of algorithmic Matsubara integration (AMI) that utilizes pytorch as a backend to provide easy parallelization and GPU support. AMI is a tool for analytically resolving the sequence of nested Matsubara integrals that arise in virtually all Feynman perturbative expansions. In this implementation we present a new AMI algorithm that creates a more natural symbolic representation of the Feynman integrands. In addition, we include peripheral tools that allow for import and labeling of simple graph structures and conversion to torchami input. The code is written in c++ with python bindings provided.
Program summary
Program Title: torchami
CPC Library link to program files:https://doi.org/10.17632/m79hnngy8s.1
Nature of problem: Feynman diagrams are pictorial representations of perturbative expansions often formulated in the imaginary frequency/time axis and involve a high-dimensional sequence of nested integral over spatial and temporal degrees of freedom.
Solution method:torchami provides a framework to symbolically generate and store the analytic solution to the temporal Matsubara sums through repeated application of multipole residue theorems. The solutions are stored using a tree structure for arbitrary products and sums of Fermi/Bose functions, and the evaluation functions provide both CPU and GPU support with automatic parallelization for batch sampling problems.
Additional comments including restrictions and unusual features: Requires C++17 standard, the boost graph library, as well as pytorch.
References
[1]
Amir Taheridehkordi, S. H. Curnoe, and J. P. F. LeBlanc, Algorithmic Matsubara integration for Hubbard-like models, Phys. Rev. B 99 035120 (2019).
[2]
H. Elazab, B. D. E. McNiven, and J. P. F. LeBlanc, LIBAMI: Implementation of algorithmic Matsubara integration, Computer Physics Communications 280, 108469 (2022)
期刊介绍:
The focus of CPC is on contemporary computational methods and techniques and their implementation, the effectiveness of which will normally be evidenced by the author(s) within the context of a substantive problem in physics. Within this setting CPC publishes two types of paper.
Computer Programs in Physics (CPiP)
These papers describe significant computer programs to be archived in the CPC Program Library which is held in the Mendeley Data repository. The submitted software must be covered by an approved open source licence. Papers and associated computer programs that address a problem of contemporary interest in physics that cannot be solved by current software are particularly encouraged.
Computational Physics Papers (CP)
These are research papers in, but are not limited to, the following themes across computational physics and related disciplines.
mathematical and numerical methods and algorithms;
computational models including those associated with the design, control and analysis of experiments; and
algebraic computation.
Each will normally include software implementation and performance details. The software implementation should, ideally, be available via GitHub, Zenodo or an institutional repository.In addition, research papers on the impact of advanced computer architecture and special purpose computers on computing in the physical sciences and software topics related to, and of importance in, the physical sciences may be considered.