知能情報工学実験演習III「並列プログラミング」(2013年度)
マルチスレッドプログラミング
担当
クロック周波数自動調整(SpeedStep)が有効になっていると性能が変動します.
SpeedStep の無効化は,E601の端末では,
コマンドラインから cpuspeed
で可能となっていますので,
性能測定前に実行して性能を安定化させてください.
なお,コマンドラインから grep Hz /proc/cpuinfo
で
cpu MHz が変らないかなどである程度確認できます.(10/2)
new:
実行時間の上位ランキング
第1回, 第2回, 第3回, 最終 (10/25, 12/06, 1/10, 2/3)
new:
実行時間の上位ランキング on 計算サーバ(オプション)
第2回, 第3回, 最終レポート (12/06, 1/10, 2/3)
nqueen.cを入れ替えました。 (12/06)
ludecomp.cを入れ替えました。 (10/26)
計算サーバの利用については Moodle を確認してください (10/26)
連絡事項などは Moodle以外にこのページにも記載することがあります.
ときどき再読み込み(reload)してください。
最終更新: Mon Feb 3 11:13:01 JST 2014
自分のプログラムが遅いと思った場合
「準備 」にある初歩的な「最適化オプション」を
読み忘れていないか確認しましょう.
資料・説明など
課題など
ニックネーム,定期進捗報告
- 以下の報告は,Moodleにて知らせること。
- 実験開始日の 10/4 にニックネームを知らせること.
ニックネームは実行時間の上位ランキングを示すのに利用する.
(参考(外部リンク): 2011年度の実行時間の上位ランキング)
(実行時間の上位ランキングはWebで一般に公開してしますので,
そのつもりでニックネームを指定してください.
公開される「上位ランキング」に本名が掲載されて構わなければ,
本名でもかまいません.また途中変更を1回のみ認めます.
また,1月の「プレゼンテーション」において示された記録(実行時間)から,
他の受講者には,
ニックネームが誰なのかわかることになると考えられますので,
必要ならニックネームの使い回しを避けるなどの工夫をしてください.)
- 毎週(10/4, 11, 18, 25, 11/1, 8, 15, 12/6, 13, 20, 1/10)
の最後にその週の進捗を知らせること.
読み進めた資料と,(部分的に)終了したWeb課題番号(1〜6)や現在検討中の
演習内容について簡単にまとめればよい.
(例えば: 「高速化とLU分解は読みました.課題1としては完成していて,
高速化として効果が高そうなブロック化について調査中です.」など)
- 質問がある場合,2人の教員宛のメールによる質問は常に受け付けている.
演習時間中は TAにも直接質問してみてください.
レポート
締切
第1回 | Web課題1〜2(主にWeb課題2) | 10/25(金)13:00
|
第2回 | Web課題1〜3(主にWeb課題3) | 12/06(金)13:00
|
第3回 | Web課題4〜6(主にWeb課題6) | 1/10(金)13:00
|
最終 | Web課題1〜6(最終レポート※)・プレゼンテーション資料 | 1/24(金)13:00
|
レポート内容
Moodleにて少なくとも以下の内容を提出する。
- 作成したCプログラム (十分親切なコメント付き,複数可),
- 実行形式の作成方法(コンパイラバージョン,コンパイルオプション,
Makefileとしても示すことを推奨する)
- 実行方法(実行時引数など、作成方法と合わせて再現に必要な情報を示すこと)
- 測定した実行時間
- プログラムの説明
(アルゴリズム,データ構造,工夫・改善した点がわかるようにする。
コンパイルするとどうなるかについてアセンブリコードを用いた説明も
必要に応じて行うこと。)
- 考察(方式間の比較,さらなる改善案などついて議論する.
うまくいかなった工夫や
かえって遅くなってしまった工夫についても議論することが望ましい。)
注意:
- 氏名と「実行時間の上位ランキング掲載用ニックネーム(必須,
上記注意参照)」を明記すること.
- できるだけ plainテキストで提出すること。
数式(LaTeXなど)、グラフ(gnuplotで作成する
例)
などを含む部分は Postscript形式,またはPDF形式で提出する。
- レポート中にプログラムの一部を書いて説明するときは,
plainテキストでそのまま書けばよい.
- 第1回レポートは Report1.txt というファイルに書くようにして,
これを Cプログラムのファイルや,Cヘッダファイル(あれば),
Makefile などと一式となるように
zip や tar で固めて提出することを推奨する.
つまり,第1回レポート提出物は,
例えば「Report1.txt, lu.eps, Makefile, lu.c」を zip で固めたもの
といった具合になる.
なお,同様に,第2回レポートはReport2.txt,
第3回レポートはReport3.txtというファイルに書けばよい.
- ※ 最終レポートにおいてはWeb課題1〜6すべてを含むレポートとする.
「前回と同じです」ではなくレポートの内容そのものを含め,
つまり,最終レポート(ReportAll.txt というファイル名を推奨)だけ読めば,
第1回レポート〜第3回レポートを読む必要のないようにすること.
それに加えて,全体まとめとしての考察,感想も書くこと。
計算サーバを利用できている場合は,レポートに含めると加点の対象となる.
また,第1回レポート〜第3回レポートの提出後に
改良できている場合は最新の結果を含めるようにする.
各回レポートに対応する Cプログラムのファイルや,Cヘッダファイル(あれば),
Makefile は,必要ならディレクトリに分ける.
また最終レポートにはプレゼンテーション資料も含めること.
つまり,最終レポート提出物は,
例えば「ReportAll.txt, lu.eps, lu-par.eps nq-par.eps, presen.odp, 1/Makefile, 1/lu.c, 2/Makefile, 2/lu.c, 3/Makfile, 3/nq.c」を zip で固めたもの
といった具合になる.
-
注意:
プログラムが未完成の場合も原則として,期限までにレポートを提出すること.
(ただし,期限に遅れた場合でもあきらめず1時間でも早く提出すること.
万一期限後となった場合は提出方法が異なる可能性もあるので,
Moodle上で確認すること.
第1回レポートについての更新があった場合は,
第2回レポートに含めて構わない.
第1〜3回レポートについての更新があった場合は,
最終レポートに含めて構わない.)
プレゼンテーション
プレゼンテーション資料は,
(プレゼンテーション後に提出予定の)
最終レポート(=第1回レポート〜第3回レポート+全体まとめ)の内容のうち,
測定した実行時間,プログラムの説明,考察をスライド形式でまとめる.
端末室の端末には OpenOffice.org 3.1.1 の
Impress (プレゼンテーション用ソフトウェア)が入っているので,これを用いる.
原則として次のようにすること。
- 発表時間 6分。(質疑時間を除く)
- 文字サイズ 24ポイント以上
- スライド枚数8枚(タイトルと感想含み)
- タイトル1枚、LU逐次について2枚程度、LU並列化について2枚程度、NQ並列化について2枚程度、感想(まとめ)1枚
- タイトルには、氏名を明記(ニックネームではない)
-
○○についてのページには、
測定した実行時間,プログラムの説明,考察を○○について示す。
1枚目にこれらをまとめて書いておいて、
特に工夫した点を2ページ目で説明、など。
発表順は、発表スライドを提出した順の逆順とする予定
(つまり、より早く提出した人の発表は、より後とする)。
スライド提出締切は、発表当日午前とする(Moodle上で確認すること)。
成績
実験への取り組み態度も勘案し,課題レポートの評価に基づくが,
課題プログラムの実行速度も加点の対象とする。
Masahiro Yasugi