楊楊,鄒天銳,程鴻,陳昭昀
(1.安徽大學 電子信息工程學院,安徽合肥 230601;2.本源量子計算科技有限責任公司,安徽合肥 230093;3.合肥國家綜合性科學中心 人工智能研究院,安徽合肥 231299)
目前的CPU 芯片,業(yè)內已經(jīng)能夠達到5nm 的工藝節(jié)點,但是隨著芯片元件集成度的不斷提高,芯片內部單位體積內散熱也相應增加,由于現(xiàn)有材料散熱速度有限,就會因“熱耗效應”產(chǎn)生計算上限;另外,元器件尺寸的不斷縮小,在納米甚至更小尺度下經(jīng)典計算世界的物理規(guī)律將不再適用,產(chǎn)生“尺寸效應”。因為這兩個“效應”,加上計算數(shù)據(jù)的海量增長,需采用新的計算方式,即量子計算[1-3]。
量子計算是遵循量子力學規(guī)律,調控量子信息單元進行計算的新型計算模式[4-5]。量子計算機相較于當前的經(jīng)典計算機,在一些具體問題上,有更快的處理速度和更強的處理能力[6]。隨著量子計算技術研究的不斷深入[7-8],人類能夠使用的量子比特數(shù)量逐步增長,導致量子線路圖的編程方式無法適應研究需要,故量子匯編語言應運而生。目前,高校的量子計算與編程教學課程主要培養(yǎng)學生初步軟件設計和系統(tǒng)開發(fā)的能力,為了培養(yǎng)應用型、創(chuàng)新型人才,課程教學改革勢在必行[9-10]。
目前,量子計算作為一門多學科交叉的新興學科,高校多面向研究生開設,暫未普及至本科生基礎教學[11]。然而,隨著量子計算的興起,社會對量子計算人才的需求增加,因此,亟須加強大學生量子計算教學。從教學目標來看,量子編程、算法設計及理論學習是培養(yǎng)應用型、創(chuàng)新型人才的主要方向;從教學資源來看,安徽大學依托開設多年的程序設計與算法綜合訓練課程,與合肥本源量子計算科技有限責任公司合作,采用其提供的QPanda 軟件平臺以及本源量子云[12],對原有課程教學內容和方式進行了有益補充和擴展。通過探索量子計算在編程教學中的應用,培養(yǎng)量子計算方面的人才。
QPanda 是合肥本源量子計算有限責任公司研發(fā)的量子計算編程框架,其集成了量子計算底層邏輯需求,如量子邏輯門、量子線路、測量等操作,以及用于處理各類需求的量子虛擬機,例如較為通用的全振幅虛擬機、加入噪聲的含噪聲量子虛擬機等。而本源量子云平臺則集成了QPanda 框架、集群處理后端及真實量子芯片后端,為教學提供了簡潔便利的可視化編程操作,為高質量量子編程教學提供了強有力的支撐[13-14]。
QPanda 量子編程框架構建如圖1 所示,包含了應用層、工具層、核心層、計算后端。具體邏輯為:
圖1 QPanda 量子編程框架示意圖
應用層:包含量子化學、量子機器學習、量子金融應用、量子計算流體動力學、量子加解密等。
工具層:主要包括工具模塊和轉換模塊。工具模塊的主要作用是獲取量子程序的相關信息,主要包含:判斷邏輯門是否可交換、量子程序分層、判斷邏輯門是否適配元數(shù)據(jù)、統(tǒng)計邏輯門個數(shù)、獲取連續(xù)量子門矩陣、量子程序子線路替換、量子邏輯門有效性驗證、量子程序時鐘周期統(tǒng)計等功能。量子程序轉換模塊包括是否把量子程序文本化、把目標量子語言轉化為量子程序、適配目標量子計算平臺。
核心層:核心層主要分為兩個模塊——量子虛擬機模塊和量子線路模塊。量子虛擬機模塊提供了不同類型量子虛擬機實現(xiàn)框架,研究人員可根據(jù)不同量子虛擬機框架的規(guī)則編寫自己的計算后端;量子線路模塊提供了量子程序構建的開發(fā)框架,研究人員可基于開發(fā)框架進行量子編程,同時也可以重寫量子線路模塊的基本類型構建自己的開發(fā)框架。量子線路模塊包括QProg、QCircuit、QMeasure、QGate、QIf、QWhile、ClassicalProg 七種類型。
計算后端:計算后端指完成量子程序計算所用的計算單元,QPanda 的計算后端既可以通過CPU 加速,也可通過GPU 加速,同時還支持超級計算機及集群模擬,也可以調用本源量子云選擇使用真實芯片服務,使用戶切實體驗量子程序在真實量子芯片上的運行效果。
量子計算編程教學設計的主要思路是將理論實驗內容進行分層,包括將實驗的內容分為基礎、拓展以及創(chuàng)新等層次,如圖2 所示。每位學生必須完成的實驗內容是基礎實驗。在保證基礎任務完成的前提下,進一步利用QPanda 量子編程框架完成拓展實驗。綜合能力較強同時對編程具有濃厚興趣的學生可以開展創(chuàng)新實驗,即在已有量子算法拓展學習的基礎上,對實際問題應用開展進一步探索,完成創(chuàng)新挑戰(zhàn)。這種實驗任務分層布置的方法,有利于針對處于不同學習層次的學生因材施教。加強實驗課的教學,培養(yǎng)學生實際動手能力;加強實踐教學,獨立設置量子計算設計實驗課程,強調理論與實驗并重,在實驗內容上安排一些基礎性的驗證型實驗,作為必須完成的項目,幫助學生理解基本的知識點,培養(yǎng)學生動手能力及創(chuàng)新應用能力。
圖2 量子計算編程教學設計流程圖
同時,量子計算編程教學設計可以分為三個階段完成,分別為課前預習、授課、課程設計。
課前預習:教師通過推送預習知識點,并通過有效反饋及答疑,獲取學生預習情況,以此調整授課內容。學生可以通過本源量子云平臺對課前內容進行實驗后記錄所遇到的問題,并帶著問題聽課。
授課:教師通過收取本源量子云平臺所運行的量子程序任務,針對性講解所需量子計算前置知識,根據(jù)學生在課堂中的互動情況,進行答疑。主要方式有:(1)授課PPT 同步發(fā)放;(2)本源云平臺任務檢查;(3)隨機點名;(4)匿名彈幕,適度討論。
課程設計:布置幾大類量子算法實現(xiàn)任務,并由學生進行選取,完成相應調研報告以及在本源量子云平臺的算法設計任務。教師通過定期檢查進度,對學生進行有效督促,解答學生所遇到的問題,達到使學生鞏固所學知識的目的。
由于量子計算不同于其他學科,其研究涉及數(shù)學基礎、計算機硬件系統(tǒng)、算法與編程、量子計算信息科學。通過基礎數(shù)學內容和量子編程工具的安裝與配置方法,將量子系統(tǒng)“狀態(tài)”所包含的物理信息,進行信息編碼、計算和傳輸,進而討論在編程類課程中量子計算的應用與探索。
為了讓學生更好地在課堂上吸收知識,教師采用課前知識預備及重難點勾劃的方法,讓學生更早、更有效地開展量子計算的理論學習。當然,由于量子計算是一門多學科交叉的課程,教師會在課前預習的過程中添加線性代數(shù)、統(tǒng)計分析、量子物理基礎知識的回顧環(huán)節(jié),以及量子編程的內容及目標介紹,并介紹量子計算誕生背景及其所涉及領域,如大數(shù)據(jù)檢索、汽車行業(yè)設計、化學模擬等,激發(fā)學生對所學知識的學習興趣。
教師分為三個階段進行授課:(1)介紹量子計算原理,即學生預習內容。如量子物理基礎的講授,主要內容為對量子計算背景及相對經(jīng)典計算的優(yōu)越性進行剖析和闡述;線性代數(shù)基本知識講授,為之后的量子算法推導奠定基礎;基礎程序設計的學習,為之后的量子編程奠定基礎。(2)通過一些經(jīng)典量子算法理論的推導,讓學生進一步熟悉量子計算的核心,并通過學生與教師在課堂或課后的答疑互動,完成對量子計算核心理論的鞏固。(3)介紹QPanda 量子編程框架及本源量子云平臺。教師通過在課堂上進行量子線路演示及實際運行,實踐操作,帶領學生進一步開展量子計算編程,并對他們進行創(chuàng)新性引導,促使學生可以將所學量子計算知識用于應用性研究及探索。
為了讓學生進一步鞏固在課堂上所學的知識,教師在課后布置了課程設計作業(yè)。首先,教師根據(jù)學生課堂表現(xiàn)情況,以及對量子計算基礎知識的掌握程度,進行基礎知識考核,其中包括量子力學及其數(shù)學表達形式考核,在進行初步考核后,幫助學生鞏固基礎知識,為之后的量子算法復現(xiàn)奠定基礎,其中,所選量子算法均已被證明具有量子優(yōu)勢,包括量子搜索算法(Grover 算法)、量子解密算法(shor 算法),以及量子線性求解器HHL 算法等;其次,教師根據(jù)學生實驗情況,對學生進行創(chuàng)新性引導,讓其將所學算法進行應用性推廣,并通過報告形式論述其應用方向及優(yōu)勢。
學生通過訪問本源量子云平臺,可使用其提供的真實量子計算云(本源悟源,超導量子計算機),以及仿真開發(fā)訓練云(包含量子計算模擬所需的全振幅、部分振幅、單振幅、含噪聲等量子虛擬機計算服務),不同的量子虛擬機對應不同應用需求,具體應用環(huán)境如圖3 所示:
圖3 量子虛擬機應用簡介
之后,學生可開展簡潔易用的圖形化量子編程,這里以仿真開發(fā)訓練云全振幅虛擬機為例,在首頁選擇仿真開發(fā)訓練云,進入到本源圖形界面,如圖4 所示:
圖4 本源量子云編程
學生通過所提供的量子邏輯門組件,自由構建量子算法所需的量子線路,并通過圖5 提供的概率直方圖、密度矩陣分布圖以及振幅相位直方圖,快速確認其算法的最終量子態(tài)及概率分布。然而,由于真實量子計算包含多種類型噪聲,量子算法的抗噪聲性能也成為一個不可或缺的性能指標。因此,教師要求學生在本源真實量子計算云提交課程設計作業(yè),并通過最終的算法保真度來判定成績。
圖5 量子態(tài)概率及振幅直方圖
最后,教師結合學生平時成績以及課程設計報告和最后的答辯情況進行綜合學評分,并要求學生完成創(chuàng)新性任務,讓學生將所學量子算法應用至不同領域,并針對量子算法在該領域的應用優(yōu)勢進行闡述以及模擬實現(xiàn)所需的量子算法。部分優(yōu)秀設計報告文檔如圖6 所示:
圖6 優(yōu)秀設計文檔展覽
通過QPanda 和本源量子云平臺提供的量子計算編程教學演示,以及相關行業(yè)背景的知識補充,可拓寬學生的學習思路,激發(fā)學習興趣。學生通過利用QPanda 和本源量子云平臺可完成對所學知識的實踐檢驗及量子算法構建、運行、結果分析,從而鞏固所學知識。在課程設計過程中,教師定期召開答疑會,與學生充分互動,加快課程設計進度,為學生答疑解惑,理論與實踐并行,進而完成教學目標,培養(yǎng)應用型、創(chuàng)新型人才。
本文將量子計算應用到編程教學實踐中,增強了程序設計與算法綜合訓練課程的創(chuàng)新性。通過其具有的底層兼容特性,可以對原有課程教學內容和方式進行有益補充和擴展,同時其豐富的資源將會對其他課程教學改革起到示范引領作用。本文的主要研究思路是:將理論實驗內容進行分層,包括將實驗的內容分為基礎、拓展以及創(chuàng)新等層次;加強實驗課的教學,培養(yǎng)學生實際動手能力;加強實踐教學,獨立設置量子計算課程設計,強調理論與實驗并重;在現(xiàn)有實驗內容的基礎上安排基礎性的驗證型實驗,將其作為學生必須完成的項目,幫助學生理解和掌握基本的知識點,培養(yǎng)學生動手能力,為培養(yǎng)應用型、創(chuàng)新型人才起到示范作用。
創(chuàng)新創(chuàng)業(yè)理論研究與實踐2023年20期