nariba’s blog

コンピュータ関連のメモとか

Project Euler をCで解いてみることにした

競技プログラミング的なものとしてプログラミングの練習になるサイトに,Project Eulerなるものがある.

projecteuler.net

他のサイトとは異なり,プログラミングというよりは より良いアルゴリズムを思いつくことに重きがおいてあるようで,

といった特徴がある.

なので,遅いアルゴリズムで長い時間かかるようなプログラムを実装しても,メモリを数十GB使うようなアルゴリズムで実装しても,解けさえすればいい.
ということで,スキルアップを目標にここにある問題を全部C言語で解いてみることにする.
ひとまず解けることを優先にして,なかなか解けない問題に対してはまず並列化によってスピードアップを図ってみる.
もちろん早いアルゴリズム等があれば後で実装し直したりしてさらなる高速化を図る.

普通は早いアルゴリズムを並列化によって高速化すべきだと思うけど,まぁ多分大丈夫でしょう…

FFTWをOpenMPで並列化しようと思ったらSegmentation違反を起こしまくって困ってた話

FFTWとはFFT(Fast Fourier Transform)の実装の一つであり,ライブラリとして提供されている.
これを簡単な並列処理のライブラリであるOpenMPを使って並列化しようと思ったらけっこう大変だったのでそのメモ.

続きを読む