微軟正式推出以Rust重新改寫的Azure Quantum開發(fā)組件工具包(QDK)1.0,除了性能較舊版QDK提升超過100倍之外,還加入了許多新功能,像是豐富的程序代碼編輯生產(chǎn)力功能,而且編輯器也能顯示資源使用預(yù)估。此外,Azure量子開發(fā)組件工具包也集成了Azure Quantum服務(wù),改進(jìn)Azure云計(jì)算量子服務(wù)使用體驗(yàn)。
去年微軟就曾提到,考量舊版QDK存在平臺支持性不夠好,且需要安裝的全套二進(jìn)制文件相當(dāng)龐大等問題,因此開始以Rust重新編寫。新的QDK不只執(zhí)行速度提升超過100倍,安裝體積也大幅縮小超過100倍,而且還能夠編譯成為WebAssembly,可供VS Code和網(wǎng)頁使用,或是針對Python編譯為原生二進(jìn)制文件。
微軟指出,一旦達(dá)到可擴(kuò)展的量子運(yùn)算,才能真正體現(xiàn)出量子運(yùn)算的能力,而Q#程序語言便是針對該目的而設(shè)計(jì)。Q#以高層次抽象表達(dá)量子操作,使得量子運(yùn)算程序在開發(fā)、重構(gòu)與協(xié)作上更容易,而微軟在更新QDK的同時(shí),也投資改進(jìn)現(xiàn)代化Q#編輯器。
Q#編輯器現(xiàn)在加入IntelliSense功能,提供完成列表、自動(dòng)打開命名空間、懸停資訊、語法和類型檢查錯(cuò)誤等功能,這些功能都與Rust、C#、TypeScript等強(qiáng)類型語言的開發(fā)功能相同。而且這些功能也不僅是直接編輯Q#文件時(shí)可以使用,在Jupyter Notebook單元格中編寫Q#也可以使用。
QDK還包含了量子模擬器,這是一個(gè)量子程序開發(fā)的重要工具,能夠在VS Code擴(kuò)展組件和Python組件執(zhí)行的時(shí)候,輸出診斷資訊和量子狀態(tài)。開發(fā)者也可以設(shè)置中斷點(diǎn)、進(jìn)入和退出操作,并逐行執(zhí)行程序代碼,查看量子和古典狀態(tài),此外,也可以執(zhí)行一些量子特有的功能,像是執(zhí)行操作的生成伴隨(Generated Adjoint),以相反的順序逐步檢查程序中的循環(huán)或是操作,就像是將一段程序倒著執(zhí)行,進(jìn)而更好地理解和調(diào)試量子運(yùn)算過程。
目前量子計(jì)算機(jī)的硬件還不夠成熟,要充分運(yùn)用量子運(yùn)算的優(yōu)勢,需要在真實(shí)的硬件上使用邏輯量子位元(Logical Qubit),微軟提到,這就像過去古典計(jì)算機(jī)的發(fā)展一樣,起初存在著資源限制,像是一臺計(jì)算機(jī)只有16 KB內(nèi)存的狀況,因此程序代碼如何能夠最大程度地善用硬件,將會是創(chuàng)建應(yīng)用程序和推進(jìn)領(lǐng)域發(fā)展一個(gè)重要問題。
Azure Quantum服務(wù)加入了能夠估算量子計(jì)算資源需求的功能,來解決這個(gè)問題,而QDK則可以將這個(gè)功能帶入到客戶端中,使開發(fā)人員可以試驗(yàn)與查看程序代碼的資源使用。
VS Code中的QDK擴(kuò)展組件可以讓開發(fā)者連接Azure訂閱中的Quantum工作區(qū),并將Q#程序從編輯器提交給微軟的硬件合作伙伴執(zhí)行,在作業(yè)完成后下載結(jié)果。而這簡化了過去需要切換CLI工具或Python程序代碼使用該服務(wù)的需求。
微軟借由在VS Code for Web預(yù)安裝QDK擴(kuò)展組件以及一個(gè)虛擬文件系統(tǒng),預(yù)先加載一些常用的量子算法,讓開發(fā)者現(xiàn)在只要訪問VS Code的Azure量子開發(fā)游樂場(Playground),就可以在瀏覽器中立即開始體驗(yàn)Azure量子開發(fā)體驗(yàn)與實(shí)驗(yàn),該方法讓開發(fā)者不需要安裝程序,或是訪問本機(jī)上的任何文件。開發(fā)者也可以直接在本地機(jī)器中,以VS Code安裝QDK擴(kuò)展組件,如此便可以打開Q#文件,并且開始進(jìn)行量子程序開發(fā)。