#include using namespace wfl; void main() { Start(); StopWatch sw; WaveField a(2048, 2048, 2e-6); a.SetGaussian(2e-3, 50); //===== シングルスレッドでの伝搬計算(デフォルト) sw.Start(); //ストップウォッチスタート a.ExactAsmProp(10e-3); //デフォルトではシングルスレッドで計算する sw.Stop(); //ストップウォッチストップ printf("%dスレッドでの計算時間: %f [s]\n", wfl::GetNumThreads(), sw.Read()); for (int i = 2; i <= 4; i++) { //===== マルチスレッドを用いた伝搬計算 sw.Reset(); wfl::SetNumThreads(i); //計算にi個のスレッドを用いるように設定 sw.Start(); //ストップウォッチスタート a.ExactAsmProp(10e-3); //i個のスレッド数を用いて計算する sw.Stop(); //ストップウォッチストップ printf("%dスレッドでの計算時間: %f [s]\n", wfl::GetNumThreads(), sw.Read()); } }