>>492
ハードウェア側から見た最適化のちょっとしたススメ
速度が出ない一番の理由はキャッシュミスです
キャッシュミス対策はそれ以前の主記憶配置から均等に分布するようにしておきます
離散が分かっていれば割と容易
アドレス分布が偏っているとキャッシュシステムの特性上こぼれる限界が下がり一気に性能劣化します
レジスタから要素落とさなくて済むのならそれが当然圧倒的に速く電力消費も少ないので
余計な演算なんじゃないかと思ってもよく使う要素を塊にクラスタしておくと更にいいはず
ともかくキャッシュより上で回し理想はL2から落とさないように
断腸の思いで主記憶にアクセスに行く時のことも考え各プロセッサに予備スレッドを配置
最近のプロセッサには優秀なSMTがあり取りに行ってる間延々と待つのを多少隠蔽出来ます

条件分岐を外すといった最適化も有効ですがキャッシュミスに比べると大したことは無いと言って良いのでは
あとは基本中の基本のホットスポットの分散だと思います
命令間依存とバリア同期待ちも大きなボトルネックになるのですが
アルコリズムとロード・インバランスの見直ししかないので後調整が厳しいところです