南山の先生

学部別インデックス

理工学部・電子情報工学科

横山 哲郎

職名 教授
専攻分野 コンピュータサイエンス(計算機科学)
主要著書・論文 "Fundamentals of Reversible Flowchart Languages," Theoretical Computer Science, 2016. 共著 <doi:10.1016/j.tcs.2015.07.046>
将来的研究分野 可逆計算,プログラミング,プログラミング言語
担当の授業科目 情報科学概論,卒業研究,プログラミング基礎,プログラミング応用,ネットワークプログラミング

記憶力抜群!エネルギー節約の秘策!?可逆計算とは

あなたの手元にあるスマートフォンにしても大規模な計算能力をもつスーパーコンピュータにしても、実はあることがあまり得意ではありません。それは何から計算し始めたか、どうやって計算したかを憶えておくこと。つまり、一度計算を終えると元が何であったかは全く分かりません。一度計算を行うと、その過程の情報をどんどん忘れてしまうのが「非可逆計算」です。例えば、10という数字を見たとき、それが5+5から得たのか、それとも7+3から得たのか、コンピュータ自体は思い出すことはできません。

一方で、「可逆計算」は情報を一切忘れません。どのような計算結果からも元の数字を逆算することができる、記憶力が抜群な計算法です。「可逆計算」の研究のさきがけとなったのは、IBMの研究者達。その研究の始まりはなんと半世紀以上も前に遡ります。その主な研究の主な動機は二つ。一つは計算にかかる本質的なエネルギーを理解し、その消費を抑えたいというもの、もう一つは未来の計算法である「量子コンピューティング」の可能性を探求したいというものです。

ただし、可逆計算を活用する新たなコンピュータの設計と構築は、一朝一夕には行えるものではありません。パーツの選択、コンピュータの設計、プログラミング言語の設計、そして最も効率的な手順まで、全てが初めての試みとなります。これは新たな料理を開発する料理人に近いです。美味しい料理を生み出すためには、最初の素材選びから最後の調理法まで、全てを一から検討し、実験し、試す必要があるのと同じです。

それでは、可逆計算の研究の具体的な課題をいくつか見てみましょう。一つ課題を挙げると、一般的なコンピュータと同じような計算法を効率的に行えるかということが挙げられます。効率的な「非可逆計算」を効率的な可逆計算に変換できるのでしょうか。可逆計算にするとメモリ使用量が増えることが知られていますが、それがどの程度なのか、またその増加をいかに抑えるかというのが課題となります。こうした変換の効率化が可能であれば、我々が現在利用しているコンピュータと可逆なコンピュータの間に橋渡しをすることが可能になるでしょう。

また、可逆計算のためのプログラミングを支援する新たなプログラミング言語の開発も必要とされます。現在のプログラミング言語の多くは非可逆計算を前提としていますので、可逆計算を行うには新たな言語の設計が必要となるでしょう。このような新たな言語を設計することで、可逆計算の利点を活用するコンピュータシステムの実現に大きく寄与することが期待されます。

これらの課題に対して、研究者たちは着実に進歩を遂げています。現在のものとは根本から異なる可逆コンピュータシステムは、エネルギー効率と計算能力を飛躍的に向上させる可能性を秘めたものであり、未来のコンピューティングに大きな変革をもたらす可能性があります。

可逆計算の学習を効率的に始めるには、どのように進めればよいでしょうか?プログラミングやソフトウェアの視点から見た可逆計算の最近の20年の進展を理解するためには、どのような順で学んでいくべきでしょうか?これらの疑問を解消するため、初学者ができるだけ理解しやすい形に以下の原稿をご用意しました。無料でインターネット上からダウンロードできるので、興味があればぜひ手に取ってもらえれば、と願っています。日本語訳も準備中です。

Robert Glueck, Tetsuo Yokoyama, Reversible computing from a programming language perspective, Theoretical Computer Science, Volume 953 (2023), 113429, ISSN 0304-3975, https://doi.org/10.1016/j.tcs.2022.06.010