量子コンピューティングのためのハードウェアは、あと数年で現実の使用事例が見られる段階にまで開発が進んでいる(Volkswagenリリース)。それにともない、当然のことながら量子コンピューターの力を最大限に活かせるプログラム方法の研究も着実に増えている。その分野の研究のひとつにSilq(シルク)がある。スイス連邦工科大学(ETH)チューリッヒ校の量子コンピューティング用高水準プログラミング言語だ。
□Volkswagen demonstrates first successful real-world use of quantum computing to help optimize traffic routing – Volkswagen US Media Site
https://media.vw.com/releases/1236
□Silq – What is Silq?
https://silq.ethz.ch/
ここで重視すべきは、「高水準プログラミング言語」であるという点だ。この言語の開発に携わる研究者たちによれば、現在、量子コンピューターのプログラマーたちは、まだ抽象度の低い低水準言語で必要以上に苦労しているという。
「このプロジェクトの歴史は、量子コンピューターの中核的な問題を解決したいというところから始まっています」とETHコンピューター科学准教授であるMartin Vechev(マーティン・ベシェフ)氏は私に話してくれた。
□Prof. Dr. Martin Vechev | Secure, Reliable, and Intelligent Systems Lab
https://www.sri.inf.ethz.ch/people/martin
「しかし量子コンピューティングの中核的問題を解決するためには、例えば量子プログラムの解析や推論をするには、それらの問題が記述されている言語が必要です。それは既存の言語です。私たちは量子コンピューティングのさまざまな問題を見てきましたが、基本的にはその言語を見て、問題がどのように記述されているかを確認するという作業が主体になります。しかしお察しのとおり、これは理想的とはいえず、最適な方法でありません」。
そこで彼らは、実際に使われている別の言語も調べてみることにした。Microsoft(マイクロソフト)のQ#や、IBMのQiskitなどのSDKだ。
「当初は、新しい言語を開発する必要性などまったく感じていませんでした」とベシェフ氏の博士課程大学院生であるBenjamin Bichsel(ベンジャミン・ビクセル)氏は話す。「そこをそもそものスタート地点として検討するなど、考えてもみませんでした。量子コンピューターで、もっと高度な問題を解決したいと思ったときに、よしそれじゃあ適当に言語をひとつ選んで、それでやろうというのが私たちの考え方でした。しかし気がついたのです。私たちが推論したいと関心を持つような高度なプロパティーには、既存の言語はまったく不適格でした」
>>2 へ続く
2020年6月16日
TechCrunch Japan
https://jp.techcrunch.com/2020/06/16/2020-06-15-silq-is-a-new-high-level-programming-language-for-quantum-computers/
>>1 から続く
今週のPLDI 2020で発表を予定しているSilqの論文を
共著した1人は、あまりにも面倒なので既存の言語は一切使わなかったとさえ話している。この論文の執筆には、ビクセル氏とベシェフ氏の他、Timon Gehr(ティモン・ゲール)氏とMaximilian Baader(マクシミリアン・バーダー)氏も参加している。
□PLDI 2020
https://conf.researchr.org/home/pldi-2020
□Silq: A High-Level Quantum Language with Safe Uncomputation and Intuitive Semantics (PLDI 2020 – PLDI Research Papers) – PLDI 2020
https://pldi20.sigplan.org/details/pldi-2020-papers/47/Silq-A-High-Level-Quantum-Language-with-Safe-Uncomputation-and-Intuitive-Semantics
では、既存の言語のどこが悪いのだろうか?「それを理解するための入口として最適なのが、従来の言語には存在しなかった量子コンピューティングならではの基本的な難題、つまり『非計算』に注目することです」とベシェフ氏は話す。実際、非計算はSilqの中核的なアプローチであり、ネイティブに組み込まれている。非計算には古典対応があるものの、だからといってその概念が直感的にわかるというものではない。
「古典的な言語で『AまたはBまたはC』を計算させようとすると、先に『AまたはB』を計算してから、『(その結果)またはC』が計算されますが、その間に計算された一時変数は忘れ去られてしまいます」とビクセル氏。「これを量子で行うと、予期せぬ副作用が発生します【略】結論として、こうなると予測されたことが、ここでは起こりません。そのためなんとかこれに対処しなければならないのです。これが意味するものは、現在あるすべての量子言語では、本質的に抽象度が大変に低いところでの作業を強いられるということです。そこでは、すべての一時変数を考慮しなければなりません。基本的にこれが、高水準な思考を妨げているのです」。
つまり、整数を可算するなど比較的些細なことをしようと思っても、量子コンピューターでは、処理の過程で発生したあらゆる一時変数を考慮して、明示的に扱わなければならないということだ。
>>3 へ続く
>>2 から続く
「量子コンピューティングでは、廃棄すべき一時変数などのガーベッジに常に対処しなければならないため、常に対応が強いられます。それが、これらの言語を使う上で大変な手間になるのです」とビクセル氏。現在の量子言語はその回避を試みているが、その方法はやや難解だ。それに対してSilqは、安全な自動非計算が最初から使えるようになっている。
ベシェフ氏はまた、低水準プログラムの記述ではエラーが発生しやすく、アルゴリズムが実際に何をしているのかを理解しづらいと話している。それに対してSilqの型チェッカーには、プログラマーが犯しやすい一般的なミスを低減してくれる機能がある。また研究チームは、古典的な言語の最新の技術(オーナーシップタイプやリニアタイプのシステム)に注目し、量子コンピューシングのコンテキストに実装しているが、これもSilqが初めてだ。
ここまで知れば、Silqで書かれたプログラムは、Q#やQuipperなどと比べてずっと短く、量子プリミティブの数もずっと少なくなる(Silqリリース)ことを研究チームが発見したと聞いても、ビックリはしないだろう。
□Silq – Comparison to Q#
https://silq.ethz.ch/comparison
しばらくの間、Silqはまだ研究プロジェクトの段階であり、既存のいずれの量子ハードウェアプラットフォームでも走らせる予定はない。だが彼らは、独自で量子エミュレーターを作成して前提の検証を行っている。「我々の場合、大変に高水準な言語のため、コンパイルは2段階処理で行うことを考えています。まずは高水準な目的を表現する。するとそれを受けてコンパイラーが使用されるアーキテクチャーを特定し、それに対してどのように最適化するかを判断します」とビクセル氏。
Silqの詳細を深く知りたいという方は、こちらで論文が読める。
□Silq: a high-level quantum language with safe uncomputation and intuitive semantics | Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation
https://dl.acm.org/doi/abs/10.1145/3385412.3386007
画像クレジット:ALFRED PASIEKA / SCIENCE PHOTO LIBRARY / GETTY IMAGES
[原文へ]
https://techcrunch.com/2020/06/15/silq-is-a-new-high-level-programming-language-for-quantum-computers/
プログラミング言語も重要なんだけど、コンパイラが最適化されてなければ意味ねーよ
それに量子コンピュータの場合、エラー訂正の精度が最も重要
量子ビットが増えるほどこれがメンドクサイことになるからな
型宣言なし?
MSだからまた邪魔してんのか
2020年代は量子コンピューターで指数関数的に進化しそうだな
5Gと合わさって自動運転はほぼ規定路線かな
AIのモデルリングは早々に自動化して、2020年はAI開発者のリストラが始まってるが、
プログラムは何故か出来ないんだな
ともかく実装を使わせてくれなきゃサッパリ分からんなぁ。
効率を求めなきゃ既存のコンピュータでも動くわけでしょ。
もっとも量子コンピュータの実物が出てきたら
実用にはSilqじゃない別の言語が使われそうな気がするけど。
おっと、ここはビジネスニュース板だった。上の投稿に追加。
そんなわけで、これは科学ニュース板向けの話題かも知れん。
C/C++で良いのでは?
>>27
だね。
まっとうな高水準言語の設計がまたここからか。
しかし、高級って訳すバカばっかの時代に高水準と訳したことに拍手。
引用元
管理人からひと言
今の開発手法でどれくらい通用するんだろうか
この記事へのコメントはありません。