并行Lammps Python接口 - 从一个串行Python进程或Jupyter笔记本控制mpi4py并行LAMMPS实例
项目描述
pylammpsmpi - 并行LAMMPS Python接口
使用 pylammpsmpi
,您可以从一个串行Python进程或Jupyter笔记本控制一个 mpi4py
并行LAMMPS实例。内部,pylammpsmpi
利用 executorlib
通信接口将用户交互的串行Python进程与 mpi4py
并行LAMMPS实例连接起来。将 mpi4py
并行LAMMPS实例与整个工作流程分开的优势在于,工作流程可以编写为串行Python代码,同时仍然受益于LAMMPS的并行性能。然而,这会带来额外的数据传输成本,因为LAMMPS指针不能以这种方式传输,相关数据必须复制。因此,复制大型原子结构可能会降低与编写自己的完全 mpi4py
并行LAMMPS工作流程相比的 pylammpsmpi
接口性能。
接口
pylammpsmpi
模块针对不同的使用场景实现了三种不同的接口
pylammpsmpi.LammpsBase
:最基本的接口是LammpsBase
,它实现了与默认lammps.lammps
接口相同的命令,并返回相同的数据类型。通过此API与标准接口的兼容性,此接口通常是利用mpi4py
并行LAMMPS实例加速基于串行LAMMPS的工作流程的最简单方式。pylammpsmpi.LammpsConcurrent
:受标准Python库中concurrent.futures
模块的启发,pylammpsmpi.LammpsConcurrent
接口实现了与pylammpsmpi.LammpsBase
类相同的API,但它返回一个concurrent.futures.Future
对象,而不是在mpi4py
并行LAMMPS实例完成一组给定命令的执行之前保持控制进程。这使得开发异步/并发工作流程成为可能。pylammpsmpi.LammpsLibrary
:最后,pylammpsmpi.LammpsLibrary
接口在默认的lammps.lammps
接口之上添加了一个更高级的接口。此高级接口提供了对LAMMPS输入文件中使用的命令和热力学性质的直接访问。特别是对于熟悉LAMMPS输入文件的有经验的LAMMPS用户,此接口简化了从基于文件输入切换到使用Python接口的过程。
接口的选择取决于用户背景、经验和用户想要实现的模拟协议。尽管如此,内部所有三个接口都基于 pylammpsmpi.LammpsConcurrent
接口,因此它们使用一个额外的线程将 mpi4py
并行LAMMPS实例连接到串行Python进程或Jupyter笔记本。
文档
许可协议
pylammpsmpi
在BSD许可协议下发布 https://github.com/pyiron/pylammpsmpi/blob/main/LICENSE 。它是 pyiron
项目的一个分支 https://github.com/pyiron/pyiron ,因此如果您使用 pylammpsmpi
进行计算,并在科学出版物中发表了结果,请引用
@article{pyiron-paper,
title = {pyiron: An integrated development environment for computational materials science},
journal = {Computational Materials Science},
volume = {163},
pages = {24 - 36},
year = {2019},
issn = {0927-0256},
doi = {https://doi.org/10.1016/j.commatsci.2018.07.043},
url = {http://www.sciencedirect.com/science/article/pii/S0927025618304786},
author = {Jan Janssen and Sudarsan Surendralal and Yury Lysogorskiy and Mira Todorova and Tilmann Hickel and Ralf Drautz and Jörg Neugebauer},
keywords = {Modelling workflow, Integrated development environment, Complex simulation protocols},
}
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码发行版
构建发行版
pylammpsmpi-0.2.25.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8134ece624867d542494d8b44fafbc76121ee80ea9026a7396ce030686b71a89 |
|
MD5 | a8d969d4fac80543299e4a683d0bc02a |
|
BLAKE2b-256 | b5f8ccc8970c92c632dcc988bf203045f2637a0b98f70f73ad1ae674d731a335 |
pylammpsmpi-0.2.25-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7d32644f8bb0761f01def6655715691527df36b7e6f1a073c365502e24f33626 |
|
MD5 | 91599924729717a1e763199fa2c4970b |
|
BLAKE2b-256 | bd230b96b20c9110c96a37a33720f590508cda9511190a21d8fff28ea40faa59 |