課題の進め方

並列化などの高速化手法を用いて、 できるだけ高速なプログラムを作成することが大まかな課題である。 高速化においては各自の創意工夫を期待する。 プログラムは基本的にはC言語で作成し、 手動でマルチプロセッサ(マルチコア)計算機向けの並列化を行うこととする。 並列化には POSIX スレッドライブラリと共有メモリ向けマクロを用いる。 まず逐次版プログラム(並列化を行う前のプログラム)の作成し, その高速化を行い、 その後並列プログラムを作成する。

E601のLinuxワークステーション(Dell Optiplex 760)は、 Core2Duo E7400 (2.8GHz) のマルチコア構成(2 cores, 2 threads)であるので、 基本的にはこれを用いて計算を行い。計算時間などを測定する。 また、できるだけ、より多数のコアが利用可能な Xeon X5650 (2.67GHz) (6 cores, 12 threads) × 2 (total 12 cores, 24 threads) も利用できるようにする予定である。

本実験・演習では、正しいプログラムかという点だけでなく、 速く動くプログラムかという点も重視するので、 実験履修者間でスピード競争ができることが望ましい。 他の実験履修者とアイデア等について議論してもよい。


Masahiro Yasugi