1

入力タブで区切られたテキスト ファイルがあります。

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

4

1 に答える 1

0

テキスト ファイルの並列処理は困難です。ファイルをどこで分割しますか?並列ファイル システムから読み込んでいますか? 入力ファイルが十分に大きい場合は、MPI-IO を検討してください。そのルートに進む場合、C コンテキストで提供されるこれらの回答は、mpi4py でまだ保持されている課題を説明しています: https://stackoverflow.com/a/31726730/1024740 およびhttps://stackoverflow.com/a/12942718/ 1024740

もう 1 つのアプローチは、データを分散させるのではなく、ランク 0 ですべて読み取り、他の全員にブロードキャストすることです。このアプローチでは、すべての入力データを一度にステージングするのに十分なメモリが必要です。または、一部のデータのみが 1 回で読み取られるマスター/ワーカー スキームが必要です。

于 2015-08-07T19:02:19.400 に答える