wrongwrongな開発日記

情報系大学院生の忘備録

OpenMP

【c/c++】AVX2を使った行列積を計算するプログラム

講義で作ったOpenMPとAVX2命令を使って4096x4096の行列積を計算するプログラムです。そのまま並列化しろという内容だったので最適化はちゃんとしていませんが、折角作ったので公開しておきます。 ソースコード #include <stdio.h> #include <stdlib.h> #include <time.h> #include <omp.h> #inc</omp.h></time.h></stdlib.h></stdio.h>…

【c/c++】Microsoft PPL/並列STL(C++17)/OpenMPを少しだけ比較【C++17】

Visual Studioのc++で利用できる並列化手法としては、Microsoft PPL、並列STL(C++17)、OpenMPなどが有ります。この内どれが速いのが知りたくなったので実行速度を比較しました。 手法ごとに使う機能が異なっている(後述)ため、比較としてはかなりよろしく…

【c/c++】AVX2を使った円周率を求めるプログラム――修正

結果の加算周りが非効率なためこの記事に載せたプログラムは遅いです。 この部分を修正した場合、AVX2無しで動かしたほうが高速です。 wrongwrong163377.hatenablog.com wrongwrong163377.hatenablog.com 上記記事で作ったモンテカルロ法で円周率を求めるプ…

【c/c++】AVX2を使ってみて少しだけ比較

結果の加算周りが非効率なためこの記事に載せたプログラムは遅いです。 この部分を修正した場合、AVX2無しで動かしたほうが高速です。 wrongwrong163377.hatenablog.com 記事中のAVX2命令を用いたプログラムはcmp命令を使っていないため低速な状態です。これ…

【c/c++】OpenMPの基礎的な使い方+並列処理で意識すべきこと【OpenMP】

OpenMPの基礎的な使い方を通して並列処理で意識すべきことを書きます。 ここではコンパイル方法や詳細な内容については触れませんが、OpenMPのより詳細な使い方については参考文献を参照してください。 記事の内容をざっくりとまとめると、並列化の上で知っ…