2019年2月16日土曜日

変数のデータ型を変えることで高速化ができた

マンデルブロ集合の並列計算を行う際に、今まで、C++でlong double型を採用してきましたが、float型にしてみました。精度は落ちますが、long double型ほどの精度は必要とはしない計算なのでfloat型にしてみました。

実際に実行時間を計測した結果を紛失してしまったためここに記載することはできませんが、long double型からfloat型に変更した結果、約10倍早くなりました。

よって、実行時間が10分の1になりました。当初の最適化オプション無し、long double型でコンパイルした実行可能ファイルを用いて実行した結果より、最適化オプション有り、float型でコンパイルした実行可能ファイルを用いて実行した結果の方が、約20倍早くなるという結果でした。

ちなみに、float型をdouble型にしても、実行時間はあまり変わりませんでした。精度を良くしたいならば、double型を用いても良いと思います。

0 件のコメント:

コメントを投稿