トップページへ

2024年度 学院等開講科目 情報理工学院 情報工学系 情報工学コース

高性能科学技術計算

開講元
情報工学コース
担当教員
横田 理央
授業形態
講義 (ハイフレックス型)
メディア利用科目
-
曜日・時限
(講義室)
月1-2 (M-135) / 木1-2 (M-135)
クラス
-
科目コード
CSC.T526
単位数
200
開講時期
2024年度
開講クォーター
1Q
シラバス更新日
2025年3月14日
使用言語
英語

シラバス

授業の目的(ねらい)、概要

本講義ではスーパーコンピュータを用いて大規模・高性能な計算を行うための並列アルゴリズムや高速化アルゴリズムやそれらを実装するためのSIMD、OpenMP、MPI、CUDAなどの並列プログラミング言語について紹介する。科学技術計算で多用される線形代数ライブラリの使い方やその基礎にあるアルゴリズム的工夫についても解説し、逐次実行用のものから大規模並列用のライブラリまで幅広く取り上げる。また、並列計算用のデバッガやプロファイラの使い方についても解説する。基本的なアルゴリズムの高性能実装やコンテナを用いてTSUBAMEを利用する方法,深層学習フレームワークの大規模並列実装についても紹介する。

到達目標

本講義を受講することで以下の能力を習得することができる.
1. SIMDによるベクトル化、OpenMPによるスレッド化、MPIによる分散並列化が併用できるようになる.
2. OpenACC, CUDA, HIPを用いてGPUプログラミングができるようになる.
3. 高性能な数値計算ライブラリの内容を理解し、正しく使えるようになる.
4. 並列環境下でデバッガ、プロファイラを使って効率的に並列コードを開発できるようになる.
5. Singularityを使ったコンテナ環境構築や深層学習フレームワークを大規模並列計算機で動作させれるようになる.

キーワード

ベクトル化、共有メモリ並列、分散メモリ並列、GPUプログラミング、Pythonライブラリ、行列積、連立一次方程式の解法、並列デバッガ、並列性能解析、コンテナ、深層学習

学生が身につける力

  • 専門力
  • 教養力
  • コミュニケーション力
  • 展開力 (探究力又は設定力)
  • 展開力 (実践力又は解決力)

授業の進め方

今年は対面で講義を行う.
毎回コードを用意しておき実際にTSUBAMEにログインして演習形式で進める.

授業計画・課題

授業計画 課題
第1回 並列計算の基礎 並列計算に関する基本的なコンセプトや理論を身につける
第2回 共有メモリ並列化 OpenMPを用いて共有メモリ型の並列化ができるようになる
第3回 分散メモリ並列化 MPIを用いて分散メモリ型の並列化ができるようになる
第4回 SIMD並列化 SSE, AVX, AVX512を用いてSIMDベクトル化ができるようになる
第5回 GPUプログラミング 1 OpenACC, OpenMPを用いてGPUがプログラミングできるようになる
第6回 GPUプログラミング 2 CUDA, HIPを用いてGPUがプログラミングできるようになる
第7回 キャッシュブロッキング BLISLABやCUBLASを例にとってキャッシュブロッキングを実践する
第8回 高性能Python numPyやcuPyなどのライブラリを用いることでPythonコードを高速に実装できるようになる
第9回 I/Oライブラリ NetCDF, HDF5, MPI-IOなどの並列I/Oライブラリを適切に使えるようになる
第10回 並列デバッガ CUDA-GDB、ARM DDTを用いて並列プログラムをデバッグできるようになる
第11回 並列性能解析 gprof, VTune, NVProfを使って並列プログラムの性能解析ができるようになる
第12回 コンテナ Singularityを用いてDocker imageを使えるコンテナ環境を構築する
第13回 科学技術計算 偏微分方程式を離散化し、それを並列に実装する方法を身につける
第14回 深層学習 PyTorchを用いて大規模なニューラルネットを並列計算機上で学習する

準備学修(事前学修・復習)等についての指示

学修効果を上げるため,教科書や配布資料等の該当箇所を参照し,「毎授業」授業内容に関する予習と復習(課題含む)をそれぞれ概ね100分を目安に行うこと。

教科書

なし

参考書、講義資料等

なし

成績評価の方法及び基準

小レポート (40%) 期末レポート (60%)により評価する.

関連する科目

  • 数値計算法(学部)
  • 計算数理応用–アルゴリズム–

履修の条件・注意事項

なし