知能情報工学実験演習III「並列プログラミング」(2018年度)
担当
2015年度から「並列プログラミング」は実施方法が変更となり,
内容もある程度,変更となりました.以下の点が主な特徴となります.
(1) プロクラムをチームとして開発すること,
(2) マルチプロセッサ/マルチコア計算機向けのマルチスレッドプログラミングと複数計算機を用いる分散並列プログラミングの両方の要素を持つ.
2018年度のプログラムの仕様はこちらとなります.(2016年度以降,未回答数に上限を設けられています.)
高速化,LU分解等については
2014年度までと同様となりますので,
参考情報として以下のページをそのまま継続しています.
(スケジュールやレポート等については無視してください)
分散環境を想定したものではありませんが,(スレッドを用いた)マスターワーカ方式やワークスティール方式については(プロセスとソケット通信等を用いた)分散環境でも同様の負荷分散を行う際のヒントとなります.
なお,2014年度末に計算機システムが更新されていますので,ソフトウェア(開発)環境,ハードウェアとも2014年度から変更となっています.
端末室の端末のプレゼンテーション用ソフトウェアも LibreOffice 4.2以降(現状 4.3.7.2)の Impress となっています.
以下の2014年度ページの「高速化」などでは
Core 2 Duoとなっていますが,
2015年度からはCore i3 4130 (3.40GHz) (SSE4.2 や AVX2あり)となっています.
また,「インテルR 64 アーキテクチャーおよび IA-32 アーキテクチャー最適化リファレンス・マニュアル」への外部リンクは現在無効ですが,このキーワードで検索することは可能です.
new:
実行時間の上位ランキング
11/09, 1/11
連絡事項などは Moodle以外にこのページにも記載することがあります.
ときどき再読み込み(reload)してください。
最終更新: Fri Jan 11 14:39:54 JST 2019
2017年度topへ(参考)
参考
知能情報工学実験演習III「並列プログラミング」(2014年度)
(旧内容 )
マルチスレッドプログラミング
担当
クロック周波数自動調整(SpeedStep)が有効になっていると性能が変動します.
SpeedStep の無効化は,E601の端末では,
コマンドラインから cpuspeed
(一般ユーザの権限で実行可能なE601独自のコマンドで,コマンド名のみで実行)
で可能となっていますので,
性能測定前に実行して性能を安定化させてください.
なお,コマンドラインから grep Hz /proc/cpuinfo
で
cpu MHz が変らないかなどである程度確認できます.(9/19)
new:
実行時間の上位ランキング
第1回, 第2回, 第3回, 最終 (2/03)
new:
実行時間の上位ランキング on 計算サーバ(オプション)
第2回, 第3回, 最終 (2/03)
2015年1月の予定が 1月16日,1月23日に変更になりました.
1月9日はありません(出席をとりません).
連絡事項などは Moodle以外にこのページにも記載することがあります.
ときどき再読み込み(reload)してください。
最終更新: Feb 3, 2015
自分のプログラムが遅いと思った場合
「準備 」にある初歩的な「最適化オプション」を
読み忘れていないか確認しましょう.
資料・説明など
課題など
ニックネーム,定期進捗報告
- 以下の報告は,Moodleにて知らせること。
- 実験開始日の 10/3 にニックネームを知らせること.
ニックネームは実行時間の上位ランキングを示すのに利用する.
(参考: 2013年度の実行時間の上位ランキング,
2013年度の実行時間の上位ランキング
on 計算サーバ(オプション))
(実行時間の上位ランキングはWebで一般に公開してしますので,
そのつもりでニックネームを指定してください.
公開される「上位ランキング」に本名が掲載されて構わなければ,
本名でもかまいません.また途中変更を1回のみ認めます.
また,1月の「プレゼンテーション」において示された記録(実行時間)から,
他の受講者には,
ニックネームが誰なのかわかることになると考えられますので,
必要ならニックネームの使い回しを避けるなどの工夫をしてください.)
- 毎週(10/3, 10, 17, 24, 31, 11/7, 14, 12/5, 12, 19, 1/16)
の最後にその週の進捗を知らせること.
読み進めた資料と,(部分的に)終了したWeb課題番号(1〜6)や現在検討中の
演習内容について簡単にまとめればよい.
(例えば: 「高速化とLU分解は読みました.課題1としては完成していて,
高速化として効果が高そうなブロック化について調査中です.」など)
- 質問がある場合,2人の教員宛のメールによる質問は常に受け付けている.
演習時間中は TAにも直接質問してみてください.
レポート
締切
第1回 | Web課題1〜2(主にWeb課題2) | 10/24(金)12:00
|
第2回 | Web課題1〜3(主にWeb課題3) | 12/05(金)12:00
|
第3回 | Web課題4〜6(主にWeb課題6) | 1/16(金)12:00
|
最終 | Web課題1〜6(最終レポート※)・プレゼンテーション資料 | 1/30(金)12: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, lu/Makefile, lu/lu.c, nq/Makfile, nq/nq.c (配列版も提出する場合はさらに: nq_a-par.eps, nq_a/Makfile, nq_a/nq_a.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上で確認すること)。
成績
実験への取り組み態度も勘案し,課題レポートの評価に基づくが,
課題プログラムの実行速度も加点の対象とする。
2013年度topへ(参考)
Masahiro Yasugi