[英]analyze text file in parallel with mpi4py
我有一个输入选项卡分隔的文本文件:
0 .4
1 .9
2 .2
3 .12
4 .55
5 .98
我在普通Python中将其分析为:
lines = open("songs.tsv").readlines()
def extract_hotness(line):
return float(line.split()[1])
songs_hotness =map(extract_hotness, lines)
max_hotness = max(songs_hotness)
如何使用mpi4py
并行执行相同的操作? 我开始使用scatter
实现这一点,但是由于scatter
需要列表元素的长度与节点数的长度相同,因此无法立即使用。
并行处理文本文件很困难。 您在哪里分割文件? 您是否还在从并行文件系统读取数据? 如果输入文件足够大,则可以考虑使用MPI-IO。 如果走那条路,这些答案(在C上下文中提供)描述了mpi4py仍然面临的挑战: https ://stackoverflow.com/a/31726730/1024740和https://stackoverflow.com/a/12942718/ 1024740
另一种方法不是分散数据,而是将其全部读入0级并广播给其他所有人。 这种方法需要足够的内存来一次暂存所有输入数据,或者需要一种主工人计划,即一次只能读取一些数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.