导入使用 MultiProcessing Python 的模块

2024-03-22

我希望使用多处理模块来加快某些运输规划模型的运行时间。我已经通过“正常”方法尽可能多地进行了优化,但其核心是一个荒谬的并行问题。例如,对 4 组不同的输入执行同一组矩阵运算,所有信息都是独立的。

伪代码:

    for mat1,mat2,mat3,mat4 in zip([a1,a2,a3,a4],[b1,b2,b3,b4],[c1,c2,c3,c4],[d1,d2,d3,d4]):
        result1 = mat1*mat2^mat3
        result2 = mat1/mat4
        result3 = mat3.T*mat2.T+mat4

因此,我真正想做的就是在四核计算机上并行处理该循环的迭代。我已经阅读了这里和多处理模块的其他地方,除了必需的之外,它似乎完全符合要求:

   if __name__ == '__main__'

据我了解,这意味着您只能从脚本运行多进程代码?即如果我做类似的事情:

    import multiprocessing
    from numpy.random import randn

    a = randn(100,100)
    b = randn(100,100)
    c = randn(100,100)
    d = randn(100,100)

    def process_matrix(mat):
        return mat^2

    if __name__=='__main__':
        print "Multiprocessing"
        jobs=[]

        for input_matrix in [a,b,c,d]:
            p = multiprocessing.Process(target=process_matrix,args=(input_matrix,))
            jobs.append(p)
            p.start()

它运行良好,但是假设我将上述内容保存为“matrix_multiproc.py”,并定义了一个新文件“importing_test.py”,其中仅说明:

    import matrix_multiproc

多重处理不会发生,因为名称现在是“matrix_multiproc”而不是“main'

这是否意味着我永远不能在导入的模块上使用并行处理?我想做的就是让我的模型运行为:

    def Model_Run():
        import Part1, Part2, Part3, matrix_multiproc, Part4

        Part1.Run()
        Part2.Run()
        Part3.Run()
        matrix_multiproc.Run()
        Part4.Run()

很抱歉问了一个很长的问题,答案可能很简单,谢谢!


这是否意味着我永远不能在导入的模块上使用并行处理?

不,事实并非如此。您可以使用multiprocessing代码中的任何位置,provided该程序的主模块使用if __name__ == '__main__' guard.

在 Unix 系统上,您甚至不需要那个保护,因为它具有fork()从主进程创建子进程的系统调用python过程。

另一方面,在 Windows 上,fork()被模仿multiprocessing通过生成一个运行主模块的新进程again,使用不同的__name__。如果没有这里的保护,您的主应用程序将尝试再次生成新进程,从而导致无限循环,并很快耗尽所有计算机的内存。

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

导入使用 MultiProcessing Python 的模块 的相关文章

  • goJS 下拉菜单删除项目

    我有简单的 python Flask goJS 图形应用程序 如下所示 节点和链接文本的源是从应用程序的后端加载的 我将它们设置为model modelData像这样的部分 var graphDataString JSON parse di
  • 为什么 np.linalg.norm(..., axis=1) 比写出向量范数公式慢?

    标准化矩阵的行X对于单位长度 我通常使用 X np linalg norm X axis 1 keepdims True 在尝试优化算法的此操作时 我非常惊讶地发现在我的机器上写出标准化的速度大约快了 40 X np sqrt X 0 2
  • Python中非常大的整数的math.pow是错误的[重复]

    这个问题在这里已经有答案了 我试图通过计算一个整数的非常大的幂来打印一个非常大的数字 尽管我的代码是正确的 但我没有观察到所需的输出 一般来说 Python解释器可以打印系统内存支持的非常大的整数 考虑到这个假设 下面是我正在运行的代码 a
  • Python/Scipy 2D 插值(非均匀数据)

    这是我上一篇文章的后续问题 Python Scipy 插值 地图坐标 https stackoverflow com questions 5124126 python scipy interpolation map coordinates
  • Python服务器“通常只允许每个套接字地址使用一次”

    我正在尝试用 python 创建一个非常基本的服务器 它侦听端口 当客户端尝试连接时创建 TCP 连接 接收数据 发回某些内容 然后再次侦听 并无限期地重复该过程 这是我到目前为止所拥有的 from socket import server
  • 使用正确的时区将 ICS 导入 Google 日历

    我正在尝试将一个简单的 ics 文件导入 Google 日历 但是 即使我指定了时区 Google 日历仍然会导入错误的事件时间 尽管它确实说错误的时间位于正确的时区 这是我的 ics 文件的示例 BEGIN VCALENDAR BEGIN
  • 用 R 将矩阵划分为 N 个大小相等的块

    如何使用 R 将矩阵或数据帧划分为 N 个大小相等的块 我想水平切割矩阵或数据框 例如 给定 r 8 c 10 number of chunks 4 data matrix seq r c nrow r ncol c gt gt gt da
  • 并行磁盘 I/O

    我有几个想要阅读的日志文件 不失一般性 假设日志文件处理如下 def process infilepath answer 0 with open infilepath as infile for line in infile if line
  • Python:使用Excel CSV文件仅读取某些列和行

    虽然我可以读取 csv 文件而不是读取整个文件 但如何仅打印某些行和列 想象一下这是 Excel A B C D E State Heart Disease Rate Stroke Death Rate HIV Diagnosis Rate
  • Django - 从时间戳获取不同的日期

    我正在尝试按日期过滤用户 但直到我可以找到数据库中用户的第一个和最后一个日期为止 虽然我可以让我的脚本稍后过滤掉重复项 但我想从一开始就使用 Django 来完成此操作distinct因为它显着减少 我试过 User objects val
  • 使用 django-profiles 以配置文件形式编辑相关模型

    我在用着Django 配置文件 http bitbucket org ubernostrum django profiles wiki Home在我的应用程序中 因为它为我提供了一些简单的视图 可以帮助我更快地到达我想去的地方 但是 我有一
  • pygame.image.load 不工作

    我正在尝试为游戏创建世界地图 但是当我尝试将世界地图加载到屏幕上时 命令行告诉我无法执行此操作 这是代码 import sys import pygame from pygame locals import pygame init Surf
  • 在 CSV 文件的最上面一行写入

    我有这个sample csv 文件 a 1 apple b 2 banana c 3 cranberry d 4 durian e 5 eggplant 并有以下代码 samplefile open sample csv rb rows s
  • 无法从源 pylance 解析导入烧瓶

    我正在学习 Python 课程的一部分是使用 Flask 设置网络服务器 我按照 Flask 安装文档执行了步骤 由于某种原因 flask 模块带有下划线 如下所示 当我将鼠标悬停时 我会得到如下附加信息 无法从源 pylance 解析导入
  • PHP清晰度卷积矩阵

    我正在使用一个卷积矩阵 http www php net manual en function imageconvolution php为了锐度PHP GD我想改变清晰度 level 我会去哪里做出改变如果我想做到的话或多或少尖锐 imag
  • 从 Python 访问 802.11 无线管理帧

    我想从 Linux 上的 Python 嗅探 802 11 管理 探测请求 帧 这可以从 Scapy 中实现 如下所示 coding utf 8 from scapy all import def proc p if p haslayer
  • 如何从集合中检索元素而不删除它?

    假设如下 gt gt gt s set 1 2 3 我如何获得一个值 任何值 s不做s pop 我想将该项目保留在集合中 直到我确定可以删除它 这只有在异步调用另一个主机之后才能确定 又快又脏 gt gt gt elem s pop gt
  • 根据键的重复值从列表中删除字典

    我是Python新手 假设我有以下字典列表 mydictList a 1 b 2 c 3 a 2 b 2 c 4 a 2 b 3 c 4 从上面的列表中 我想删除具有相同键 b 值的字典 所以结果列表应该是 mydictList a 1 b
  • 写入文件的正确方法?

    我想知道这样做是否有什么区别 var1 open filename w write Hello world 并做 var1 open filename w var1 write Hello world var1 close 我发现没有必要
  • Django Python - LDAP 身份验证

    我目前正在研究 Django Python 我的目标是从 Ldap 目录对用户进行身份验证 我确实有 python 代码来访问 ldap 目录并检索信息 Code import ldap try l ldap open ldap forum

