量子プログラミングを支えるOSSの紹介 NRI OSSソリューションマガジン 2021.6.30発行 Vol.174
1.量子プログラミングを支えるOSSの紹介
近年、従来のコンピュータでは解けない大規模な計算を解くことができるとされている量子コンピュータの注目度が高まってきており、度々ニュース等でも取り上げられているのを耳にする方も多くなってきているかと思います。
実際のところビジネス適用が可能なレベルに達しているかというと、まだまだ限定的な適用にとどまるというのが実情なのですがそれでもなお注目度が日々高まっている要因として、量子コンピュータのハードウェアが充実しつつある点だけでなく、量子コンピュータを活用したソフトウェアの開発が進んできているという点もあると考えられます。
そこで今回は量子コンピュータを活用したソフトウェアの開発、所謂「量子プログラミング」を支えるOSSについていくつかご紹介させていただきます。
なお、量子コンピュータの動作原理やマシンの種類、活用対象などについての説明は他に譲るものといたしますので、予めご了承ください。
【1】 Qiskit
Qiskitは超電導回路によるゲート型量子コンピュータ「IBM Q」を開発しているIBM社が開発主体となっている量子コンピュータ向けフレームワークです。Python環境で利用することができます。
IonQ社が開発しているイオントラップによるゲート型量子コンピュータ「IonQ」にも対応しているほか、量子プログラミング関連としては世界初の資格試験も今年から行われているなど、急速に広がりを見せているOSSとなります。
特徴としては、ドキュメントやチュートリアルが充実している他、可視化ライブラリが充実しているという点も挙げられます。
筆者としては、現状最もデファクトスタンダードになる可能性が高いフレームワークではないかと見ています。
【2】 Cirq
CirqはGoogle社が開発しているゲート型量子コンピュータ向けのフレームワークです。こちらもPython環境で利用ができます。
Google独自の量子コンピュータハードウェアの開発責任者がGoogleを退職したという背景から、Cirqの開発状況も注目されていたのですが、今年の6月にGoogle Cloud上で先述のIonQが利用可能になったことにあわせて、CirqがIonQに対応したということもあり、まだまだ今後の機能開発に期待がかかります。
【3】Q#
Q#はMicrosoft社が開発しているゲート型量子コンピュータ向けのフレームワークです。
Q#は.NET環境とPython環境に対応しているのですが、.NET環境で組んだ演算のシミュレートをPythonから呼び出せるということにとどまるようなので、実質.NET環境で利用するものと捉えて良いと考えています。
筆者の私見も多分に入っていることは承知しておりますが、.NET環境前提ということもあるのかQiskitと比べるとなかなか存在感を示せていないのが現状と思われます。
一方、Microsoft社が提供する量子コンピューティングサービスのAzure Quantum上での開発言語として採用されていることから、決して無視することはできないOSSです。
【4】PennyLane
PennyLaneはXanaduという光子を利用したゲート型量子コンピュータを開発しているカナダのベンチャー企業が開発を主導している量子機械学習ライブラリです。Python環境で使うことができます。
量子機械学習におけるアルゴリズムや回路を組み立てる際に有効なOSSとなっております。
そもそも「量子機械学習とは?」という点について、言葉の定義は明確ではない点もあるのですが、重ね合わせ状態や確率的な挙動を扱うことができる量子コンピュータの特徴を活用した機械学習全般のことを指します。
PennyLaneは機械学習フレームワークであるKerasをベースとしており、Kerasと同じような使い勝手で量子機械学習を実行することができます。
【5】Blueqat
BlueqatはAWS社とのパートナーシップも締結している日本のBlueqat社(旧名 MDR社)が開発したゲート型量子コンピュータ向けのフレームワークです。
世界的な利用状況は筆者としてわかりかねる部分があるのですが、日本語情報が豊富で日本人が概要を捉える際には非常に有用なOSSかと思われます。記述形式が非常に単純な点が特徴です。
【6】Qulacs
Qulacsは量子化学計算を専門としている日本のQunaSys社が開発した量子回路シミュレータです。
QiskitやCirqなどにもシミュレータを内蔵しているのですが、Qulacsの特徴はシミュレーションが非常に高速であるという点になります。
QunaSys社はAWS社、Microsoft社とパートナーシップを締結しています。
【7】Ocean SDK
Ocean SDKは量子アニーリングマシンを開発しているD-Wave社によって開発されているSDKです。
上記6つのOSSは全て量子ゲート型マシンを前提としていましたが、Ocean SDKは量子アニーリングマシンを扱うためのSDKです。Python環境で使うことができます。
ここ最近はアニーリング方式の活用よりもゲート方式のほうが主流になりつつある中で今後どれだけ開発が進むかは未知数ですが、アニーリング方式がまだ半歩リードを保っているという状況かと思いますので、アニーリング方式全体の動向とあわせて引き続きウォッチする価値があるかと思います。
今のところ国内外で注目を集めているOSSは以上の通りなのですが、量子コンピュータ関連技術は群雄割拠な状況ですので、これらは世の中にある量子プログラミング関連のOSSのごく一部にすぎません。
そのため、今回取り上げたものがこれから飛躍する可能性もありますし、それ以外のものがより注目を集める可能性もあり、今後も目が離せない領域です。
◆OpenStandiaサポート対象OSS一覧
https://openstandia.jp/services/#supportlist
◆OpenStandiaオープンソース年間サポートサービスのご紹介
https://openstandia.jp/services/
◆OpenStandiaオープンソース導入サービスのご紹介
https://openstandia.jp/services/
◆OpenStandia各種サービスのご相談はこちら
https://openstandia.jp/site/contact.html
2.OSS紹介ページ 今月のアップデート(新規:2件、更新:7件)
(新規)
Flask (https://openstandia.jp/oss_info/flask/)
Spring Session (https://openstandia.jp/oss_info/spring-session/)
(更新)
Apache Cordova (https://openstandia.jp/oss_info/cordova/)
Debian GNU/Linux (https://openstandia.jp/oss_info/debian/)
Hibernate (https://openstandia.jp/oss_info/hibernate/)
HikariCP (https://openstandia.jp/oss_info/hikaricp/)
Jetty (https://openstandia.jp/oss_info/jetty/)
jQuery (https://openstandia.jp/oss_info/jquery/)
TensorFlow (https://openstandia.jp/oss_info/tensorflow/)
3.OSS紹介ページ 今月のアクセスランキングTOP10
オープンソース情報ページ「OpenStandia OSS紹介」のアクセスTOP10をご紹介
→ 1位 (1位) MySQL (https://openstandia.jp/oss_info/mysql/)
↑ 2位 (6位) Keycloak (https://openstandia.jp/oss_info/keycloak/)
→ 3位 (3位) PostgreSQL (https://openstandia.jp/oss_info/postgresql/)
→ 4位 (4位) Apache HTTP Server (https://openstandia.jp/oss_info/apache/)
→ 5位 (5位) OpenShift (https://openstandia.jp/oss_info/openshift/)
↓ 6位 (2位) Apache Tomcat (https://openstandia.jp/oss_info/tomcat/)
↑ 7位 (ランク外) Fluentd (https://openstandia.jp/oss_info/fluentd/)
↑ 8位 (ランク外) Apache Kafka (https://openstandia.jp/oss_info/apachekafka/)
↓ 9位 (7位) MongoDB (https://openstandia.jp/oss_info/mongodb/)
↓ 10位 (9位) Ubuntu (https://openstandia.jp/oss_info/ubuntu/)
※( )内は前月の順位
◆OSS総合情報ページ「OpenStandia OSS紹介」はこちら
https://openstandia.jp/oss_info/
◆OpenStandiaサポート対象OSS一覧
https://openstandia.jp/services/#supportlist
◆OpenStandiaオープンソース年間サポートサービスのご紹介
https://openstandia.jp/services/
◆OpenStandiaオープンソース導入サービスのご紹介
https://openstandia.jp/services/
◆OpenStandia各種サービスのご相談は以下からお問合せください。
https://openstandia.jp/site/contact.html
4.編集後記
最後までご覧いただき、ありがとうございます。
野村総合研究所の磯島です。
今回はローコードプラットフォームについて紹介します。
ローコードプラットフォームとは、ドラッグ&ドロップといった画面操作でアプリケーションを開発できるプラットフォームです。
主な特長は下記二点です。
・既存のコンポーネントを活用することで素早くアプリ開発可能
・直感的な操作で開発できるため熟練者でなくても開発可能
有名なツールとしては、kintone、Salesforce、OutSystemsなどが挙げられます。
ローコードプラットフォームは昔からありましたが、システム開発のスピードが求められたり、IT人材が不足したり、といったDXを推進する上での課題に対応するための技術として近年注目が増しています。
高速開発することで現場ユーザの意見を素早く回収したり、業務フローを熟知する現場ユーザが直接開発したりすることで、アプリケーションの価値向上も見込めます。
ローコード、と聞くと近い技術としてノーコードプラットフォームを思い浮かべる方もいらっしゃるかもしれません。
ノーコードプラットフォームはその名の通りコーディングによるカスタマイズは想定していないため、あらかじめ準備してある機能のみで実現できる定型的なシステム開発に向いています。
それに対してローコードプラットフォームでは必要に応じてコーディングにより拡張ができるため、システム開発の自由度が高くなります。
そのため基幹システムなど、ノーコードでは開発できないような幅広いシステム開発に適用できる可能性を秘めています。
デジタル技術がビジネス価値に直結するDX時代、現場の人間が自らシステムを作るのが当たり前の時代がいつか来るかもしれませんね。
今後も、「NRI OSSソリューションマガジン」をどうぞよろしくお願いいたします。