2012-01-23 10 views
1

私は並列処理のためにC++でOpenMPを使用しています。処理されるファイルのサイズは約40GBです。この大きなファイル内の別のファイルからの文字列の単純な検索は、非常に長い時間がかかります。これは、完全なファイルを検索するたびに、大きなファイルに他のファイルの文字列が何度も表示される可能性があるからです。OpenMPでC++を使用したファイル処理

私はプロセスをよりスピードアップするために何かを試みることができますか?

+3

OpenMPは、I/Oにバインドされているタスクではなく、CPUバウンドのタスクのみ高速化できます。 –

+0

[PFVS](http://ftp.mcs.anl.gov/pub/tech_reports/reports/P804.pdf)のような並列化されたアクセスを可能にする対応するファイルシステムを使用すると、並列化されたIOが存在します。さらに[MPI IO ](http://beige.ucs.indiana.edu/I590/node52.html)しかし、MPIIOの亜種がopenmpに存在するかどうかはわかりません。 – Bort

+0

OpenMPはそれほど意味がありません。スレッドがより適切なツールになります。いずれの場合でも、ファイルを複数回開いて、異なるストリームを使用して読み込むことができます。各スレッドは1つのストリームを取ることができ、fseek()などのOSを使用してストリームインジケータの位置を変更することができます。これにより、各スレッドは独自の範囲を確認できます。 – ipapadop

答えて

0

なぜファイルを2つ以上の部分に分割するのですか?スレッドを並列に検索する

関連する問題