工作流引擎

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如何在任何一个特定端口收到短信时自动打开Android应用程序?   Android/Java如何创建int数组   Android Java:启动活动时出现问题,错误导致类片段膨胀   Java方法来接收请求并生成Oauth签名   PDFBox中的java渐变笔划   java如何使用字符串从数组列表中获取数据   java如何让WebSphere项目在tc server下运行?   scala SPARK:java。lang.IllegalStateException:找不到任何生成目录   java如何找到集合类型?   java如何编写Firebase Firestore多对多关系的读取规则   java ListView滚动方向   在Java中从URL播放wav文件时获得“UnsupportedFileException”音频   java将X&Y转换为Lat&Lon   数据结构如何知道Java中同一映射中是否有两个相同的元素   使用Java客户端创建ElasticSearch映射时发生AbstractMethodError   java如何从Android Studio中的倒计时计时器返回标志数组的值?   Java将char从方法传递回main   c#。适用于windows mobile的Net web浏览器