当前位置: 首页 > 面试题库 >

是否有一个简单的基于进程的python并行映射?

诸葛令
2023-03-14
问题内容

我正在寻找一个简单的基于进程的python并行映射,即一个函数

parmap(function,[data])

它将在不同进程上的[data]的每个元素上运行函数(嗯,在不同的内核上,但是AFAIK,在python中的不同内核上运行的唯一方法是启动多个解释器),并返回结果列表。

是否存在这样的东西?我想要一些 简单的 东西,所以一个简单的模块会很好。当然,如果不存在这样的东西,我会为一个大图书馆而定:-/


问题答案:

我似乎您需要的是multiprocessing.Pool()中的map方法:

map(func,iterable [,chunksize])

A parallel equivalent of the map() built-in function (it supports only
one iterable argument though). It blocks till the result is ready.

This method chops the iterable into a number of chunks which it submits

to the
process pool as separate tasks. The (approximate) size of these chunks
can be
specified by setting chunksize to a positive integ



例如,如果要映射此功能

def f(x):
    return x**2

到range(10),可以使用内置的map()函数:

map(f, range(10))

或使用multiprocessing.Pool()对象的方法map():

import multiprocessing
pool = multiprocessing.Pool()
print pool.map(f, range(10))


 类似资料:
  • 问题内容: SeleniumIDE项目基于Firefox(及其插件架构)。我的应用程序(出于多种原因)仅在Internet Explorer(6+)上运行。实际上,我们会积极检查非IE浏览器并立即进行重定向。 这是一个已有6年历史的代码库,我们正试图删除所有需要IE依赖的html特质。 我们已经有了一组强大且不断增长的NUNIT代码测试。我们想添加Selenium来进行Web功能测试。是否有一个很

  • 问题内容: 一般异步与Q 我正在学习Node.js的开发,并试图将我的大脑包在管理异步“回调地狱”的策略上。我研究的两个主要策略是Caolan McMahon的async模块和Kris Kowal的基于promise的Q模块。 像其他许多人一样,我仍在努力理解何时应该使用一个与另一个。但总的来讲,我发现承诺和基于Q- 代码要 稍微 更直观,所以我在这个方向被移动。 一般映射/连接集合 但是,我仍然

  • 问题内容: 为了调试目的,我想在处理输出流时将其内容转储到文件中。解析流将使用该流。 我可能会需要一个过滤器来存档它,在写我自己之前,我想问一下是否已经有现成的版本。 更新: 应该提到我在Android上工作。 我有什么: 所以我有一个和一个。 问题答案: 并不完全是准备推出一个,但是这可能会感兴趣。示例中有一个TeeOutputStream实现。

  • 问题 你有个程序要执行CPU密集型工作,你想让他利用多核CPU的优势来运行的快一点。 解决方案 concurrent.futures 库提供了一个 ProcessPoolExecutor 类, 可被用来在一个单独的Python解释器中执行计算密集型函数。 不过,要使用它,你首先要有一些计算密集型的任务。 我们通过一个简单而实际的例子来演示它。假定你有个Apache web服务器日志目录的gzip压

  • 问题内容: 我想同时运行许多进程并能够随时输出stdout。我该怎么办?我需要为每个调用运行线程吗? 问题答案: 您可以在一个线程中完成。 假设您有一个脚本可以随机打印行: 而且您想在输出可用后立即收集它,您可以按照@zigg的建议在POSIX系统上 使用: 更具可移植性的解决方案(应在Windows,Linux,OSX上运行)可以为每个进程使用读取器线程,请参阅python中的对子进程的非阻塞读

  • 文件结构: 这里是进行了外部注入 这里是configDemo.java代替了bean.xml中的扫描 如果是外部注入的话则需要加上注解 @AutoWired:根据属性类型自动装配 @Qualifier:根据属性名称自动注入 @Resource:都可以 @Value:注入普通类型属性 这里的注解注入方式为 @Component:普通主键 @Service:业务 @Controller:控制 @Rep