我正在寻找一个可能的解决方案,读取和触发数据(在我的情况下波形数据)并行。你知道吗
我有一个列表(wfpathlist),只是一个包含字符串的列表,其中包含指向文件的给定路径:
for fn in wfpathlist:
st = readWaveform(fn, bpfreq=[5.,30.])
coinc = CoincidenceTimes(st)
triggerlist += coinc.getCoincTimes()
events += cutWithList(wfpath=fn, trigg=coinc.getCoincTimes(),
station=self.getStation())
readWaveform只是一个读取和过滤数据的短函数:
def readWaveform(wfpath, bpfreq=[5., 30.]):
st = read(wfpath)
st.filter('bandpass', freqmin=bpfreq[0], freqmax=bpfreq[1])
return st
有没有一个简单的解决方案,让这个for循环并行运行?你知道吗
多谢了
丹尼斯
可以在函数中实现for循环,并使用多处理池()对象。 这将使循环的执行并行化,应该会增加一个很好的加速。你知道吗
示例:
资料来源:https://docs.python.org/2/library/multiprocessing.html#using-a-pool-of-workers
注意,一些python实现的函数已经使用了多处理(在numpy中很常见),所以在实现这个解决方案之前,应该在脚本运行时检查处理器的活动。你知道吗
编辑:我不好,你应该直接把你的名单发送到游泳池。我更正了密码。你知道吗
相关问题 更多 >
编程相关推荐