計算機システム特論

科目基礎情報

学校 高知工業高等専門学校 開講年度 令和04年度 (2022年度)
授業科目 計算機システム特論
科目番号 7143 科目区分 専門 / 選択
授業形態 講義 単位の種別と単位数 学修単位: 2
開設学科 ソーシャルデザイン工学専攻 対象学年 専2
開設期 前期 週時間数 2
教科書/教材
担当教員 山田 隆行

到達目標

現在、計算機システムは、最先端分野に限らずあらゆる分野で使用されている。ハードウエア、ソフトウエアおよびネットワーク技術の進歩に伴い計算機のもつ機能や性能は、飛躍的に向上してきたが、その潜在的な処理能力の恩恵を最大限に享受するためには、アーキテクチャの理解やプログラミングに関する高度な専門知識と技術が必要となる。
 本講義では、代表的な高速化手法について概観した後、コンパイラオプションによる高速化、マルチスレッドやGPU, OpenMP, MPIなどによる並列化による高速化、計算量を考慮したアルゴリズムやプログラムの高速化手法とその問題点等について教授し、実際に高速化前後の実行時間を計測することにより、これらの効果を確認する。
 与えられた課題を高速化により効率的に解析するために、計算機のもつ潜在的な処理能力を引き出す方法を検討でき、それを実践できる能力や技術を育成することを目標とする。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
代表的な高速化手法について代表的な高速化手法について理解し、その理由やしくみについて説明することができる。代表的な高速化手法を理解できる高速化手法を挙げることができない
各種具体的なの高速化手法について与えられた課題を高速することができ、複数の手法を組み合わせるなどさらに改良することができる与えられた課題を高速することができる与えられた課題を高速することができない
高速化を確認する方法について前後の実行時間の計測をすることができ、効率の度合いを数値等で示すことができる前後の実行時間の計測して、比較することができる。前後の実行時間の計測をすることができない

学科の到達目標項目との関係

学習・教育目標 (C) 説明 閉じる

教育方法等

概要:
各種アーキテクチャや情報技術をハードウエア、ソフトウエアおよびネットワークの領域に分類したうえで各領域でどのような高速化手法があるか検討し、計算コストや影響範囲の観点から効果的な高速化手法をについて考察する。次に、高速化を確認するために必要となる計算量の算出や実行時間の計測について学び、与えられた課題の高速化を行い実行時間を比較することで効果を確認する。
授業の進め方・方法:
講義資料をもとに基本的な考え方を教授し、その後、それを確認するための実習を行いうことで知識の理解を深めるとともに技術の定着を図る。回答例や答えをただ示すのではなく、ヒントを与えながら自ら気付かせる発見学習を目指す。
注意点:
授業への参加意欲、実習態度や回答を50%, 試験の成績を50%、その他、課題・レポートや小テストをプラスαで総合的に評価する。

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 高速化手法の分類、CPUアーキテクチャによる高速化とGPU, MP, MPIによる並列化、スレッドと排他制御について説明する 高速化手法を分類することができ、CPUアーキテクチャ、MPI等による並列化およびスレッドと排他制御について説明できる
2週 msecオーダの実行時間の計測方法について説明した後、実習問題を行う msecオーダの実行時間の計測することができる。
3週 計算量とは何か、記法について学び、それを使って実習問題の計算量を算出する。 計算量について説明することができ、具体的に計算量を算出することができる
4週 アルゴリズムにより計算量おおよび実行時間がどの程度違うのか各種ソートアルゴリズムを比較することで確認する 各種ソートアルゴリズムの違いについて理解し、計算量の算出や実行時間により比較することができる
5週 コンパイラオプションなど簡易な高速化を行い、実習問題の実行時間を計測することで確認する コンパイラによる最適化について理科し、必要に応じて使い分けることができる
6週 数式を括弧でくくることで演算数を減らすことにより計算結果を変えず高速化できることを実習問題により確認する 数式を括弧でくくることで演算量を減らすことができることを理解し、具体的に高速化を実践することができる。
7週 計算コストのかかる割り算の記述方法を工夫することで計算結果を変えず高速化できることを実習問題により確認する 演算の違いによる計算コストについて理解し、具体的に高速化を実践することができる
8週 ダミー変数を使うことで計算結果を変えず高速化できることを実習問題により確認する ダミー変数を使うことで計算結果を変えず高速化できることを理解し、具体的に高速化を実践することができる
2ndQ
9週 無駄な演算の記述を工夫することで計算結果を変えず高速化できることを実習問題により確認する 無駄な演算の記述を工夫することで計算結果を変えず高速化できることを理解し、具体的に高速化を実践することができる
10週 多重ループの記述や順番、ダミー配列を使うことで計算結果を変えず高速化できることを実習問題により確認する 多重ループの記述を工夫することで計算結果を変えず高速化できることを理解し、具体的に高速化を実践することができる
11週 メモリの種類によるアクセス速度の違い実習問題により確認する メモリの種類によるアクセス速度の違いについて理解し、具体的に高速化を実践することができる
12週 構造体の配列と配列の構造体の違いに処理速度の違いを実習問題により確認する 構造体の配列と配列の構造体の違いに処理速度の違いを理解し、具体的に高速化を実践することができる
13週 行列とベクトルに関する計算量について計算コストのかかる行列と行列の掛け算、逆行列の記述による速度の違いを実習問題により確認する 計算コストのかかる行列と行列の掛け算、逆行列の記述による速度の違いを理科し、具体的に高速化を実践することができる
14週 排他制御を行うことでスレッドにより計算結果を変えず高速化できることを実習問題により確認する 排他制御を行うことでスレッドにより計算結果を変えず高速化できることを理解し、具体的に高速化を実践することができる
15週 GPU, OpenMP, MPIなどによる並列化による高速化を実習問題により確認する GPU, OpenMP, MPIなどによる並列化による高速化を理解し、具体的に高速化を実践することができる
16週 まとめを行い、CPUのアーキテクチャによる高速化の今後の展望について考える。 CPUのアーキテクチャによる高速化の今後の展望について考察することができる

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週

評価割合

試験レポート・課題合計
総合評価割合5050100
基礎的能力000
専門的能力404080
分野横断的能力101020