1週間でスパコンを完全に理解する

「人の想像力の上限は、普段使っている計算資源の規模で決まる。」スパコンを「チョットデキル」研究者によるスパコンプログラミングを7日で完全に理解するためのガイド。
2020.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

夏!ということで、冷やし中華と同じノリでスパコン・HPCをはじめることになった学生・エンジニアも多いのではないかと思います。

そんなエンジニアにピッタリの1週間でスパコンを完全に理解するチュートリアルを見つけたのでご紹介します。

「一週間でなれる!スパコンプログラマ」

執筆しているのは、スパコンに関しては「チョットデキル」( *1)域に達している慶応大学の渡辺先生です。

少し前にバズったスライド「研究をはじめる前に知っておいて欲しい7つのこと」を書いたのも、この渡辺先生です。

誰に向けて書かれている?

「はじめに」でオーディエンスやゴールが書かれています。

この記事では、近くにスパコンに詳しい人がいない人のために、「とりあえず7日間でスパコンを使えるようになる」ことを目指す。より正確には、「7日間程度かければ、誰でもスパコンプログラマになれそうだな」と思ってもらうことを目指す。

学べること

タイトルの通り、7日間でスパコンプログラミングを学びます。

  • Day 1 : ローカルPCで並列プログラミング(MPI)を学びます
  • Day 2 : スパコンの主要コンポーネントを学びます
  • Day 3 : 並列タスク間で依存関係や情報のやりとりが発生しない自明並列(サンプル並列とパラメタ並列)を学びます
  • Day 4 : 非自明並列の例として論理的に距離が近いノードのみと通信が必要となる局所通信を学びます
  • Day 5 : 二次元反応拡散方程式を例に本格的な領域分割を学びます
  • Day 6 : スレッド並列、及び、プロセス並列(Day5までの並列化)とスレッド並列を併用するハイブリッド並列を学びます
  • Day 7 : スパコンには3つの並列化手法、プロセス並列、スレッド並列、データ並列があります。最後にデータ並列であるSIMD化について学びます

内容は盛り沢山です。

残念ながら、スパコンのように歴史があり、技術的な幅・深さがあるテーマを一朝一夕に理解できるわけでは有りません。

もともとスパコンプログラマになることを目標にかかれた記事であることを考慮すると、スパコンの雰囲気を知りたい場合は、 Day 2 までじっくり読み、あとは気になるところを試しながら斜め読みでもよいかと思います(渡辺先生、ごめんなさい)。

最後に

「おわりに」から執筆の思いを引用します。

近い将来、学会の懇親会などで「『一週間でなれる!スパコンプログラマ』を読んでスパコンプログラマになりました」と、見知らぬ学生さんに突然話かけられるのを夢見て、筆を置くことにする。

スパコン、始めませんか?

脚注