明治大学 総合数理学部ネットワークデザイン学科の吉田明正教授にお話しを伺いました。

吉田明正教授

多くの高校生にとって、今やマストアイテムとなっているスマートフォン(以下、スマホ)。その高性能化は目覚ましく、さまざまなアプリをパソコンに匹敵する速さで実行する(動かす)ことができるようになった。「以前はこんなに速く動かなかった」「一つのアプリしか動かなかった」といった、大人のぼやきを聞いたことはないだろうか?

そんな高速化の鍵を握るのが、コンピュータで複数の計算を同時に行う「並列処理技術」で、吉田明正教授は20年以上の研究実績をもつ。

「アプリの多くは、クラウド・データセンター(インターネット経由で利用するコンピュータ群)に接続して、大規模な計算が行われています」と吉田教授。

複雑な計算に時間がかかることは周知のことだが、コンピュータの計算速度の向上は
著しく、世界最速のスパコンの場合、4年ごとにおよそ10倍の高速化が実現されているという。これらのコンピュータの高速化は、マルチコア・プロセッサと呼ばれる複数コア(計算装置)のCPU(中央処理装置)上で並列処理を行うことにより実現されている。

高速化によって、どんな恩恵が得られるのか? 「例えば気象予測アプリ。初期モデルで
は、日本列島を100km四方ごとに分けていました。それを10km四方、5km四方にするなど精度を上げてシミュレーションすることが可能です」と吉田教授。最近の気象予測が、細かく地域を分割して行われるようになったのは、並列処理によるものなのだ。

コアの数だけ同時計算でき、高速計算が可能になる

最新のスマホやパソコンには、8コアのCPUが搭載され、8つの計算を同時に行える。一方、スパコンの中でも最速のものは、240万コアが搭載、つまり240万個の計算を同時に行うことが可能だ。例えば、ある問題を解決しようとするには、一人より複数人で分担した方が効率的で速い。それと同じように、コンピュータもコア数を増やせば増やすほどコンピュータの計算速度を上げることが可能になる。

高速計算を実現する並列ソフトウェアを自動生成

コンピュータは、常にプログラムに従って計算する。中でも、並列処理の場合には、同時に実行する計算を明記した並列ソフトウェアが必要になる。特に、高速計算を実現する並列ソフトウェアは、全コアを「効率よく」利用する必要があり、熟練した技術を持つプログラマーでさえ、作成に多大な時間を要するそうだ。

「そこで私たちの研究室では、並列ソフトウェアを自動的に作るための並列化コンパイラを研究しています」と吉田教授。

コンパイラとは、人間にわかるよう書かれたプログラミング言語を、コンピュータがわかるよう翻訳するシステムソフトウェアのこと。「この並列化コンパイラが普及すると、世の中のあらゆるプログラムを容易に並列処理することが可能となり、スマホからスパコンに至るまで、アプリを高速に実行することができます」とのことだ。

同研究室は3年次から所属し、まず並列処理の論文を輪読して共通テーマでプログラミングし、秋以降、各自テーマを決める。4年次には学会発表などを経験し、卒業論文にまとめる。学年別のゼミ中心だが、マンツーマンでの個別指導も行う手厚さだ。

「本学科は、IoT 社会を支える社会基礎の実現を目指しており、並列処理技術は様々なネットワークシステムへの応用が期待されています。ただ、プログラミングも大事ですが、よりよいソフトを作るには他の人の関連研究に触れることや、ゼミでのディスカッションも大切です」と吉田教授は話してくれた。

総合数理学部ネットワークデザイン学科で何が学べるの?

先輩に聞く

ネットワークデザイン学科4年 大内佑一朗さん(東京・明治大学付属明治高等学校出身)

 

高校時代はオープンキャンパスでプログラミングにトライした経験しかありませんでしたが、プログラミングと人工知能に興味があり、本学科に入学しました。現在は卒業研究として「機械学習を用いた物体検出の並列処理による高速化」に取り組んでいます。社会で求められている人工知能の研究は今後、機械学習の高速化が不可欠で、やりがいがあります。研究やインターンシップを通じて本研究をもっと進めたいと思い、大学院に進学することを決めました。本学科には、いろいろな分野の研究があります。幅広く学ぶ中で、きっとやりたいことが見つかるはずです。