随机推荐

  • 你好!我无法连接 django 上的“heroku redis”

    我已按照以下视频中的所有步骤进行操作 但是 我无法连接 heroku redis 我正在使用 celery 来实现周期性任务 错误如下 2021 04 02 22 00 05 622 错误 MainProcess 消费者 无法连接 到 re
  • Mathematica 内部数字格式和精度

    切线相关this https stackoverflow com q 4939616 181759问题 数字格式到底发生了什么 In 1 InputForm 3 12987 10 270 Out 1 3 12987 270 In 2 Inp
  • System.Net.Http.HttpClient 是否受到 HttpWebRequest.AllowWriteStreamBuffering 的影响?

    我一直在尝试使用System Net Http HttpClient发布更大的文件 1GB 但它会抛出SystemOutOfMemory例外 at System Net ScatterGatherBuffers AllocateMemory
  • 在 Windows 中查找超过 4GB 的正确文件大小

    我使用此 C 代码来查找 Windows 中某些文件的文件大小 使用 Visual Studio p findFileData gt nFileSizeHigh MAXDWORD p findFileData gt nFileSizeLow
  • Ionic 3 中带有标签的晶圆厂

    我正在使用 Ionic 3 框架 并希望在我的 Ionic 3 应用程序中插入以下类型的 fab 菜单 特别菜单 在您的 SCSS 文件中 button ion fab overflow visible position relative
  • swift 如何在后台在 Watch 和 iPhone 之间共享数据

    我有一个用于在 iPhone 和 Watch 之间共享数据 共享文本 的功能应用程序 我希望即使手表设置在后台 当 Watch 在后台时将数据从 iPhone 发送到 Watch 也能正常工作 我读了很多关于如何做到这一点的内容 但似乎没有
  • 使用 C# 在 TextBox/Label/RichTextBox 中突出显示文本

    晚安 我想知道如何突出显示 TextBox Label 最好 或 RichTextBox 中包含的部分文本 例如 给定字符串 这是一个测试 我希望控件显示 这是一个test 有什么简单的方法可以做到吗 非常感谢 RichTextBox r
  • NodeJs 错误 - 无法加载 gRPC 二进制模块,因为未为当前系统安装预期目录?

    我正在运行我的 NodeJs 应用程序 但收到错误 sudo usr local bin node app js Error Failed to load gRPC binary module because it was not inst
  • 使用 JavaScript 的 URL 的最后一段

    如何获取 url 的最后一段 我有以下脚本 显示单击的锚标记的完整 url tag name goes here live click function event event preventDefault alert this attr
  • 隐藏单选按钮,同时保留其功能

    我在 SO 和 Google 上搜索 但找不到任何相关内容 有什么方法可以隐藏图像旁边的单选按钮 用作其标签 但在单击标签时仍然保留其功能 我尝试了几种方法 但似乎使用display none or visibility hidden使收音
  • Android SurfaceView 预览模糊

    我有一个快速的问题 我正在使用 Android 的 SurfaceView 拍照并保存 然而 预览尺寸和图像质量本身都很糟糕 就像 它非常模糊 图像质量根本没有清晰度 这是我初始化 SurfaceView 的地方 camera setDis
  • 如何以不同的速度流畅播放FLV?

    我需要以不同的速率显示 FLV 的帧 这里有些例子 用户将 擦洗 flv 帧 前 后 flv 在用户交互时需要以一半的速度播放 目前我正在使用装载机最大 http www greensock com loadermax 它是VideoLoa
  • onFlushDirty Hibernate Interceptor 方法永远不会被调用

    问题 Why MyInterceptor onFlushDirty从未被调用过 我延长AbstractEntityManagerFactoryBean在 xml 配置中 例如
  • 如何正确扩展ES6 Map

    我有一个简单的案例 ES6Map 我需要添加自定义get and set to it But Map是一个内置对象 所以我不确定这样做是否有任何警告 我试图搜索子类化 a 是否正确Map 并得到不一致的结果 尚不清楚规范是否允许 哪些 br
  • Jquery next() 问题

    我有这个 div class selection a class current href 1 a div class class text div a href 2 a div class class text div a href 4
  • sudo 使用什么 shell

    我很抱歉 因为这一定是其他人问过的问题 但这似乎是谷歌证明 我试图弄清楚正在调用什么 shell 因为我遇到了不一致的情况 如果我这样做 我的脚本将无法工作sudo 但是如果我的话确实有效sudo bash 然而当我sudo echo 0
  • 使用各种方法无法使系统蜂鸣声在 C 中工作

    我已经尝试过 a 7 windows h 蜂鸣功能等 但没有任何效果 较新的硬件没有内置此功能吗 控制台程序 较新的硬件需要为残障人士提供蜂鸣声 但 Windows 7 移动了Beep 进入实际的 Windows 音频子系统 因此请确保您的
  • 测试两个列表列表是否相等

    假设我在 Python 中有两个列表 l1 a 1 b 2 c 3 l2 b 2 c 3 a 1 测试它们是否相等的最优雅的方法是什么 l1只是元素的一些排列l2 注意对普通列表执行此操作see here https stackoverfl
  • 在采用多个可选参数的方法中,如何指定除第一个参数之外的任何参数?

    我有一个这样的方法 def foo fruit apple cut sliced topping ice cream some logic here end 我怎样才能调用它 我只覆盖顶部参数 但使用其他参数的默认值 像这样 foo hot
  • 导入使用 MultiProcessing Python 的模块

    我希望使用多处理模块来加快某些运输规划模型的运行时间 我已经通过 正常 方法尽可能多地进行了优化 但其核心是一个荒谬的并行问题 例如 对 4 组不同的输入执行同一组矩阵运算 所有信息都是独立的 伪代码 for mat1 mat2 mat3