使用dask在网络上广播的并行化功能的问题

德克兰海湾

我正在寻求并行处理一个函数,该函数采用多个一维范围(形式为np.linspace(x,y,t))的数字输入值(此变量是变量,但可以说需要五个),在这些范围之外创建网格,然后求值一些(5维)成本函数,用于此网格。在当前形式下,它看起来像这样:

def func_5d(a,b,c,d,e):
    return a + b + c + d + e

def range_search(a_range, b_range, c_range, d_range, e_range):
    mesh = itertools.product(a_range, b_range, c_range, d_range, e_range)
    func_eval = map(lambda x: (func_5d(np.array(x)), x), mesh)
    return func_eval

所以,在这里我要并行化功能 range_search使用dask。理想情况下,这可以通过创建一个简单的网格来完成,然后可以对其进行分块,然后使用多线程或多核处理将其映射到我们的成本函数。查看dask文档,似乎dask.array没有包含任何合适的机制来实现此目的。从numpy库扩展了dask.array.meshgrid函数,但这不支持分块。此外,dask.array似乎没有包含并行映射功能。但是,dask.bag中有一个。但是文档似乎建议dask.bag仅用作执行原始数据(以CSV,JSON等格式)的初步处理的模块。Dask.bag对象也确实有一个名为product()的方法,该方法似乎模仿itertools.product;。但是,这仅需要其他一项。bag对象作为参数。因此,对5个数组进行网格划分需要这种称为“堆叠”(4次)的方法,除了丑陋的丑陋外,当输入数量可变时,该方法也无效。

从这里,我真的不知道该去哪里。我已经完成了很多草草的Jupyter笔记本的工作,但是它们似乎并没有解决我的问题。对于上述形式的并行化功能的最佳方法的任何建议,将不胜感激。

麦考林

我会为此使用Numpy Slicing

a[:, None, None] + b[None, :, None] + c[None, None, :]

您将要确保将输入向量精巧地分块,以使它们的乘积仍能舒适地容纳在内存中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

服务器在网络上使用Java序列化是否存在安全漏洞?

来自分类Dev

并行化Dask聚合

来自分类Dev

Windows XP在网络上是否有安全问题?

来自分类Dev

无法在网络上实例化播放器

来自分类Dev

使用python视图库的并行化问题

来自分类Dev

在网络上使用多种颜色的背景

来自分类Dev

使用Python和Flask在网络上更新图像

来自分类Dev

如何使用sshfs在网络上挂载Android的文件系统?

来自分类Dev

使用Automator在网络上搜索文件名

来自分类Dev

在网络上执行nmap

来自分类Dev

并行化功能

来自分类Dev

当多个用户同时在网络上时,是否存在减小无线范围的问题?

来自分类Dev

我的 React 应用程序放在网络上时出现的问题

来自分类Dev

不同网络上不同机器上的Python代码并行化

来自分类Dev

如何在网络控制台中使用let(或其他JS 1.7功能)?

来自分类Dev

使用循环功能的并行

来自分类Dev

动态CSS文件无法在网络上加载,可在Xampp上使用

来自分类Dev

使用 python Multiprocessing 并行化 Monte Carlo 方法时的问题

来自分类Dev

如何使用Numba + Dask适当地并行化通用代码

来自分类Dev

如何在网络上设置超时

来自分类Dev

Excel 2003在网络上打开文件

来自分类Dev

在网络PC上搜索用户SID

来自分类Dev

如何在网络上设置超时

来自分类Dev

在网络上移动文件夹

来自分类Dev

在网络上发布MVC应用

来自分类Dev

在网络上运行程序

来自分类Dev

在网络上保护Windows PC

来自分类Dev

如何在MySQL上使用IP和CIDR计算网络和广播地址

来自分类Dev

无法在网络模拟器上测试Google Assistant操作(错误云功能部署失败。关闭)