さまざまなプラットフォームでのOpenMPの比較

みなさんこんにちは! 最近、OpenMPのような素晴らしいものに出会いました。
ここまたはここの説明ですが、この技術の有効性を示す美しいグラフはありません。 この投稿では、さまざまなプラットフォームでOpenMPを使用することの有効性を明確に示すようにします。 歓迎に興味がある人!



現代の世界には、比較的短時間で複雑な計算を実行できるさまざまなオペレーティングシステムと強力な新しいプロセッサがあります。 この研究は、どの環境で労働集約型の計算を実行するのが最も効果的であるか、および計算に費やす時間を削減する方法を見つけるために実施されました。


研究を行うために、アルゴリズムが選択されました-積分式を使用してPIの数を計算します。このアルゴリズムは並列化に適しているため、計算の面でかなり面倒です。


アルゴリズムを並列化するために、openMPテクノロジーを使用することが決定されました。 このテクノロジーを使用すると、異なるランタイムに対して同じコードを効果的に記述でき、プログラマーがLinuxおよびWindowsでそれぞれp_threadsまたはWindows Threadsを使用してコードを書き込むときに発生するエラーを最小限に抑えます。


比較のために、3つのランタイムが選択されました。



テストは、プロセッサを搭載したコンピューターで実施されました。



今チャート


グラフに表示されるデータは平均化されており、各OSに対して5回のテストが実行されました。 グラフの縦軸、1秒あたりの時間、横軸の区分の値は表に示されています


1234567891011121314
1246810121632641282565121024




結論



ご清聴ありがとうございました。



Source: https://habr.com/ru/post/J325360/


All Articles