2017-02-17 3 views
0

今、私はマルチコアマシンでOpenMPを使用して並列プログラミングを行っています。私は並列プログラミングの新しいです。OpenMPを使用した並列プログラミングについての助けが必要ですか?

今まで、私は次のようなことを行っている:OpenMPの

を使用して

100万のx百万行列の乗算プログラムは(corei5、corei3など)の変動を別のマシンでのスレッドの数を実行時間を計算します

私は、thread = 4でないと、コードを実行するのに最低限の時間がかかることが分かりました。 (私は理由を知らない)

総合的なパフォーマンス分析。今私はgem5に行きたい。今私は何ができますか、私にとって正しい方法は何ですか?私はここから何ができるのか知りたい。私は考えが必要です。

答えて

0

私は、スレッド= 4がない場合、その最小時間は が自分のコードを実行する必要があることを見ました。 (理由は分かりません)

プログラムのパフォーマンスと実行時間は、コンピュータのアーキテクチャによって異なります。あなたがPCの技術仕様を守れば、おそらく、あなたはそれを推論することができます。私はそれがクアッドコアプロセッサであると推測します ...

実際の制御フロー、スレッド作成オーバーヘッドおよび同様の雑多な側面にも依存します。あなたがすることができかかる場合があります

次のステップ:下の漸近時間の複雑さを特徴と行列の乗算のためのより良いアルゴリズムの

  • 検索!
  • 現在の実行時間を改善しました。 gprofのようなプロファイリングツールを使用してコードの熱い部分を識別することによって...
  • あなたのコード
のうち、最大の並列性を抽出するための のOpenMPの高度な構造を探索
関連する問題