之前从qiime2的更新介绍中了解到了这个模块,这里再详细了解一下!哪天用起来呀!
简介
Parsl是一个基于Python的开源(https://github.com/Parsl/parsl)并行编程库,使用户能够并行化 Python 程序并在各类计算资源(例如个人电脑、集群和超算集群)上扩展且高效地运行它们。
-
纯Python, 轻松并行化 Python 代码Parsl 提供了一种直观的、pythonic 的方式来通过注释“apps”来并行化代码:Python 函数或并发运行的外部应用程序。自然并行编程!
-
隐式数据流。应用在遵守数据依赖关系的同时并发执行Parsl 创建任务及其数据依赖关系的动态图。仅当满足任务的依赖关系时,才会执行任务。 -
可扩展的 Jupyter notebook。轻松管理跨分布式资源的执行。Parsl 与 Jupyter notebook无缝协作,允许笔记本中的应用程序并行执行并在远程资源上执行。
-
一次编写,随处运行。从笔记本电脑到超级计算机Parsl 脚本独立于执行环境。可以在一个或多个执行资源上执行单个脚本,而无需修改脚本。
Parsl已应用于多个科学领域的工作流中,在多个大型超算集群部署和验证,如美国国家能源研究科学计算中心(NESRC)等。相关论文(Parsl: Pervasive Parallel Programming in Python)获HPDC 2019大会最佳论文提名,更多介绍可查看Parsl主页(https://parsl-project.org/)。
快速开始
Parsl 需要 Python3.8+,并且已经在 Linux 和 macOS 上进行了测试。
使用 Pip 安装
虽然pip
可用于安装 Parsl,但我们建议使用以下方法当许多 Python 环境可用时进行可靠安装。
$ python3 -m pip install parsl
要将以前安装的 parsl 更新到较新版本,请使用:
python3 -m pip install -U parsl
使用 Conda 进行安装
-
创建并激活新的 conda 环境:
$ conda create --name parsl_py38 python=3.8
$ source activate parsl_py38
$ python3 -m pip install parsl
# or
$ conda config --add channels conda-forge
$ conda install parsl
开始
Parsl与Python的原生并发库有很多共同之处, 但释放Parsl的潜力需要了解几个主要概念。
Parsl 程序提交要在分布在远程计算机上的工作线程上运行的任务。这些任务的说明包含在用户使用 Python 函数定义的“应用程序”中。每台远程计算机(例如,超级计算机上的节点)都有一个管理工作线程的“执行器”。Parsl 可用的远程资源由“提供者”获取, 它将执行器放置在具有“启动器”的系统上。任务执行由在本地系统上运行的“数据流内核”代理。
应用程序类型
Parsl 支持并发执行 Python 函数 (python_app
) 或外部应用程序 (bash_app
)。两者的逻辑都由标有 Parsl 装饰器的 Python 函数描述。调用修饰的函数时,它们在其他资源上异步运行。调用 Parsl 应用程序的结果是 AppFuture
, 它的行为就像一个 Python 未来。
下面的示例演示如何编写一个简单的 Parsl 程序 与hello world Python和Bash应用程序。
>import parsl
from parsl import python_app, bash_app
parsl.load()
@python_app
def hello_python (message):
return 'Hello %s' % message
@bash_app
def hello_bash(message, stdout='hello-stdout'):
return 'echo "Hello %s"' % message
# invoke the Python app and print the result
print(hello_python('World (Python)').result())
# invoke the Bash app and read the result from a file
hello_bash('World (Bash)').result()
with open('hello-stdout', 'r') as f:
print(f.read())
详细教程
了解有关 Parsl 的更多信息的最佳方式是查看 Parsl 教程。遵循本教程有几个选项:
-
使用 Binder 在线学习教程,无需在本地安装或编写任何代码。
-
使用本地 Parsl 安装克隆 Parsl 教程存储库。
-
通读在线教程文档。
彩蛋
还有个专门的节日呢!2023 年帕斯尔节 – 帕斯尔社区会议(10月19-20日)
第五届ParslFest社区会议将在20日中午左右开始,当天和20日上午进行会谈。20日下午将是一个公开的黑客会议,用于动手工作、黑客攻击、测试、自带代码等。现场部分将在芝加哥大学举行。
会议汇集了来自世界各地的研究人员、开发人员和网络基础设施专家 讨论使用和开发Parsl和Globus Compute(以前称为funcX)的经验 – 与Parsl相关的联合功能即服务平台。
注册是免费的,我们希望您能做一个闪电般的演讲,描述您使用Parsl或Globus Compute的工作
我们有一些资金可用于支持前往研讨会的旅行(航班和住宿)。请联系凯尔·查德(chard@uchicago.edu)获取信息。
本篇文章来源于微信公众号:微因