Pranab J. Deka , Alexander Moriggl, Lukas Einkemmer
{"title":"LeXInt:GPU 加速指数积分器软件包","authors":"Pranab J. Deka , Alexander Moriggl, Lukas Einkemmer","doi":"10.1016/j.softx.2024.101949","DOIUrl":null,"url":null,"abstract":"<div><div>We present an open-source <span>CUDA</span>-based package, for the temporal integration of differential equations, that consists of a compilation of exponential integrators where the action of the matrix exponential or the <span><math><msub><mrow><mi>φ</mi></mrow><mrow><mi>l</mi></mrow></msub></math></span> functions on a vector is approximated using the method of polynomial interpolation at Leja points. Using a couple of test examples on an NVIDIA A100 GPU, we show that one can achieve significant speedups using <span>CUDA</span> over the corresponding CPU code. <span>LeXInt</span>, written in a modular format, facilitates integration into existing software packages (written in <span>C++</span> or <span>CUDA</span>), for temporal integration of differential equations.</div></div>","PeriodicalId":21905,"journal":{"name":"SoftwareX","volume":"29 ","pages":"Article 101949"},"PeriodicalIF":2.4000,"publicationDate":"2024-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"LeXInt: GPU-accelerated exponential integrators package\",\"authors\":\"Pranab J. Deka , Alexander Moriggl, Lukas Einkemmer\",\"doi\":\"10.1016/j.softx.2024.101949\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div><div>We present an open-source <span>CUDA</span>-based package, for the temporal integration of differential equations, that consists of a compilation of exponential integrators where the action of the matrix exponential or the <span><math><msub><mrow><mi>φ</mi></mrow><mrow><mi>l</mi></mrow></msub></math></span> functions on a vector is approximated using the method of polynomial interpolation at Leja points. Using a couple of test examples on an NVIDIA A100 GPU, we show that one can achieve significant speedups using <span>CUDA</span> over the corresponding CPU code. <span>LeXInt</span>, written in a modular format, facilitates integration into existing software packages (written in <span>C++</span> or <span>CUDA</span>), for temporal integration of differential equations.</div></div>\",\"PeriodicalId\":21905,\"journal\":{\"name\":\"SoftwareX\",\"volume\":\"29 \",\"pages\":\"Article 101949\"},\"PeriodicalIF\":2.4000,\"publicationDate\":\"2024-11-21\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"SoftwareX\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://www.sciencedirect.com/science/article/pii/S2352711024003194\",\"RegionNum\":4,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q2\",\"JCRName\":\"COMPUTER SCIENCE, SOFTWARE ENGINEERING\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"SoftwareX","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S2352711024003194","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0
摘要
我们介绍了一个基于 CUDA 的开源软件包,用于微分方程的时间积分,该软件包由指数积分器汇编而成,其中矩阵指数函数或 φl 函数对矢量的作用是通过 Leja 点的多项式插值方法逼近的。通过在英伟达™(NVIDIA®)A100 GPU 上的几个测试示例,我们发现使用 CUDA 可以显著提高 CPU 代码的运算速度。以模块化格式编写的 LeXInt 可方便地集成到现有软件包(以 C++ 或 CUDA 编写)中,用于微分方程的时间积分。
We present an open-source CUDA-based package, for the temporal integration of differential equations, that consists of a compilation of exponential integrators where the action of the matrix exponential or the functions on a vector is approximated using the method of polynomial interpolation at Leja points. Using a couple of test examples on an NVIDIA A100 GPU, we show that one can achieve significant speedups using CUDA over the corresponding CPU code. LeXInt, written in a modular format, facilitates integration into existing software packages (written in C++ or CUDA), for temporal integration of differential equations.
期刊介绍:
SoftwareX aims to acknowledge the impact of software on today''s research practice, and on new scientific discoveries in almost all research domains. SoftwareX also aims to stress the importance of the software developers who are, in part, responsible for this impact. To this end, SoftwareX aims to support publication of research software in such a way that: The software is given a stamp of scientific relevance, and provided with a peer-reviewed recognition of scientific impact; The software developers are given the credits they deserve; The software is citable, allowing traditional metrics of scientific excellence to apply; The academic career paths of software developers are supported rather than hindered; The software is publicly available for inspection, validation, and re-use. Above all, SoftwareX aims to inform researchers about software applications, tools and libraries with a (proven) potential to impact the process of scientific discovery in various domains. The journal is multidisciplinary and accepts submissions from within and across subject domains such as those represented within the broad thematic areas below: Mathematical and Physical Sciences; Environmental Sciences; Medical and Biological Sciences; Humanities, Arts and Social Sciences. Originating from these broad thematic areas, the journal also welcomes submissions of software that works in cross cutting thematic areas, such as citizen science, cybersecurity, digital economy, energy, global resource stewardship, health and wellbeing, etcetera. SoftwareX specifically aims to accept submissions representing domain-independent software that may impact more than one research domain.