Dask For 并行循环

2023-11-23

我正在尝试找到使用带有 dask 延迟的 for 循环的正确语法。我找到了几个教程和其他问题,但没有一个适合我的条件,这是非常基础的。

首先,这是并行运行 for 循环的正确方法吗?

%%time

list_names=['a','b','c','d']
keep_return=[]

@delayed
def loop_dummy(target):
    for i in range (1000000000):
        pass
    print('passed value is:'+target)
    return(1)


for i in list_names:
    c=loop_dummy(i)
    keep_return.append(c)


total = delayed(sum)(keep_return)
total.compute()

这产生了

passed value is:a
passed value is:b
passed value is:c
passed value is:d
Wall time: 1min 53s

如果我连续运行这个,

%%time

list_names=['a','b','c','d']
keep_return=[]


def loop_dummy(target):
    for i in range (1000000000):
        pass
    print('passed value is:'+target)
    return(1)


for i in list_names:
    c=loop_dummy(i)
    keep_return.append(c)

它实际上更快。

passed value is:a
passed value is:b
passed value is:c
passed value is:d
Wall time: 1min 49s

我见过一些例子,其中指出 Dask 有少量开销,但这似乎需要足够长的时间才能证明合理,不是吗?

我的实际 for 循环涉及更繁重的计算,其中我为各种目标构建模型。


这个计算

for i in range(...):
    pass

受全局解释器锁 (GIL) 约束。您将需要使用多处理或 dask.distributed Dask 后端,而不是默认的线程后端。我推荐以下内容:

total.compute(scheduler='multiprocessing')

但是,如果您的实际计算主要是 Numpy/Pandas/Scikit-Learn/其他数字包代码,那么默认的线程后端可能是正确的选择。

