首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在OBSPY流上应用多处理?

如何在OBSPY流上应用多处理?
EN

Stack Overflow用户
提问于 2018-06-06 10:25:20
回答 1查看 244关注 0票数 1

我用OBSPY导入的文件有207条形成流的跟踪,每个跟踪有30k个样本。来自每个跟踪的数据由seismic_datatrace_number.data访问,并且是一个一维的ndarray.

我使用的函数以跟踪和int作为参数: kurt_1d(signal_1d,samples)。它返回一个相同大小的一维数组.

目前,我在207跟踪上使用for循环来运行每个跟踪的函数:

代码语言:javascript
复制
def kurt_nd(signal_nd, samples):

    kurt_array = signal_nd.copy()
    for index in range(207):
       kurt_array[index].data = kurt_1d(signal_1d=signal_nd[index].data,samples=samples)
    return(kurt_array)

如何使用多进程将这个函数kurt_1d(signal_1d,samples)应用于整个流(207个跟踪)以提高速度?目标是将每个生成的一维ndarray存储在原始流副本的各自索引中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 15:04:32

可以定义一个进程池来运行该函数。示例代码如下:

代码语言:javascript
复制
import multiprocessing as mp
import os

num_proc = os.cpu_count() # to get the number of cores on your computer

pool = mp.Pool(processes=num_proc)
proc = [pool.appy_async(kurt_nd,args=[i,samples]) for i in traces] # map the function to the processes
results = [p.get() for p in proc] # retrieve the results from your processes 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50718084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档