Người ta không xem rằng điện toán lượng tử là máy tính hoàn chỉnh cho đến khi có phần mềm lượng tử cũng như phần cứng. Một dự án máy tính lượng tử mã nguồn mở tại Phòng thí nghiệm Quốc gia Sandia ở Albuquerque, New Mexico nhằm giải quyết vấn đề này bằng một ngôn ngữ hợp ngữ (assembly language) tùy chỉnh để tính toán lượng tử.
Trong vài năm tới, nhà vật lý Susan Clark và nhóm của cô tại Sandia có kế hoạch sử dụng khoản tài trợ 25 triệu đô la, trong 5 năm mà họ giành được từ Bộ Năng lượng Hoa Kỳ để chạy chương trình do các nhà nghiên cứu học thuật, thương mại và độc lập trên khắp thế giới cung cấp trên nền tảng “QSCOUT” khi họ nâng cấp đều đặn nó từ 3 qubit ngày nay lên 32 qubit vào năm 2023.
QSCOUT là viết tắt của Quantum Scientific Computing Open User Testbed và bao gồm các nguyên tử ytterbi bị ion hóa bay lơ lửng bên trong một buồng chân không. Các tia sáng laser tia cực tím nhấp nháy làm quay các nguyên tử này, thực thi các thuật toán được viết bằng mã lắp ráp lượng tử non trẻ của nhóm — mà họ đặt tên là Just Another Quantum Assembly Language hay JAQAL. (Trên thực tế, họ đã đăng ký nhãn hiệu tên là Jaqal với các chữ cái viết thường “aqal”, vì vậy tất cả các tham chiếu tiếp theo sẽ sử dụng cách xử lý đó thay thế.)
Mặc dù Google, IBM và một số công ty khác đã chế tạo các máy lượng tử lớn hơn và có các ngôn ngữ lập trình của riêng họ, Clark nói rằng QSCOUT mang lại một số lợi thế cho những người muốn khám phá biên giới khoa học máy tính này. Các cổng siêu dẫn, giống như các cổng trong máy Google và IBM, chắc chắn rất nhanh. Nhưng chúng cũng không ổn định, mất tính liên kết (và dữ liệu) trong vòng chưa đầy một giây.
Nhờ công nghệ bẫy ion tương tự như công nghệ được phát triển bởi công ty IonQ, Clark cho biết QSCOUT có thể duy trì sự liên kết trong tính toán của mình — hãy nghĩ về nó giống như một phép tính tương đương với việc duy trì một chuỗi suy nghĩ — hơn trong 10 giây. “Đó là điều tốt nhất hiện có,” Clark nói. “Nhưng cổng của chúng ta chậm hơn một chút.”
Tuy nhiên, lợi thế thực sự của QSCOUT không phải là hiệu suất, mà là khả năng mà nó mang lại cho người dùng kiểm soát nhiều hoặc ít hoạt động của máy tính như họ muốn — thậm chí thêm các thao tác mới hoặc đã thay đổi vào kiến trúc tập lệnh cơ bản của máy. Andrew Landahl, người dẫn đầu nhóm phần mềm QSCOUT, cho biết: “QSCOUT giống như một breadboard, trong khi những gì các công ty đang cung cấp giống như các mạch in.
“Người dùng của chúng tôi là các nhà khoa học muốn thực hiện các thí nghiệm có kiểm soát. Khi họ yêu cầu hai cổng lượng tử xảy ra cùng lúc”ông nói. Các hệ thống thương mại có xu hướng tối ưu hóa các chương trình của người dùng để cải thiện hiệu suất của họ. Clark nói: “Nhưng họ không cung cấp cho bạn nhiều chi tiết về những gì đang diễn ra. Trong những ngày đầu tiên này, khi vẫn chưa rõ cách tốt nhất để đối phó với các vấn đề lớn về nhiễu, độ bền của dữ liệu và khả năng mở rộng, thì máy lượng tử có vai trò thực hiện những gì bạn yêu cầu.
Landahl cho biết, để mang lại sự kết hợp giữa độ chính xác và tính linh hoạt đó, họ đã tạo ra Jaqal, bao gồm các lệnh khởi tạo các ion dưới dạng qubit, xoay chúng riêng lẻ hoặc cùng nhau thành các trạng thái khác nhau, gắn chúng vào chồng chất và đọc trạng thái cuối của chúng dưới dạng dữ liệu đầu ra. (Xem “Chương trình‘ Xin chào thế giới ’ở Jaqal” bên dưới).
Dòng đầu tiên của bất kỳ chương trình Jaqal nào, ví dụ:
from qscout.v1.std usepulses *
tải một tệp xung cổng (gate) xác định các hoạt động tiêu chuẩn (“cổng”, theo thuật ngữ của máy tính lượng tử). Đề án này cho phép dễ dàng mở rộng. Landahl nói rằng phiên bản tiếp theo sẽ bổ sung các hướng dẫn mới để hỗ trợ hơn 10 qubit và thêm các chức năng mới. Ngoài ra, anh ấy nói, người dùng thậm chí có thể viết các chức năng của riêng họ.
Clark nói, một điểm bổ sung cao trong danh sách mong muốn là một tính năng được cho là đã có trong máy tính cổ điển: khả năng thực hiện phép đo từng phần của một phép tính đang được tiến hành và sau đó thực hiện các điều chỉnh dựa trên trạng thái trung gian. Tính liên kết của các qubit làm cho các phép đo từng phần như vậy trở nên khó khăn trong lĩnh vực lượng tử, nhưng các nhà thực nghiệm đã chỉ ra rằng nó có thể thực hiện được.
Các chương trình thực tế sẽ kết hợp các phép toán lượng tử và cổ điển, vì vậy nhóm QSCOUT cũng đã phát hành trên Github một gói Python có tên JaqalPaq cung cấp trình giả lập Jaqal cũng như các lệnh để bao gồm mã Jaqal như một đối tượng bên trong một chương trình Python lớn hơn.
Hầu hết năm đề xuất dự án đầu tiên mà Sandia chấp nhận từ một loạt 15 ứng viên ban đầu sẽ thực hiện đo điểm chuẩn của nhiều loại khác nhau so với các máy tính lượng tử khác. Tuy nhiên, Clark nói, “Một trong những nhóm [do Phil Richerme tại Đại học Indiana, Bloomington dẫn đầu] đang giải quyết một vấn đề hóa học lượng tử nhỏ bằng cách tìm các trạng thái cơ bản của một phân tử cụ thể.”
Cô ấy nói rằng cô ấy có kế hoạch mời một vòng đề xuất thứ hai vào tháng 3, sau khi nhóm đã nâng cấp máy từ 3 lên 10 qubit.
Chương trình “Hello World” trên Jaqal
Landahl nói, một trong những chương trình đơn giản nhất thường chạy trên một máy tính lượng tử mới là mã làm vướng hai qubit vào một trong những trạng thái được gọi là trạng thái Bell, là những chồng chất của trạng thái nhị phân 0 và 1 cổ điển. Tài liệu Jaqal đưa ra một ví dụ về chương trình 15 dòng xác định hai hoạt động trong sách giáo khoa, thực hiện các hướng dẫn đó để chuẩn bị trạng thái Bell, sau đó đọc các phép đo của hai trạng thái kết quả của qubit.
Nhưng là một máy tính lượng tử bẫy ion (trapped-ion computer), QSCOUT hỗ trợ một hoạt động tiện lợi được gọi là cổng Mølmer – Sørensen cung cấp một phím tắt. Việc khai thác cho phép chương trình 6 dòng bên dưới hoàn thành cùng một tác vụ — và lặp lại nó 1024 lần:
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
}
Theo https://spectrum.ieee.org/tech-talk/computing/software/qscout-sandia-open-source-quantum-computer-and-jaqal-quantum-assembly-language