工作流引擎

Noodles的Python项目详细描述


| rtfd travis zenodo codecov

面条-python的简单并行编程

通常,计算机程序可以通过在 parallel(同时),而不是synchronously(在 另一个)。

一个简单的例子可能是您分配两个变量,如下所示a = 2 * i 以及b = 3 * i。这两个语句都只依赖于i,但是 在b之前指定a或者反之亦然,这与您的程序如何 作品。无论什么时候,都有可能加速一个程序, 因为ab的赋值可以并行完成,使用 你电脑的CPU上有多个内核。显然,对于简单的作业 a = 2 * i,时间不多,但是如果a是 耗时函数的结果,例如a = very_difficult_function(i)? 如果你的程序多次调用这个函数,比如list_of_a = [very_difficult_function(i) for i in list_of_i]?潜在的加速可能 太棒了。

所以,计算机程序的并行执行对于提高性能是很有帮助的, 但是你如何告诉计算机哪些部分应该并行执行,以及 哪些部分应该同步执行?您如何确定订单 由于最佳顺序可能不同于 部件在程序中出现的顺序。这些问题很快就变成 当你的程序在 发展。因此,许多开发人员接受 程序只是因为它避免了与保持 跟踪程序的哪些部分取决于哪些其他部分。

吃面条。

面条是一个python包,它可以自动构造一个callgraph 对于给定的python程序,精确列出哪些部分取决于哪些部分。 此外,noodles随后可以使用callgraph并行执行代码 在使用多核的本地计算机上。如果你愿意,你甚至可以 配置面条,使其能够远程执行代码,例如在 群集计算机中的大型计算节点。

安装

从pypi安装最新版本:

。代码::bash

pip install noodles

或者,如果克隆此存储库,

。代码::bash

git clone git@github.com:NLeSC/noodles.git
cd noodles
pip install .

要启用Xenon进行远程执行,必须安装Java,并且Xenon 可使用

安装

。代码::bash

pip install '.[xenon]'

如果找不到Java(Xenon需要),请运行

。代码::bash

export JAVA_HOME="/usr/lib/jvm/default-java"  # or similar...

在shell初始化脚本中(比如~/.bashrc)。

要启用基于tinydb的作业数据库,请运行

。代码::bash

pip install '.[prov]'

如果要中断正在运行的工作流并继续 您离开或在多次运行中重用结果。

要运行单元测试,请运行

。代码::bash

pip install '.[test]'
tox

有些测试取决于正在安装的可选模块。如果 如果进口失败。如果你想测试所有的东西,确保你有核 也安装了。

文档

所有最新的文档都可以在Read the Docs <https://noodles.rtfd.io/>上找到。

。|特拉维斯图片:https://travis-ci.org/NLeSC/noodles.svg?branch=master :目标:https://travis-ci.org/NLeSC/noodles :alt:特拉维斯 ……|泽诺多图像:https://zenodo.org/badge/45391130.svg :目标:https://zenodo.org/badge/latestdoi/45391130 :alt:doi选项 ……| codecov图像:https://codecov.io/gh/NLeSC/noodles/branch/master/graph/badge.svg :目标:https://codecov.io/gh/NLeSC/noodles ……| rtfd图像:https://readthedocs.org/projects/noodles/badge/?version=latest :目标:https://noodles.readthedocs.io/en/latest/?badge=latest :alt:文档状态

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java结合两个Date实例使用Joda创建datetime   带有POI和FileOutputStream的java Swing应用程序性能问题   Java中是否存在类似于Python的异常?   Java中有界通配符的泛型   使用字符和子字符串的java不同输出   在Java中获取LDAP模式   java自定义类在自身上生成ClassNotFoundException   java连接到从internet到通过LAN连接到internet的系统的serversocket   java如何通过maven在jaxws中使用jaxb插件?   java Kerberos如何获取主体或客户端名称?   java应用服务器中是否有JDBC的单点登录解决方案?   java是存储矩阵值以便以后访问的更好方法   Java等级计算器。开始这门课我需要一些帮助   未找到Android“libc++\u shared.so”中的java OpenCV实现   当我使用web配置部署描述符时使用java。xml。它显示了错误   java为什么我的ArrayList的add方法冲突,如何编辑我的自定义add方法   java创建一个以集合为键的映射?   java如何将用户输入到数字三角形中   为什么Java在读取LinkedHashMap时会自动从字符串转换为整数   类动态创建和读取java类