在沒有量子計算軟件和硬件的情況下,量子計算可以說是并不完全成熟的計算。位于新墨西哥州阿爾伯克基的Sandia國家實驗室的一個開源量子計算機項目旨在通過一種定制的量子計算匯編語言來解決這一問題。
在接下來的幾年里,物理學家Susan Clark和她在Sandia的團隊計劃使用他們從美國能源部獲得的2500萬美元的5年期撥款,在他們的“QSCOUT”平臺上運行世界各地的學術、商業和獨立研究人員提供的代碼,到 2023 年,該平臺將從現在的3個量子比特穩步提升到32個量子比特。
QSCOUT代表了量子科學計算開放用戶試驗臺(Quantum Scientific Computing Open User Testbed),由懸浮在真空室內的電離鐿原子組成。紫外激光的閃光使這些原子旋轉,通過執行用該團隊剛剛起步的量子匯編代碼編寫的算法,他們將其命名為另一種量子匯編語言(Just Another Quantum Assembly Language)或JAQAL(事實上,他們已經用小寫字母“aqal” 注冊了 Jaqal 的商標,因此所有后續引用都將使用該句柄)。
盡管Google、IBM和其他一些公司已經制造了更大的量子機器,并生產了自己的編程語言,Clark說QSCOUT為那些熱衷于探索計算機科學前沿的人帶來了一些好處。
就像谷歌和IBM機器上的那些超導門(Superconducting gates)一樣,它也很快速。但是它們也不穩定,在不到一秒鐘的時間內就失去相干性(coherence)和數據。
Clark說,由于離子俘獲技術類似于IonQ公司開發的技術,QSCOUT可以保持其計算的一致性——把它想象成一個計算的等價物,可以保持長達10秒的思路。“這是目前最好的,”Clark 說,“但我們的量子邏輯要慢一些。”
然而,QSCOUT的真正優勢不在于性能,而是它賦予用戶控制計算機操作的能力,用戶可以隨心所欲地控制計算機的操作,甚至可以在計算機的基本指令集結構中添加新的或修改過的操作。QSCOUT軟件團隊的負責人Andrew Landahl說:“QSCOUT就像一個試驗板,而公司提供的產品就像印刷電路。”。
“我們的用戶是科學家,他們希望進行控制實驗。”他說:“他們要求兩個量子邏輯門同時發生,商用系統往往會優化用戶的程序來改善它們的性能。”Clark 稱,“但他們不會給你太多的細節來告訴你幕后的情況。”在早期,如何最好地處理噪音、數據持久性和可伸縮性等主要問題仍然是個未知數,量子機器的角色就是按你的吩咐去做。
Landahl說,為了實現精確性和靈活性的結合,他們創建了Jaqal,其中包括將離子初始化為量子位的命令,將它們單獨或共同旋轉到各種狀態,將它們纏繞成疊加,然后以輸出數據的形式讀取最終狀態。
任何 Jaqal 程序的第一行,例如:
from qscout.v1.std usepulses *
loads a gate pulse file that defines the standard operations (“gates,” in the lingo of quantum computing)。
這種方案可以輕松實現擴展性。Landahl 說,下一個版本將增加新的指令來支持 10 個以上的量子比特,并增加新的功能。此外,他還說,用戶甚至也可以編寫自己的函數。
Clark說,“愿望列表”中,一個在經典計算中理應具備的新特性是,能對進行中的計算進行局部測量,然后根據中間狀態進行調整。在量子領域,由于量子比特的互連性(interconnectedness),這種局部測量方法很難實現,但實驗人員已經證明這可以做到。
實用程序將量子和經典操作混合在一起,因此QSCOUT團隊還在Github上發布了一個名為JaqalPaq的Python包,它提供了一個Jaqal模擬器以及將Jaqal代碼作為對象包含在一個更大的Python程序中的命令。
Sandia國家實驗室在首批 15 個申請者中接受了前 5 個項目提案,其中大部分將針對其他量子計算機進行各種基準測試。但是,Clark說:“其中一個小組(由印第安納大學布盧明頓分校的Phil Richerme領導)正在通過找到一個特定分子的基態來解決一個小的量子化學問題。”
在團隊將機器從3個量子比特升級到10個量子比特之后,Clark計劃在3月份邀請第二輪提案。
Jaqal 編程語言輸出“Hello World”
Landahl說,一個最簡單的non-trivial程序通常運行在一臺新的量子計算機上,它是將兩個量子比特糾纏成一個所謂的Bell態的代碼,Bell態是經典的0和1二元態的疊加。Jaqal文檔給出了一個15行程序的例子,該程序定義了兩個教科書操作,執行這些指令來準備一個Bell態,然后讀取兩個量子位的結果態的測量值。
但是,QSCOUT 作為一臺離子阱計算機,QSCOUT支持一個叫做M?lmer–S?rensen門的漂亮操作,它提供了一條捷徑。利用這一點,下面的6行程序可以完成相同的任務并重復1024次:
register q[2] // Define a 2-qubit register
loop 1024 { // Sequential statements, repeated 1024x
prepare_all // Prepare each qubit in the |0? state
Sxx q[0] q[1] // Perform the M?lmer–S?rensen gate
measure_all // Measure each qubit and output results
}
原文標題:量子比特編碼:如何用量子計算機匯編語言編程
文章出處:【微信公眾號:IEEE電氣電子工程師學會】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
計算機
+關注
關注
19文章
7430瀏覽量
87733 -
量子計算
+關注
關注
4文章
1081瀏覽量
34910
原文標題:量子比特編碼:如何用量子計算機匯編語言編程
文章出處:【微信號:IEEE_China,微信公眾號:IEEE電氣電子工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論