IPython 中的并行嵌套 for 循环

2023-11-26

我的 python 代码中有一个嵌套的 for 循环,如下所示:

results = []

for azimuth in azimuths:
    for zenith in zeniths:
        # Do various bits of stuff
        # Eventually get a result
        results.append(result)

我想在我的 4 核机器上并行化这个循环以加快速度。查看IPython并行编程文档(http://ipython.org/ipython-doc/dev/parallel/parallel_multiengine.html#quick-and-easy-parallelism)似乎有一种简单的使用方法map并行迭代操作。

但是,要做到这一点,我需要将循环内的代码作为函数(这很容易做到),然后映射该函数。我遇到的问题是我无法获得一个数组来映射该函数。itertools.product()产生一个迭代器,我似乎无法使用它的映射函数。

我尝试在这里使用地图是不是找错了树?有更好的方法吗?或者有什么方法可以使用itertools.product然后使用映射到结果的函数进行并行执行?


要并行化每个调用,您只需要获取每个参数的列表。您可以使用itertools.product + zip得到这个:

allzeniths, allazimuths = zip(*itertools.product(zeniths, azimuths))

然后你可以使用地图:

amr = dview.map(f, allzeniths, allazimuths)

为了更深入地了解这些步骤,下面是一个示例:

zeniths = range(1,4)
azimuths = range(6,8)

product = list(itertools.product(zeniths, azimuths))
# [(1, 6), (1, 7), (2, 6), (2, 7), (3, 6), (3, 7)]

所以我们有一个“成对列表”,但我们真正想要的是每个参数都有一个列表,即“成对列表”。这正是稍微有点奇怪的地方zip(*product)语法让我们:

allzeniths, allazimuths = zip(*itertools.product(zeniths, azimuths))

print allzeniths
# (1, 1, 2, 2, 3, 3)
print allazimuths
# (6, 7, 6, 7, 6, 7)

现在我们只需将函数映射到这两个列表上,以并行化嵌套 for 循环:

def f(z,a):
    return z*a

view.map(f, allzeniths, allazimuths)

只有两个并没有什么特别之处 - 这个方法应该扩展到任意数量的嵌套循环。

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

IPython 中的并行嵌套 for 循环 的相关文章

随机推荐

  • 检测移动设备和重定向的最佳方法

    这是我根据屏幕尺寸检测移动显示器的代码片段 您可以通过向 URL 添加forceDesktop 参数来强制站点保持桌面模式 我是 jquery 新手 所以如果您有建议 请评论 学分归于brandonjp 如何在 JavaScript 中获取
  • 设置 AVAudioSession Category 对 WKWebView 的声音没有影响

    当从 WKWebView 播放音频时 我似乎无法覆盖 AVAudioSession 类别或端口 当使用普通的 UIWebView 时 相同的代码可以完美地工作 AVAudioSession session AVAudioSession sh
  • android布局xml中的background、backgroundTint、backgroundTintMode属性有什么区别?

    在使用 android 布局 xml 时 我遇到了backgroundTint属性 我不明白这是做什么用的 还有什么是backgroundTintMode 我测试了各种组合android background android backgro
  • ParameterInfo.IsLcid 或 ParameterInfo.IsRetval 何时为 true?

    我在Google搜索时在Stack Overflow中发现了这个问题 但它已被删除 所以我再次列出这个问题 由于我找不到LcidAttribute or RetvalAttribute在BCL中 我猜C 还没有提供对区域设置标识符参数和返回
  • CSS 选择器中是否可以有一个用于标记名的正则表达式?

    我想使用 selenium webdriver 来查找元素h2 or h3 tag 是否可以有一个通用的 css 选择器来满足上述要求 类似的东西 tag h or att str 对于属性 是的 可以 但对于元素 您可以用逗号分隔可能的值
  • 使用 DACFx 3.0 API 升级 DACPAC - 如何检查现有数据库的当前 DAC 版本?

    我目前正在重写团队的数据库部署 Powershell 脚本以使用 DACFx 3 0 API 而不是 2 0 我已经成功地使用新的 DACPAC 升级来工作Microsoft SqlServer Dac DacServices控制器类 剩下
  • 如何以编程方式读取packages.config中的NuGet包列表?

    读取 最好通过 C packages config 文件中列出的包的最佳方法是什么 在我们的源代码存储库中 我有很多解决方案和项目 以及同样很多的packages config 文件 我正在尝试构建源代码存储库中使用的包 和版本 的综合列表
  • 在 C# 中通过 DocuSign api 登录时出现“操作已超时”错误

    自 2018 年 5 月 31 日起 我在登录 DocuSign API 时收到以下错误 DocuSign eSign Client ApiException 调用登录时出错 操作已超时 自去年以来 我们一直在测试 DocuSign API
  • php中的“iif”是什么意思?

    有人在 php 中见过这个 iif 吗 那到底是什么 我尝试在 php net 中搜索它的文档 但找不到任何文档 任何人都可以举一个如何使用这个 iif 的简单例子吗 功能iif标准 PHP 库中不存在 但在大多数情况下 它是一个 短 if
  • 将多种算法与 sklearn pipeline 进行比较

    我正在尝试建立一个 scikit learn 管道来简化我的工作 我面临的问题是我不知道哪种算法 随机森林 朴素贝叶斯 决策树等 最适合 所以我需要尝试每种算法并比较结果 然而 管道一次只能采用一种算法吗 例如 下面的管道仅采用 SGDCl
  • 为什么默认参数尾随参数?

    为什么 C 中的默认参数是尾随参数 如果你有void func int a 0 int b 您将如何指定在调用此函数时使用默认参数
  • 如何使用 Python 从 OpenCV 3 中的持久 XML/YAML 文件读取/写入矩阵?

    我一直在尝试使用以下命令读取矩阵并将其写入持久文件存储 例如 XML Anaconda的电流cv2 我相信实际上是 OpenCV 3 x 我在网上查看了解决方案 人们参考了这样的解决方案 object cv2 cv Load file ob
  • 无法找到请求的.Net Framework 数据提供程序。它可能没有安装

    完成 ASP NET MVC 3 教程后 找到here 我尝试在线发布该应用程序 我联系了托管公司 以确定是否可以托管 MVC 3 应用程序 我必须对 dll 文件 应用程序进行 bin 部署 所以在执行了一些步骤之后汉塞尔曼博客 我陷入了
  • Python 字符串中出现意外的空字符串

    观察以下交互式会话 In 1 s emptiness In 2 s replace Out 2 e m p t i n e s s In 3 s count Out 3 10 我今天发现了这一点 这对我来说有点困惑和惊讶 我喜欢学习类似 P
  • PHP 类为什么使用 public 关键字?

    为什么要使用关键字声明类属性 变量 或方法 函数 public 如果它们默认是公开的 或者说 他们是吗 用不同的方式表达我的问题是public多余的 我明白private and protected 但为什么要声明public如果班级成员是
  • 如何强制/确保类属性是特定类型?

    如何在 Python 中将类成员变量限制为特定类型 更长的版本 我有一个类 它有几个在类外部设置的成员变量 由于它们的使用方式 它们必须是特定类型 要么是 int 要么是 list 如果这是 C 我只需将它们设为私有并在 set 函数中进行
  • 在同一天蓝色功能应用程序下部署多个功能不起作用

    尝试在同一个azure函数应用服务帐户中部署3个不同类型的函数 CosmosDBTrigger TimerTrigger HttpTrigger 附上文件夹结构以供参考 功能未按预期运行 但在成功部署后抛出错误 收到异常 函数 CopyTo
  • 哈希在Python中做什么?

    我看到了一个代码示例 其中hash函数应用于元组 结果它返回一个负整数 我想知道这个功能是做什么的 谷歌没有帮助 我找到了一个页面 解释了哈希值是如何计算的 但它没有解释为什么我们需要这个函数 哈希是一个固定大小的整数 用于标识特定值 每个
  • 如何让 DIV 滑入和滑出?

    我目前正在学习 jQuery 我想知道当您单击图像边缘时如何使图像滑入 然后再次单击它会滑开 与此类似 http www karenmillen com 如果您看到右侧并单击 就会出现我正在寻找的效果 我认为这将涉及制作一个 div 并给它
  • IPython 中的并行嵌套 for 循环

    我的 python 代码中有一个嵌套的 for 循环 如下所示 results for azimuth in azimuths for zenith in zeniths Do various bits of stuff Eventuall