量子コンピュータ

近頃量子コンピュータが話題になってきたが、これによってコンピュータアーキテクチャ界隈がどのような影響を受けることになるのかを考えてみたい。
(とはいえ、量子コンピュータに詳しいわけではないので、このブログを引用してとかあまり当てにするのはやめてほしい。)

量子コンピュータはビットが0か1かを明示せずに計算できるコンピュータだ。
(ちょっと雑な説明だろうか。ただ自分の中では単にこれだけしか理解していない)

世間では現在のスパコンを遥かに凌ぐ性能と言われているが、合っているような間違っているようなという気分だ。
というのも量子コンピュータに合った計算と合わない計算というものがある。
簡単に言ってしまえば探索問題ならスパコンを遥かに凌ぐ性能と言えるだろう。(ビット数の問題はある)
一方で工場の制御をする場面という”制御”が中心となる計算、天気予報などの流体計算、ディープラーニングなど探索的な方法が通じないものは量子コンピュータではあまり速くならない。

量子コンピュータで速くなるもの

  • 暗号解読
  • ナップザック問題
  • SAT
  • その他クラスNPに属する問題の一部 (最適化問題のこと)

量子コンピュータで速くならないもの

  • 機械の制御
  • 天気予報 (速くなる部分は多少あるかも)
  • 流体計算
  • ディープラーニングによる画像処理
  • クラスPに属する問題

どうだろうか。こうしてみると意外と速くならない計算も多いように感じる。

ただ、一番影響が大きいのが暗号解読の問題だ。
おそらくアメリカの国防総省とかNSAあたりは量子コンピュータを持つことになる(多分既にある)。そしてテロリストの暗号化されている通信を傍受するだろう。
今まではrsaを使ってきたから、又はecdsaを使ってきたから安全だと言ってきたが、これだけ量子コンピュータの開発成功例が出てくると本格的に暗号を解ける量子コンピュータが出来上がるのは時間の問題なのかもしれない。
アメリカ政府が持つだけなら日本にとっては大きな問題にはならないだろう。しかし手にするのはアメリカ政府だけだとは思えない。学術的には論文にして発表し、再現性が確保されなくてはならないことを考えると論文になった時点で中国などの金銭的余裕のある国家、またはロシアなどの必要にせまられる国家は持っていると考えた方が良いだろう。
こうした時、企業や政府が機密を守れなくなり、国防、企業テロなどの面で影響が出ることになる。
(プライバシーの問題と言っている人もいるが、国・企業と主な重役しか標的にならないと思う。量子コンピュータが高価だし、通信傍受も難しい)

ここで登場するのがポスト量子暗号だ。
ポスト量子暗号は量子コンピュータでも解けない暗号という意味で、格子暗号というものが有力である。
GoogleがChromeに搭載したことでニュースになったようだ。
http://itpro.nikkeibp.co.jp/atcl/news/16/070802038/

いずれにせよ、量子コンピュータが普及し、ポスト量子暗号が使われる世界でも現代のプロセッサのコンピュータアーキテクチャが要らなくなるわけではない。むしろ量子コンピュータと現代プロセッサの境界に触れることができるかもしれない。これからが楽しみだ。

modelsimが起動しない (ubuntu16.04)

modelsimがubuntuで起動しなくて困っていた。
以下長々と書く内容をまとめるとライブラリが足らなくて起動できなかったようだ。
vsimというのがmodelsimの実体なのだが、実行しても”No such file or directory”と出てきて起動しなかった。
fileコマンドを使って見てみると
./vsim: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.4, BuildID[sha1]=be0130f25d5768e095133f4ed1d9d69902768269, stripped
と出てくるのでやはりELFでi386の実行ファイルだ。/lib/ld-linux.so.2はさすがにあるだろうと思っていたのだが、探して見たら無かった。どうやらこのマシンには/lib64/ld-linux-x86-64.so.2しか無いようだった。”ldが無い”というのはちょっと最初は信じられなかったがどうやら調べてみるとi386用のlibcが無いらしい。
今までアプリケーションはapt経由かソースを持ってきてコンパイルするかだったのでこの様なことになったのだろう。
ということで
sudo apt install libc6:i386
をした後に./vsimを実行すると
./vish: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory
というメッセージに変わるのでここからはエラーで出てきたライブラリのi386版をインストールするだけで済むので楽になる。
以下のコマンドで必要だったライブラリを一括インストールできる。
sudo apt install libc6:i386 libx11-6:i386 libxext6:i386 libxft2:i386 libncurses5:i386

#x86のライブラリが全然無いなんて思ってなかった