Bap*_*ist 6 python parallel-processing h5py
我试图加快从h5py数据集文件中读取块(将它们加载到RAM内存中)的过程.现在我尝试通过多处理库来做到这一点.
pool = mp.Pool(NUM_PROCESSES)
gen = pool.imap(loader, indices)
Run Code Online (Sandbox Code Playgroud)
加载器功能是这样的:
def loader(indices):
with h5py.File("location", 'r') as dataset:
x = dataset["name"][indices]
Run Code Online (Sandbox Code Playgroud)
这实际上有时有效(意味着预期的加载时间除以进程数并因此并行化).但是,大部分时间它没有,加载时间只是保持与按顺序加载数据时一样高.有什么办法可以解决这个问题吗?我知道h5py支持通过mpi4py进行并行读/写,但我只想知道这对于只读也是绝对必要的.
wea*_*rog 10
h5py可以并行读取,不需要MPI版本.但是你为什么期望在这里加速呢?你的工作几乎完全是I/O绑定,而不是CPU限制.并行进程不会有帮助,因为瓶颈是你的硬盘,而不是CPU.如果在这种情况下并行化甚至减慢了整个阅读操作,我也不会感到惊讶.其他意见?
| 归档时间: |
|
| 查看次数: |
4619 次 |
| 最近记录: |