Python 多处理和共享 numpy 数组

2024-02-12

我有一个问题,与此类似:

import numpy as np

C = np.zeros((100,10))

for i in range(10):
    C_sub = get_sub_matrix_C(i, other_args) # shape 10x10
    C[i*10:(i+1)*10,:10] = C_sub

因此,显然不需要将其作为串行计算来运行,因为每个子矩阵都可以独立计算。 我想使用多处理模块并为 for 循环创建最多 4 个进程。 我阅读了一些有关多处理的教程,但无法弄清楚如何使用它来解决我的问题。

感谢您的帮助


并行化该代码的一个简单方法是使用Pool https://docs.python.org/3.5/library/multiprocessing.html#multiprocessing.pool.Pool进程数:

pool = multiprocessing.Pool()
results = pool.starmap(get_sub_matrix_C, ((i, other_args) for i in range(10)))

for i, res in enumerate(results):
    C[i*10:(i+1)*10,:10] = res

我用过starmap https://docs.python.org/3.5/library/multiprocessing.html#multiprocessing.pool.Pool.starmap自从get_sub_matrix_C函数有多个参数(starmap(f, [(x1, ..., xN)]) calls f(x1, ..., xN)).

但请注意,序列化/反序列化可能需要大量时间和空间,因此您可能必须使用更底层的解决方案来避免这种开销。


您似乎正在运行过时的 python 版本。您可以更换starmap与平原map但是你必须提供一个带有单个参数的函数:

def f(args):
    return get_sub_matrix_C(*args)

pool = multiprocessing.Pool()
results = pool.map(f, ((i, other_args) for i in range(10)))

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

Python 多处理和共享 numpy 数组 的相关文章

随机推荐

  • 使用 cin 检查空行

    我想检查是否有空行作为输入来执行特定操作 我尝试使用 cin peek 并检查它是否等于 n 但它没有意义 a b c 空行 在这里 我想执行我的操作 a 我试过这段代码 char a b c cin gt gt a cin gt gt b
  • MS Access 中的一对一关系

    我在 MS Access 中的两个表之间创建一对一关系时遇到问题 当我创建关系时 它默认为 多对一 并且我没有看到更改它的选项 有没有办法做到这一点 Access没有这样的概念 您可以将两个表合并为一个表 也可以在两个表上为公共字段放置唯一
  • Tomcat 访问日志中的 HTTP 状态代码 500 ClientAbortException / 管道损坏

    我们使用 Kibana 设置了一些仪表板和可视化 以监控 tomcat 为 Spring Boot Web 应用程序生成的访问日志 我们特别关注状态代码为 5xx 的请求 事实证明 如果客户端请求资源 并且在请求正在进行时取消该请求 使用C
  • 在 vb.net 中关闭数据读取器的正确点

    我在 vb net 中有这段代码 reader myCommand ExecuteReader If reader HasRows Then While reader read End While End If 我应该在之后使用 reade
  • 闪亮:动态更改选项卡名称

    我正在开发一个应该处理多种语言的闪亮应用程序 我设法动态翻译应用程序的几乎所有元素 具体取决于selectInput选择语言 然而 困难的事情 仍然是navbarPage选项卡以及tabPanels在我的页面内 我不能改变他们的名字 我尝试
  • 美丽的汤和表抓取 - lxml 与 html 解析器

    我正在尝试使用 BeautifulSoup 从网页中提取表格的 HTML 代码 table class facts label table 我想知道为什么下面的代码适用于 html parser 并打印回来none如果我改变 html pa
  • 什么是顶点数组对象?

    我今天刚刚开始从本教程学习 OpenGL http openglbook com the book http openglbook com the book 我读到了第二章 画了一个三角形 除了 VAO 这个缩写可以吗 之外 我理解了所有内
  • iOS 7/8 UITableView Cell:两个具有动态高度的 UILabel,具有可变行高的自动布局

    因此 当我只有一个标签可以根据字符串的长度更改高度时 我可以使用自动布局设置动态高度大小 我的问题是 如果我添加另一个应该执行相同操作的 UILabel 事情就不会成功 我将内容拥抱优先级和压缩阻力都设置为 1000 我收到歧义警告 如果我
  • INNER JOIN 独特 ID

    我有以下代码 FROM CTE Order cte INNER JOIN tblOrders o ON cte OrderId o Id INNER JOIN tblOrderUnits ou ON o id ou OrderId INNE
  • javafx 中具有不同单元格值的 TableView

    在下面的代码中有 4 列 在 特定值 列中 可以添加不同类型的数据 如字符串 整数 日期等 但我想在同一列中在该单元格中输入的值旁边添加一个按钮 前提是该值是字符串 像这样的东西 名字 姓氏 年龄 特别价值 詹姆斯 史密斯 10 10 10
  • 从AVPlayer获取HLS的PCM数据

    这个问题在过去几年里似乎被问过几次 但没有人回答 我正在尝试处理来自 HLS 的 PCM 数据 并且必须使用 AVPlayer 这篇文章利用了本地文件https chritto wordpress com 2013 01 07 proces
  • #value 错误,但在 VBA 中有效

    以下函数引用自彭博社 当从 Sub 过程调用时 该函数可以工作 但不能作为工作表公式 有谁知道为什么 Public Function GetRatesSTATIC As Variant Application DisplayAlerts F
  • 使用 Google.Cloud.BigQuery.V2 实现 BigQuery 加载作业的幂等性

    您可以使用 Google Cloud BigQuery V2 中具有 CreateLoadJob 方法的 BigQueryClient 创建 csv 加载作业 以从 Google Cloud Storage 中的 csv 文件加载数据 如何
  • 使用 TensorFlow 对象检测 API 确定最大批量大小

    TF 对象检测 API 默认情况下会获取所有 GPU 内存 因此很难判断我可以进一步增加批处理大小多少 通常我只是继续增加它 直到出现 CUDA OOM 错误 另一方面 PyTorch 默认情况下不会占用所有 GPU 内存 因此很容易看到我
  • CDK/Cloudformation 中资源的逻辑 ID 中的哈希值

    每当我从 CDK 生成 cloudformation 模板时 我都会看到在逻辑 ids 中 它添加了某种哈希 那个哈希是什么意思 例如 测试4FCEEF4A 这个哈希值 4FCEEF4A 是如何生成的 资源的逻辑 ID 使用以下命令设置al
  • Firebase 数据库规则。当通配符的子元素 === auth.uid 时允许

    结构 accounts JGeRgwAUBM active true created 1468406951438 key JGeRgwAUBM Rules rules read false write false accounts uid
  • 将 ASP.Net Web Forms 项目部署到 Fedora 24

    这是我当前的设置 我的本地计算机 这是我在 Windows 10 上使用 Visual Studio 2015 Professional 启用 CloudflareFlexible SSL 创建和编程 ASP Net WebForms 项目
  • 在 PHP 中裁剪图像

    我想用 PHP 裁剪图像并保存文件 我知道你应该使用 GD 库 但我不知道如何使用 有任何想法吗 Thanks 你可以使用imagecopy裁剪图像的所需部分 命令如下 imagecopy resource dst im the image
  • 在 iOS 中使用 Core Audio 同时播放和录制

    我需要使用 Core Audio 同时播放和录制 我真的不想使用 AVFoundation API AVAudioPlayer AVAudioRecorder 来执行此操作 因为我正在制作音乐应用程序 并且不能有任何延迟问题 我查看了App
  • Python 多处理和共享 numpy 数组

    我有一个问题 与此类似 import numpy as np C np zeros 100 10 for i in range 10 C sub get sub matrix C i other args shape 10x10 C i 1