有关在调度程序之间进行选择的更多信息,请参见此处:http://dask.pydata.org/en/latest/scheduling.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dask For 并行循环 的相关文章

  • 核心 4D 图像 tif 存储为 hdf5 python

    我有 27GB 的 2D tiff 文件 代表 3D 图像电影的切片 我希望能够像简单的 numpy4d 数组一样对这些数据进行切片 看起来 dask array 是一个很好的工具 可以在数组作为 hdf5 文件存储在内存中后干净地操作数组
  • Pandas 数据帧太大而无法附加到 dask 数据帧?

    我不确定我在这里缺少什么 我认为 dask 可以解决我的内存问题 我有 100 多个以 pickle 格式保存的 pandas 数据帧 我希望将它们全部放在同一个数据框中 但不断遇到内存问题 我已经增加了 jupyter 中的内存缓冲区 看
  • Dask Dataframe 将列表的列拆分为多列

    在 Pandas 中可以轻松完成相同的任务 import pandas as pd df pd DataFrame lists i i 1 for i in range 10 df left right pd DataFrame x for
  • 如何使用 Dask.array 高效地将大型 numpy 数组发送到集群

    我的本地计算机上有一个大型 NumPy 数组 我想将其与集群上的 Dask array 并行化 import numpy as np x np random random 1000 1000 1000 然而 当我使用 dask array
  • dask 持久行为不一致

    如果我注释掉这一行 我发现 dask 的奇怪行为仍然存在 client Client memory limit 20GB n workers 1 Connect to distributed cluster and override def
  • 在“from_delayed”JSON 文件中发现 DASK 元数据不匹配

    我刚刚开始我的冒险DASK我正在学习 json 格式的示例数据集 我知道对于初学者来说这不是世界上最简单的数据格式 我有一个数据集json格式 我通过加载数据dd read json到数据框 一切顺利 问题发生在 例如 compute or
  • Dask 中的遮罩

    我只是想知道是否有人可以帮助我展示如何使用 dask 在掩码数组上应用 sum 或 mean 等函数 我希望仅计算没有掩码的值的数组的总和 平均值 Code import dask array as da import numpy as n
  • 以内存高效的方式将大型 csv 读入稀疏 pandas 数据帧

    熊猫read csv函数似乎没有稀疏选项 我有 csv 数据 里面有很多零 它压缩得很好 并且去掉了任何0值将其减小到几乎原始大小的一半 我尝试先将其加载到密集矩阵中read csv然后打电话to sparse 但它需要很长时间并且在文本字
  • 演员和幕后工作者

    client Client 127 0 0 1 8786 direct to workers True future1 client submit Counter workers ninja actor True counter1 futu
  • 如何正确使用dask的upload_file()将本地代码传递给worker

    我有一个函数local code py我想通过 dask 传递给工作人员的文件 我在这里看到了问题的答案 说这可以使用upload file 功能 但我似乎无法让它工作 因为我仍然得到ModuleNotFoundError 相关部分代码如下
  • 在 Pandas DataFrame 中保留具有一定数量的非 NaN 条目的索引

    假设我有以下数据框 df1 pd DataFrame data 1 np nan np nan 1 1 np nan 1 1 1 columns X index a a a b b b c c c print df1 X a 1 0 a N
  • 在 SageMath 中运行时使用 Dask 会抛出 ImportError

    最近 我一直在尝试使用 Dask 并行化一些 Sage 运行 OSX 11 2 3 的 MacBook Pro 上的 Sage 9 4 代码 我遇到的问题是 虽然我可以在 Sage 中运行 Dask 但每当我包含任何非 纯 python 代
  • 使用 dask 加载大型数据集

    我处于具有集群 紧密耦合互连和支持 Lustre 文件系统的 HPC 环境中 我们一直在探索如何利用 Dask 不仅提供计算 而且充当分布式缓存来加速我们的工作流程 我们专有的数据格式是 n 维且规则的 并且我们编写了一个惰性读取器以传递到
  • Dask 中的二维布尔索引

    我想使用 Dask 进行二维索引 这是该任务的示例 array1 xr DataArray 1 3 4 7 6 4 15 2 chunk 2 array2 xr DataArray 1 3 4 9 1 4 3 2 chunk 2 array
  • 如何在 dask/distributed 中存储工作线程局部变量

    使用dask 0 15 0 分布式1 17 1 我想记住每个工作人员的一些事情 比如访问谷歌云存储的客户端 因为实例化它是昂贵的 我宁愿将其存储在某种工作者属性中 执行此操作的规范方法是什么 或者全局变量是正确的选择吗 关于工人 您可以通过
  • 如何获得DataFrame的n个最长条目?

    我正在尝试获取 dask DataFrame 的 n 个最长条目 我尝试打电话nlargest https docs dask org en latest dataframe api html dask dataframe DataFram
  • dask 可以用于在核心之外进行分组和重新编码吗?

    我有 8GB csv 文件和 8GB RAM 每个文件每行有两个字符串 格式如下 a c c a f g a c c a b f c a 对于较小的文件 我删除重复项 计算前两列中每行的副本数 然后将字符串重新编码为整数如下 https s
  • dask groupby 不合并分区

    我有一组数据 我想要对其进行一些简单的 groupby count 操作 但我似乎无法使用 dask 来完成此操作 我很可能不理解 dask 中执行 groupby reduce 的方式 特别是当索引位于分组键中时 所以我将用玩具数据来说明
  • dask apply:AttributeError:“DataFrame”对象没有属性“name”

    我有一个参数数据框 并对每一行应用一个函数 该函数本质上是几个 sql queries 和对结果的简单计算 我正在尝试利用 Dask 的多处理 同时保持结构和界面 下面的例子有效并且确实有显着的提升 def get metrics row
  • Pandas hub_table 更快的替代品

    我正在使用熊猫pivot table在大型数据集 1000 万行 6 列 上运行 由于执行时间至关重要 因此我尝试加快流程 目前 处理整个数据集大约需要 8 秒 这太慢了 我希望找到替代方案来提高速度 性能 我当前的 Pandas 数据透视

