量子コンピュータとエンジニア
エンジニアの皆さんは1度や2度は、量子コンピュータという文字を目にしたり、聞いたりしたことがあるでしょう。
量子コンピュータの開発にGoogle・IBM・Microsoft・Amazonなど、巨大IT企業が本気で取り組んでいます。2021年には、IBMが量子エリートの獲得に年収2,750万円を提示したニュースがネットで話題になり、就職活動に大きなインパクトを与えました。
量子力学に興味がある方の中には、インターン募集の広告に目を惹かれた方も少なくないでしょう。
夢のコンピュータと言われて久しい量子コンピュータですが、2019年にGoogleは世界最速のスーパーコンピュータで1万年かかる計算を、わずか数分で終えたとする実験結果を発表しています。
量子コンピュータの開発に成功したら、その超越的な計算能力によって、様々な環境問題や社会問題を解決できると言われています。一方で、従来型コンピュータには誤り訂正機能が備わっていますが、量子コンピュータではその技術がまだ開発されておらず、開発が難航しているとも言われています。
この記事では、量子コンピュータに関してITエンジニアが押さえておきたいポイントに絞り、わかりやすく話を進めていきます。
量子コンピュータは何がすごい?
従来のコンピュータは2進法を採用し、「0」と「1」の2種類のビットを用いて計算しています。一方、量子コンピュータはビットの概念を拡張した「量子ビット」を用いて計算をする点が大きく異なります。
量子力学では、「0と1を重ね合わせた状態」すなわち「量子重ね合わせ」の存在を認めており、「量子ビットでは2進法と比べてはるかに表せる情報の種類が多くなり、計算を高速に行えます。
2進法では4ビットで表せるのは、0000から1111までの16通りですが、4量子ビットは「0と1を重ね合わせた状態」を利用して16通りをいっぺんに表すことができます。
その結果10量子ビットでは1024通り、50量子ビットでは1125兆通りを1度に扱え、理論上は2進法と比較して約1億倍という圧倒的に速い計算が可能です。これが量子コンピュータの原理です。
しかし、量子コンピュータの実力を発揮するためにはアルゴリズムが必要です。なぜなら、量子コンピュータが導き出す答えは複数あり、その中から必要な答えを高確率で得るためのアルゴリズム(量子アルゴリズム)がなければ、解を導き出すことができないからです。
この量子アルゴリズムを開発できるか否かが、実用的な量子コンピュータ開発の鍵です。
量子コンピュータは「重ね合わせ」原理による計算の並列化、波どうしの「干渉」による正解率の増幅といった特殊なロジックによって計算スピートや精度を高めていくため、未経験者の方はこうした考え方を理解をするのに相当時間が必要かもしれません。
世界最速級シミュレータ
量子アルゴリズムの開発には動作をシミュレーションするためのシミュレータが必要ですが、動作シミュレータとしては2022年3月に、富士通がスーパーコンピュータ「富岳」のプロセッサ性能を生かした世界最速レベルの36量子ビットのシミュレータを開発しています。
またIBMでは、量子ロードマップを発表し、2023年には1,000量子ビット超のユニバーサル量子プロセッサーの発表を計画するなど、量子コンピュータ開発競争は次第にデッドヒートの様相を呈しています。
ただし、従来型のコンピュータの物理性能には限界があり、量子コンピュータの開発には超電導体など新たな材料が必要と言われており、ハード面での技術革新も求められています。
【参考】:スーパーコンピュータ「富岳」のテクノロジーを活用し、36量子ビットの世界最速量子シミュレータの開発に成功 | 富士通 【参考】:IBM Japan Newsroom - ニュースリリース
そもそも量子とは
私たちの身体や、私たちの身の回りにある物質はすべて原子によって成り立っています。原子には原子核があり、原子核は陽子と中性子から構成されています。陽子は正の電荷を帯び、中性子は電荷を帯びていません。原子核の周りには、負の電荷を持つ素粒子である電子が分布しています。
原子は現在118種類が見つかっており、それぞれ原子番号が付けられています。
量子とは、物質の最小単位である原子よりも小さな電子・原子核・陽子・中性子など、物質としての性質(粒子性)と状態の性質(波動性)の両方を合わせもった存在を「量子」(quantum)と呼び、その量子を研究する分野は「量子力学」と呼んでいます。
エンジニアとして押さえておきたいこと
以上解説したように、夢物語と言われた量子コンピュータの実用化が見えてきました。世界ではIBM・マイクロソフト・Google・Amazonなど、巨大IT企業が量子コンピュータの開発にしのぎを削っていますが、日本でも富士通や日立などコンピュータメーカーも研究開発に注力しています。
実際、国内でも量子コンピュータエンジニアや量子力学技術者の求人が活発化しています。こうした状況を踏まえ、私たちエンジニアは量子コンピュータとは無縁ではいられなくなるでしょう。これから、量子コンピュータに関係して押さえておくべきポイントを挙げていきます。
実用化に向けた動き
これまで私たちとは無縁の世界と考えていた「量子コンピュータ」が実用化に向かって大きく進み始めた点は見逃してはなりません。IBMが量子エリート(量子エンジニア)の獲得に向けて、破格の年収条件を提示しました。
今後、この動きは加速していく可能性が高いと考えられます。日本IBM社が2020年を量子コンピュータ元年と位置付けたように、これから2023年、2024年に向けて量子コンピュータ市場は大きく拡大していくでしょう。
これまではDX・AI・IoT・ビッグデータなどが話題の中心でしたが、これからは量子コンピュータがバズワードとなっていくかもしれません。
【参考】:日本IBMから見る、量子コンピュータ時代に向けた人材育成とは | TECH+(テックプラス)
クラウドサービスの変化
ここ数年間でクラウド市場は急速な成長と拡大を見せていますが、既に米国IBMは2016年から量子コンピュータのクラウドサービス「IBM Q Experience」の提供を開始しました。この分野はIBMが先鞭をつけましたが、富士通も2022年10月から量子コンピューティングのクラウドサービス提供を行うと表明しています。
他、AWSをはじめとしてクラウドサービスを利用した量子コンピューティングサービス展開の動きが加速しており、我々エンジニアの仕事も大きく変わっていくかもしれません。
【参考】:富士通、富岳ベースのスパコンや量子コンピューティングをクラウドで提供 | TECH+(テックプラス) 【参考】:Amazon Braket (量子コンピューティングの深堀と実験) | AWS
期待される分野
量子コンピュータがどの分野に適しているのか、何が解決できるのかはまだ模索の段階です。量子コンピュータは大別すると「アニーリング型」と「量子ゲート型」に分かれます。
「量子ゲート型」は、処理単位を現在のコンピュータの「bit」から「量子bit」に置き換えたコンピュータのことで、これまでは「量子コンピュータ」と言えばゲート型を指してきました。
「アニーリング型」とは「組み合わせ最適化」に特化した量子コンピュータのことで、例えば物流ルートの最適化、ルートセールスの最も効率的なルート探索、交通渋滞をなくすための目的地別最適ルート探索などの用途が適すると考えられ、実用化も始まっています。
他、新薬開発・ビッグデータ解析・AI開発などでの活用が期待されています。AI開発においては、より人間の思考に近いAIの開発が可能になるかもしれません。いずれにしても、さまざまな事例が積み重なっていく中で、最適分野が明確になっていきますので、動きに注視しましょう。
プログラミング言語
量子コンピュータに関わるエンジニアを目指す場合、使用言語が気になるところです。量子コンピュータの命令型量子プログラミング言語としては、最初に実装されたQCLとLanQが知られています。
他、Pythonのライブラリーとして開発されたIBM製のQiskiは実機を動かせるだけではなく、シミュレータ機能を搭載しているため、従来型コンピュータでの利用が可能です。Microsoftは量子コンピュータ開発用にオープンソースのQ#プログラミング言語を提供しています。
このように、量子コンピュータのプログラミング環境はクラウドサービス上に用意され、誰でも簡単に扱えるようになっていきます。
【参考】:QCL (Quantum Computing Language)|GitHub 【参考】:LanQ – a quantum imperative programming language 【参考】:Qiskit を使った量子計算の学習 【参考】:Q# プログラミング言語と QDK とは? - Azure Quantum | Microsoft Docs
エンジニアとして量子コンピュータとどう関わっていくのか
ここまでエンジニアとして最低限押さえておきたい、「量子コンピュータ」に関する入門知識について解説しました。量子力学は概念を理解するのが大変ですが、少しずつでも理解を深めたいものです。
ここで大切なことは、量子力学について学ぶことではなく、これから大きく成長していくであろう量子コンピュータと、私たちの仕事がどう関わっていくのかを理解することです。
所属中のITベンダーが量子コンピュータ絡みの案件を受注し、自身がプログラミングを担当する可能性は日増しに高まっていくでしょう。来る日に備えて、少しずつ量子コンピュータやプログラミング言語について学んでいくことをおすすめします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから