量子コンピューティング

Qiskit SDKの設計理念

記事をシェアする:

Qiskit SDKの開発を方向づけてきた理念や設計上の意思決定を明らかにしている新しい論文が公開されました。これは研究者が論文でQiskitを参照する際にちょうどよい引用可能な資料にもなっています。

Qiskitは最初 2017年にオープンソースのソフトウェア開発キット(SDK)として発表されましたが、今では、量子ワークロードの構築、最適化、調整、実行をするのに世界で最も高性能で包括的なソフトウェア・スタックへと進化を遂げています。今日Qiskit SDKは、この包括的な Qiskitソフトウェア・スタックの一部となっていますが、それでも極めて重要であるという点に変わりはありません。そのアーキテクチャー、機能、量子コンピューティングの回路モデルは、ソフトウェア・スタック全体の、Qiskit SDK以外の残りの部分の開発に大きく影響を与えています。しかし、Qiskit SDKが今のようになった理由と、その開発に影響を与えた考え方や基本原則はどんなものでしょうか?

arXivで最近公開した論文「Quantum computing with Qiskit」は、Qiskit SDKの開発に当初から影響を与えてきた理念や重要なデザイン決定についての新しい洞察を提供しています。論文は、SDKのアーキテクチャーや中核部品について概要を記述しています。また、Qiskitと同時に開発された、あるいはQiskit周辺で開発されたプラグイン、拡張機能、その他のツールなどで賑わっているエコシステムについても簡単に紹介しています。

そして「Quantum computing with Qiskit」のおそらく最も重要なポイントは、Qiskitとは一体何であり、量子情報学においてQiskitを研究者がどのように利用するかを説明する、引用可能で信頼できる参照資料となっているということです。以下で参照方法の例をご覧ください。完全な文献情報については、arXivで公開されている論文を確認してください。

「Quantum computing with Qiskit」の著者には、2017年にQiskitの最初のバージョンを開発した開発者も含まれています。彼らはそれから今までにQiskitが高度で多目的なツールになったきた経緯を目の当たりにしてきました。以下ではこの論文の興味深い要点を簡単に紹介し、読者が論文を最大限に活用する方法をいくつか紹介します。

 

Qiskitの設計理念

最も経験豊富なQiskit開発者であっても、この論文が掘り下げている、今日のQiskit SDKを形成する設計理念には新しい発見があるかもしれません。この理念は、以下のいくつかの基本原則で定義されています。

量子回路の重要性

Qiskitの設計理念は、量子回路の本質的な重要性を中心に構成されています。Qiskitは、量子回路を、量子データに対するあらゆる操作を含みうるものとして、非常に広く定義しています。この柔軟なフレームワークは、同じ回路モデルを使用して、さまざまな異なる抽象レベルで量子計算を表現することを可能にしています。物理学者はノイズやそのほかの量子的な現象を研究するために低レベルの回路を構築することができる一方で、アプリケーション開発者は高い抽象度で回路を構築できます。Qiskitは、このような抽象度の選択を可能にすることで、開発者が自分の研究課題の中心部分に当てられる時間を増やします。

モジュール性と拡張性

Qiskitのオブジェクトは、研究者が自分のニーズに最適な形で新しい機能を追加できる柔軟性を持つように設計されています。量子の研究者は、Qiskitの開発者には予測できないような新しい実験を常に考案します。モジュール化され拡張可能なアーキテクチャーは、Qiskitのフレームワーク全体を再設計しなくても、研究者がソフトウェアの一部をカスタマイズしたり拡張したりすることを可能にしています。このようなQiskitの設計理念の基本原則はQiskitのエコシステムに活気をもたらし、多くのオープンソース拡張機能が開発されることでQiskitを柔軟で強力にしています。

パフォーマンスと使いやすさ

パフォーマンスと使いやすさを優先するということは、Qiskitコードは速く動作するだけでなく、習得しやすく使いやすくなければならないということですが、これらは時に相反する目標です。たとえば、Qiskitは当初からPythonで主に記述されていますが、Pythonは必ずしも高速なプログラミング言語ではありません。そこで、Qiskit v1.0のリリース前にはパフォーマンスを向上させるために、Qiskit内部の最も計算量を必要とする部分をRust言語で再実装しました。この転換により、Qiskitの開発者は二つの世界の良いところどりができるようになりました。Rust実装がもたらすパフォーマンスの改善を享受できる一方で、使い慣れたPython構文でQiskitとやり取りすることができます。

 

例で見るQiskit

この新しい論文には、Qiskitの設計理念の概要だけでなく、Qiskitを使用して物性物理学における複雑な問題を解決するワークフローの詳細な例が含まれています。この例は、Qiskitのいくつかの強力な機能を具体的に示しています。

特に論文は、Qiskitを多用途向けにしている重要な機能である、トランスパイラーのリターゲット機能に焦点を当てています。Qiskitは非常に柔軟で、さまざまな異なるバックエンドをターゲットとする能力を持っているので、あなたがバックエンドに新しいゲートを追加した時に、SDKはそれらをシームレスに統合して、その追加した新しいハードウェア機能がなんであれそれを活用するように回路を再最適化することができます。論文はまた、ダイナミック・サーキット(動的回路)の威力についても深掘りしています。これにより、開発者は回路の途中に古典的なロジックを追加して、回路を効率化することができます。

 

この論文の利用方法

この新しい論文はQiskitのソフトウェア・アーキテクチャーについても説明しています。回路を最適化するトランスパイラー、重要な数学的ツールを提供する量子情報モジュール、量子回路を評価して結果を得るプロセスを単純化するプリミティブ、そして量子状態、回路、バックエンドやそのほかのオブジェクトの可視化を生成するのに便利なQisikit可視化モジュールなどが、Qiskitの量子回路モデルをどのように支えているかを詳細に説明しています。

またこの論文では、さまざまな異なる種類の回路から最大の結果を得るために、トランスパイラー、プリミティブ、量子ハードウェアなどのツールをどのように使うべきかの詳細を含めて、コンポーネントの扱い方の有用な例を提供しています。

 

Qiskitの参照方法

APAスタイル(7th Edition)
Javadi-Abhari, A., Treinish, M., Krsulich, K., Wood, C. J., Lishman, J., Gacon, J., Martiel, S., Nation, P., Bishop, L. S., Cross, A. W., Johnson, B. R., & Gambetta, J. M. (2024, May 15). Quantum computing with Qiskit. arxiv.org/abs/2405.08810

MLAスタイル (9th Edition)
Javadi-Abhari, Ali, et al. Quantum Computing with Qiskit. arXiv:2405.08810, arXiv, 15 May 2024. arXiv.org, arxiv.org/abs/2405.08810.

Chicagoスタイル
Javadi-Abhari, Ali, Matthew Treinish, Kevin Krsulich, Christopher J. Wood, Jake Lishman, Julien Gacon, Simon Martiel, et al. “Quantum Computing with Qiskit.” arXiv, May 15, 2024. arxiv.org/abs/2405.08810.

 


この記事は英語版IBM Researchブログ「Defining — and citing — the Qiskit SDK」(2024年6月26日公開)を翻訳し一部更新したものです。

沼田 祈史
監訳:沼田 祈史
IBM Quantum, 量子人材開発, Qiskit Advocate
大学での授業、量子コミュニティー、量子プログラミングコンテストなどを中心に量子人材の育成を行う。
立花 隆輝
監訳:立花 隆輝
IBM Quantum, シニア・テクニカル・スタッフ・メンバー
量子コンピューターの社会実装に携わる。
More 量子コンピューティング stories

Qiskit向けの新しい推奨ノートブック環境

OVHcloudやqBraidが提供するJupyterベースの環境は、クラウド上でQiskitを扱うプロセスを簡略化します。 IBM®は、量子回路に初めて取り掛かろうとしている初心者に対しても、既に100量子ビットを持っ […]

さらに読む

ユーティリティー・スケールの計算タスクを効率化する実行モード

Qiskit v1.xで改善された新しい実行モード(execution mode)は、量子ワークロードの信頼性、予測可能性、そして効率を大幅に向上させています。 ユーティリティー・スケールの研究を行うためには、ユーティリ […]

さらに読む

Qiskit SDK v1.1.0がリリースされました!

主な新機能、改善点、非推奨となった機能などQiskit SDK v1.1.0リリースの要点をご紹介します。 2024年5月29日にQiskit SDK v1.1.0のリリースを発表しました!これは今年メジャーバージョンv […]

さらに読む