冰下地形快速地质统计模拟的Python多处理方法

IF 1.8 4区 计算机科学 Q3 COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS
Nathan W. Schoedl, Emma J. MacKie, Michael J. Field, Eric A. Stubbs, Allan Zhang, Matthew Hibbs, Mathieu Gravey
{"title":"冰下地形快速地质统计模拟的Python多处理方法","authors":"Nathan W. Schoedl, Emma J. MacKie, Michael J. Field, Eric A. Stubbs, Allan Zhang, Matthew Hibbs, Mathieu Gravey","doi":"10.1109/mcse.2023.3317773","DOIUrl":null,"url":null,"abstract":"Realistically rough stochastic realizations of subglacial bed topography are crucial for improving our understanding of basal processes and quantifying uncertainty in sea-level rise projections with respect to topographic uncertainty. This can be achieved with Sequential Gaussian Simulation (SGS), which is used to generate multiple non-unique realizations of geological phenomena that sample the uncertainty space. However, SGS is very CPU intensive with a computational complexity of O( <italic xmlns:mml=\"http://www.w3.org/1998/Math/MathML\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">Nk</i> <sup xmlns:mml=\"http://www.w3.org/1998/Math/MathML\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">3</sup> ), where <italic xmlns:mml=\"http://www.w3.org/1998/Math/MathML\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">N</i> is the number of grid cells to simulate, and <italic xmlns:mml=\"http://www.w3.org/1998/Math/MathML\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">k</i> is the number of neighboring points used for conditioning. This complexity makes SGS prohibitively time-consuming to implement at ice-sheet scales or fine resolutions. To reduce the time-cost, we implement and test a multiprocess version of SGS using Python’s multiprocessing module. By parallelizing the calculation of the weight parameters used in SGS, we achieve a speedup of 9.5 running on 16 processors for an <italic xmlns:mml=\"http://www.w3.org/1998/Math/MathML\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">N</i> of 128,097. This speedup, as well as the speedup from using multiple processors, increases with <italic xmlns:mml=\"http://www.w3.org/1998/Math/MathML\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">N</i> . This speed improvement makes SGS viable for large-scale topography mapping and ensemble ice-sheet modeling. Additionally, we have made our code repository and user tutorials publicly available (GitHub, Zenodo that others can use our multiprocess implementation of SGS on different datasets.","PeriodicalId":10553,"journal":{"name":"Computing in Science & Engineering","volume":"19 1","pages":"0"},"PeriodicalIF":1.8000,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"A Python multiprocessing approach for fast geostatistical simulations of subglacial topography\",\"authors\":\"Nathan W. Schoedl, Emma J. MacKie, Michael J. Field, Eric A. Stubbs, Allan Zhang, Matthew Hibbs, Mathieu Gravey\",\"doi\":\"10.1109/mcse.2023.3317773\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Realistically rough stochastic realizations of subglacial bed topography are crucial for improving our understanding of basal processes and quantifying uncertainty in sea-level rise projections with respect to topographic uncertainty. This can be achieved with Sequential Gaussian Simulation (SGS), which is used to generate multiple non-unique realizations of geological phenomena that sample the uncertainty space. However, SGS is very CPU intensive with a computational complexity of O( <italic xmlns:mml=\\\"http://www.w3.org/1998/Math/MathML\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\">Nk</i> <sup xmlns:mml=\\\"http://www.w3.org/1998/Math/MathML\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\">3</sup> ), where <italic xmlns:mml=\\\"http://www.w3.org/1998/Math/MathML\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\">N</i> is the number of grid cells to simulate, and <italic xmlns:mml=\\\"http://www.w3.org/1998/Math/MathML\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\">k</i> is the number of neighboring points used for conditioning. This complexity makes SGS prohibitively time-consuming to implement at ice-sheet scales or fine resolutions. To reduce the time-cost, we implement and test a multiprocess version of SGS using Python’s multiprocessing module. By parallelizing the calculation of the weight parameters used in SGS, we achieve a speedup of 9.5 running on 16 processors for an <italic xmlns:mml=\\\"http://www.w3.org/1998/Math/MathML\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\">N</i> of 128,097. This speedup, as well as the speedup from using multiple processors, increases with <italic xmlns:mml=\\\"http://www.w3.org/1998/Math/MathML\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\">N</i> . This speed improvement makes SGS viable for large-scale topography mapping and ensemble ice-sheet modeling. Additionally, we have made our code repository and user tutorials publicly available (GitHub, Zenodo that others can use our multiprocess implementation of SGS on different datasets.\",\"PeriodicalId\":10553,\"journal\":{\"name\":\"Computing in Science & Engineering\",\"volume\":\"19 1\",\"pages\":\"0\"},\"PeriodicalIF\":1.8000,\"publicationDate\":\"2023-05-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Computing in Science & Engineering\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/mcse.2023.3317773\",\"RegionNum\":4,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q3\",\"JCRName\":\"COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Computing in Science & Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/mcse.2023.3317773","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS","Score":null,"Total":0}
引用次数: 0

摘要

实际上,冰下床地形的粗略随机实现对于提高我们对基础过程的理解和量化海平面上升预测中与地形不确定性相关的不确定性至关重要。这可以通过顺序高斯模拟(SGS)来实现,该方法用于生成采样不确定性空间的地质现象的多个非唯一实现。然而,SGS是非常CPU密集的,其计算复杂度为0 (Nk 3),其中N是要模拟的网格单元的数量,k是用于条件反射的邻近点的数量。这种复杂性使得SGS在冰盖尺度或精细分辨率下的执行非常耗时。为了减少时间成本,我们使用Python的多进程模块实现并测试了SGS的多进程版本。通过并行计算SGS中使用的权重参数,我们在16个处理器上实现了9.5的加速,N为128,097。这个加速,以及使用多个处理器的加速,随着N的增加而增加。这种速度的提高使SGS能够用于大规模地形测绘和整体冰盖建模。此外,我们已经公开了我们的代码库和用户教程(GitHub, Zenodo),以便其他人可以在不同的数据集上使用我们的多进程SGS实现。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
A Python multiprocessing approach for fast geostatistical simulations of subglacial topography
Realistically rough stochastic realizations of subglacial bed topography are crucial for improving our understanding of basal processes and quantifying uncertainty in sea-level rise projections with respect to topographic uncertainty. This can be achieved with Sequential Gaussian Simulation (SGS), which is used to generate multiple non-unique realizations of geological phenomena that sample the uncertainty space. However, SGS is very CPU intensive with a computational complexity of O( Nk 3 ), where N is the number of grid cells to simulate, and k is the number of neighboring points used for conditioning. This complexity makes SGS prohibitively time-consuming to implement at ice-sheet scales or fine resolutions. To reduce the time-cost, we implement and test a multiprocess version of SGS using Python’s multiprocessing module. By parallelizing the calculation of the weight parameters used in SGS, we achieve a speedup of 9.5 running on 16 processors for an N of 128,097. This speedup, as well as the speedup from using multiple processors, increases with N . This speed improvement makes SGS viable for large-scale topography mapping and ensemble ice-sheet modeling. Additionally, we have made our code repository and user tutorials publicly available (GitHub, Zenodo that others can use our multiprocess implementation of SGS on different datasets.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
Computing in Science & Engineering
Computing in Science & Engineering 工程技术-计算机:跨学科应用
CiteScore
4.20
自引率
0.00%
发文量
77
审稿时长
6-12 weeks
期刊介绍: Physics, medicine, astronomy -- these and other hard sciences share a common need for efficient algorithms, system software, and computer architecture to address large computational problems. And yet, useful advances in computational techniques that could benefit many researchers are rarely shared. To meet that need, Computing in Science & Engineering presents scientific and computational contributions in a clear and accessible format. The computational and data-centric problems faced by scientists and engineers transcend disciplines. There is a need to share knowledge of algorithms, software, and architectures, and to transmit lessons-learned to a broad scientific audience. CiSE is a cross-disciplinary, international publication that meets this need by presenting contributions of high interest and educational value from a variety of fields, including—but not limited to—physics, biology, chemistry, and astronomy. CiSE emphasizes innovative applications in advanced computing, simulation, and analytics, among other cutting-edge techniques. CiSE publishes peer-reviewed research articles, and also runs departments spanning news and analyses, topical reviews, tutorials, case studies, and more.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信