ゼロ年代の亡霊

ゼロ年代口調を抑えきれない ※技術力要素はありません

Simutransをビルドする。そしてOpenMPを使って失敗する

Simutransを普通にビルドしていると1コアしかうまく使ってくれない。
ので、OpenMPを使うことにした。

が、単にForの前にOpenMPの記述を突っ込むだけだと、スレッドはバラけるけどスレッド同士の処理がなんかアレなのか、カクカク+フリーズしてマトモに動かない。
そりゃそうか(同期もせずに並列動作なんてできなくて当たり前だネ)。
しかし関数をいじるとなるとSimutransのソースコード全体の見通しがないとやりにくい。

というわけでOpenMPはおいといて、ビルドの方を少しいじることにした。
qiita.com

結果……
少し速くなったかな?という気がする。
コアが1個100%に張り付いていたのが90~97%ぐらいになった。