随机推荐

  • 使用 ssl 公钥/私钥基于 Web 登录?

    是否可以通过网络浏览器创建需要公钥 私钥的登录过程 公钥将存储在服务器上 私钥将由用户保存 并加密 我基本上想做一些类似于 SSH 的事情 但是通过网络 也许是 HTTP 身份验证的自定义方法 摘要 除外 我知道使用普通浏览器可能无法做到这
  • 使用数据库表中的值生成下拉列表输入

    我正在尝试使用 Laravel 生成一个包含 MySQL 表中的值的下拉列表 表格很简单 两列 id and category 以下将检索所有记录 类别 但返回一个对象而不是数组 这是我需要的下拉代码 categories Category
  • 如何在Python中制作n维嵌套for循环? [复制]

    这个问题在这里已经有答案了 我有以下情况 for x1 in range x1 x2 for x2 in range x3 x4 for x3 f x1 x2 x3 如何将其转换为我只告诉 python 的机制n变量名称为 x1 x2 x3
  • 检测这是 iframe 加载还是直接加载

    我希望仅在 iframe 内的页面上拉出表单时才显示该表单 我怎么做 有服务器端解决方案吗 如果您使用 JQuery 安装说明如下 http jquery com document ready function if window wind
  • 指针和引用作为 const 对象的成员变量

    以下代码编译良好 不过我想知道它是否是合法的C 更具体地说 如果我有一个 const 对象 我是否可以通过该对象的指针 引用修改变量 class Foo public int a int b Foo int a int b a a b b
  • 关于Python日志记录中的NOTSET

    As the logger setLevel医生说 创建记录器时 级别设置为 NOTSET 这会导致当记录器是根记录器时处理所有消息 或者当记录器是非根记录器时将委托给父记录器 请注意 根记录器是使用 警告 级别创建的 所以我想如果我创建一
  • Angular:为什么 CSS 对齐不能与 ng-repeat 一起使用?

    我正在尝试做什么 我正在尝试均匀分布li in a ul 证明合法 当我硬编码时 CSS 可以工作li 但是当我使用ng repeat 不再应用CSS HTML div div ul class two column li li li li
  • Postgres 在全局范围内设置自动提交关闭

    如何在 psql 8 4 中全局级别设置自动提交 是否有一个我可以更改的配置属性 它将为集群上的所有数据库引入此行为 以在关闭自动提交的情况下启动数据库会话 只需添加以下内容即可 psqlrc set AUTOCOMMIT off 请注意
  • Dockerfile CMD“未找到命令”

    我有以下内容Dockerfile FROM nodesource node jessie ADD SOMEPATH RUN cd SOMEPATH npm install WORKDIR SOMEPATH CMD bash npm run
  • O(1) 和 θ(1) 有什么区别?

    我知道它们的定义 但是为什么我有时在教科书上看到O 1 有时看到 1 Thanks 如果您谈论的是实数函数 则 O 1 和 1 不一定相同 例如 考虑函数 f n 1 n 该函数的复杂度为 O 1 因为对于任何 n 1 f n 1 然而 它
  • NetworkStream 和 TcpClient 有多少缓冲区?

    我们正在编写一个TCP服务器和客户端程序 TcpClient 缓冲区有多少空间 比如 它什么时候会开始丢弃数据 我们正在尝试确定 TcpClient 是否可以阻塞 或者是否应该进入它自己的后台线程 以便缓冲区不会变满 您可以从以下位置获取缓
  • 如何正确处理 Angular 中滚动条的导航栏颜色变化?

    我正在做一个有角度的项目 我想添加一个最初具有透明背景的导航栏 但在滚动时它会改变其颜色 我正在为此使用引导类 我的导航栏标题是 html 代码
  • 如何在 Windows 上使用 xgettext 创建 .po 文件?

    我正在关注有关使用 PHP gettext 构建多语言网站的教程http onlamp com pub a php 2002 06 13 php html 我理解教程直到这一部分 拥有所有目录后 准备好了 是时候创建了 实际的 pot 文件
  • 使用 python 请求进行 twitter 抓取时如何执行 oauth

    我正在尝试检索用户最近的 100 条推文 它与 Python 中的 tweepy 模块配合良好 但是我怎样才能对 python 中的请求做同样的事情呢 我想要做 import requests r requests get https ap
  • 尝试使用 DatePicker 时不起作用[重复]

    这个问题在这里已经有答案了 可能的重复 Android CalendarView 类找不到 我尝试在布局中放置一个日期选择器 但它只显示 DatePicker 和这个错误 The following classes could not be
  • 关于javaagents的教程[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想了解一些有关 javaagents 的知识 但研究并不容易 大部分结果是指JADE 我知道java代理有两层含义 用 Java 编写的代理是代理
  • 如何在 x86 中使用 CPUID 指令接收 L1、L2 和 L3 缓存大小

    我在准备一个汇编x86项目时遇到了一个问题 该项目的主题是编写一个获取L1数据 L1代码 L2和L3缓存大小的程序 我尝试在英特尔文档和互联网中查找一些内容 但失败了 主要问题是 对于 AMD 处理器 只需将 EAX 寄存器设置为 8000
  • Internet Explorer 自动切换到兼容模式(IE9 和 IE10)

    在我网站的某些页面上 Internet Explorer 自动切换到兼容模式并尝试在兼容视图 IE7 模式 中呈现该页面 URL 也会添加到兼容性视图列表中 就我而言 这是由于某些 CSS 使用 Type 1 字体 黑体 Internet
  • 如何放心地登录到文本文件中可打印的内容

    我正在研究一种方法 尝试使用 log4j 将默认的放心日志 转到控制台 更改为文件 这是一个 JUnit 项目 其方法最终调用 REST 外观 该外观具有类似这样的方法 private ResponseSpecification respo
  • Dask For 并行循环

    我正在尝试找到使用带有 dask 延迟的 for 循环的正确语法 我找到了几个教程和其他问题 但没有一个适合我的条件 这是非常基础的 首先 这是并行运行 for 循环的正确方法吗 time list names a b c d keep r