Langkau ke kandungan utama

Sumber pengiraan dan pengurusan sumber

Model sumber dan sumber klasik​

Dalam bahagian ini, kita akan menyediakan rangka kerja untuk memikirkan tentang persekitaran pengiraan yang boleh digunakan pada laptop dan juga boleh diskalakan sehingga ke superkomputer. Pada akhir bahagian ini, anda akan memahami komponen asas sebuah persekitaran pengiraan dan bagaimana ia saling berkaitan. Semua ini digariskan oleh Iskandar Sitdikov dalam video berikut.

Model sumber​

Mana-mana persekitaran pengiraan klasik dibina daripada beberapa sumber yang saling berkaitan dan bekerjasama untuk menjalankan aplikasi dengan cekap. Sumber utama biasanya termasuk:

  • CPU (Unit Pemprosesan Pusat): CPU ialah unit pemprosesan teras yang mentafsir dan melaksanakan arahan program. Ia mengendalikan operasi logik, aritmetik, dan kawalan, pada dasarnya bertindak sebagai "otak" sistem.

  • Cache CPU (L1, L2, L3): Ini adalah yang terpantas dalam sistem, dibina terus ke dalam atau sangat hampir dengan teras CPU. Ia menyimpan bahagian kecil data dan arahan yang diperlukan CPU dengan segera. Tahap berbeza (L1, L2, L3) mewakili pertukaran: L1 adalah yang terkecil dan terpantas manakala L3 adalah yang terbesar dan terperlahan, tetapi masih berkali-kali ganda lebih pantas daripada RAM.

  • RAM (Ingatan Akses Rawak): Ingatan tidak kekal yang menyediakan storan sementara yang besar untuk arahan program dan data yang sedang digunakan. Ia memastikan CPU boleh mengakses maklumat yang diperlukan dengan cepat semasa pelaksanaan tanpa bergantung sepenuhnya pada peranti storan yang lebih perlahan.

  • Storan (tempatan dan berasaskan rangkaian): Storan mengekalkan data dan perisian walaupun sistem dimatikan, menyediakan kekekalan jangka panjang untuk set data besar dan aplikasi. Dalam pengiraan berprestasi tinggi, penyelesaian storan mesti mengendalikan jumlah data saintifik atau analitik yang besar dengan kelajuan dan kebolehpercayaan. Storan tempatan termasuk pemacu keadaan pepejal (SSD) dan pemacu cakera keras (HDD), dengan SSD lebih disukai kerana kependaman yang lebih rendah dan daya pemprosesan yang lebih tinggi. Untuk pengendalian data berskala besar, sistem fail selari, storan rangkaian dikongsi, dan sistem berasaskan objek membolehkan akses pantas merentasi banyak nod pengiraan, manakala storan awan dan peringkat arkib menyokong pengekalan jangka panjang dan skalabiliti.

  • GPU (Unit Pemprosesan Grafik): Walaupun pada mulanya direka untuk pemaparan grafik, GPU moden adalah pemproses selari yang berkuasa. Ia digunakan secara meluas untuk mengendalikan tugas yang memerlukan banyak pengiraan serentak seperti pembelajaran mendalam, simulasi fizik, dan analitik data besar. Penting untuk diperhatikan bahawa GPU tidak menggantikan CPU; CPU mengarahkan logik program yang lebih tinggi dan GPU mempercepatkan langkah yang sangat selari.

  • Sambungan/Bus: Ini adalah laluan komunikasi yang menghubungkan CPU, ingatan, storan, dan periferi. Bus membolehkan pemindahan data dan penyelarasan antara bahagian sistem, memastikan komunikasi yang lancar merentasi persekitaran pengiraan. Dalam sistem HPC, komponen seperti CPU, GPU, dan peranti storan dihubungkan oleh interkoneksi berkelajuan tinggi yang membolehkan pertukaran data yang cepat. GPU biasanya disambungkan ke sistem melalui PCIe, antara muka standard dengan berbilang lorong data untuk komunikasi yang cekap. Untuk prestasi yang lebih tinggi, NVLink menyediakan sambungan langsung dan lebar jalur tinggi antara GPU atau antara GPU dan CPU, mengurangkan kependaman dan mempercepatkan beban kerja selari.

  • Sistem fail: Sistem fail mengorganisasikan data pada peranti storan. Ia menyediakan struktur untuk menyimpan, mendapatkan semula, dan mengurus fail, membolehkan program dan pengguna mengakses maklumat dengan cara yang konsisten dan logik.

Setiap jenis sumber mempunyai unit ukuran berkaitan prestasi yang tersendiri. Sebagai contoh, CPU biasanya diukur dengan "teras" dan "kelajuan jam". Apabila membeli laptop, spesifikasinya biasanya termasuk bilangan teras. Konsep yang sama terpakai pada nod pengiraan dalam pusat data, di mana setiap nod dikaitkan dengan bilangan teras tertentu. Persekitaran pengiraan yang merangkumi pelbagai jenis sumber (CPU, GPU, malah QPU) dirujuk sebagai persekitaran pengiraan heterogen. Persediaan ini mengendalikan pelbagai beban kerja dengan lebih cekap dengan memanfaatkan kekuatan setiap jenis pemproses. Sebagai contoh, CPU akan digunakan untuk tugas umum dan GPU untuk pemprosesan selari. Dalam konteks pengurusan sumber dan penjadualan — terutamanya untuk persekitaran pengiraan heterogen — unit ukuran tambahan mungkin diperlukan selain daripada yang diterangkan di sini.

Untuk ingatan, unit ukuran ialah Mega/Giga/Terabait.

Untuk kad grafik dan pemecut lain, unit ukuran bergantung pada konteks. Walaupun keupayaan pengiraan sebenar mereka diukur dengan metrik terperinci — bilangan teras pemprosesan, saiz ingatan, dan lebar jalur ingatan, dalam perbincangan peringkat tinggi tentang sumber kluster atau penjadualan kerja, GPU dan pemecut seumpamanya boleh dikuantifikasikan di peringkat peranti mengikut bilangan keseluruhan peranti yang diperuntukkan (contohnya, tiga GPU).

Rangkaian/sambungan/bus merupakan aspek penting dalam mana-mana infrastruktur pengiraan kerana ia menentukan kelajuan pemindahan data antara komponen pengiraan. Daripada LPU ke cache CPU, ke RAM, ke kad PCI, ke peranti yang disambungkan melalui rangkaian; semuanya adalah komunikasi dan adalah penting untuk mempunyai model mental yang tepat mengenainya bagi mereka bentuk algoritma yang sangat dioptimumkan untuk HPC.

An image showing that each computing node may include many types of resources.

Menskalakan sumber klasik​

Pengiraan Berprestasi Tinggi (HPC) melibatkan penskalaan sumber klasik ini untuk mencapai masa pemprosesan yang lebih pantas atau meningkatkan data yang boleh dikendalikan secara serentak (contohnya, untuk meningkatkan saiz ruang penyelesaian yang boleh dicari). Ini boleh dicapai melalui:

  • Penskalaan menegak: Meningkatkan kuasa sumber individu, seperti menggunakan CPU yang lebih berkuasa atau menambah lebih banyak ingatan dalam satu nod fizikal, di mana nod ialah unit kluster pengiraan yang merangkumi pelbagai sumber pengiraan di dalamnya.

  • Penskalaan mendatar: Menambah lebih banyak sumber, seperti berbilang CPU atau GPU, untuk bekerjasama dalam satu nod atau, lebih lazimnya, pada berbilang nod, membolehkan pengiraan teragih.

An image showing vertical scaling of resources through placing more resources, like memory, within a single node, and horizontal scaling through increasing the number of connected nodes including different resource types.

Beberapa konsep penskalaan daripada bahagian ini akan terpakai pada bahagian seterusnya mengenai sumber pengiraan kuantum. Beberapa aspek lain sumber kuantum akan dikuantifikasikan dengan cara baharu.

Uji kefahaman anda​

Gunakan penerangan di atas untuk membuat kesimpulan tentang beberapa kelebihan dan kekurangan pendekatan penskalaan yang berbeza: menegak dan mendatar?

Jawapan:

Mungkin ada banyak jawapan yang betul. Penskalaan menegak sering lebih mudah, terutamanya jika anda mempunyai beban kerja yang boleh diramal dan memerlukan jumlah sumber yang tetap. Tetapi penskalaan menegak boleh lebih mahal untuk dinaik taraf, kerana unit asas pengiraan tidak boleh dipecahkan dengan mudah seperti dalam penskalaan mendatar. Penskalaan mendatar lebih kompleks untuk diuruskan dan kadangkala terdapat kesukaran atau kependaman berkaitan sambungan antara nod. Tetapi ia jauh lebih mudah menyesuaikan diri dengan keperluan sumber yang berbeza-beza dan bersifat modular apabila naik taraf diperlukan.

Jenis sumber baharu: QPU (Unit Pemprosesan Kuantum)​

Dalam bahagian ini, kita akan memperkenalkan jenis sumber baharu — sumber kuantum — dan meneroka definisi, unit ukuran, dan sambungannya ke infrastruktur klasik.

Definisi QPU​

  • Unit pemprosesan kuantum (QPU): QPU merangkumi semua perkakasan yang bertanggungjawab untuk menerima set arahan kuantum yang boleh dilaksanakan, atau Circuit kuantum, dan mengembalikan jawapan yang tepat.

Ini bermakna QPU merangkumi satu atau lebih cip kuantum (contohnya Heron), pelbagai komponen tambahan dalam penyejuk pencairan seperti penguat kuantum, elektronik kawalan, dan pengiraan klasik yang diperlukan untuk tugas seperti menyimpan arahan dan bentuk gelombang dalam ingatan, mengumpulkan keputusan, dan penyahkodan pembetulan ralat masa hadapan. Walaupun penyejuk pencairan diperlukan untuk melaksanakan tugas-tugas ini, kita tidak memasukkan penyejuk pencairan dalam definisi ini bagi membolehkan kes berbilang QPU dalam peti sejuk yang sama.

  • Komputer kuantum: Komputer kuantum terdiri daripada QPU ditambah pengiraan klasik yang mengehoskan persekitaran masa jalan.

  • Persekitaran masa jalan: Gabungan perkakasan dan perisian yang memungkinkan untuk menjalankan program.

Lapisan dalam Circuit kuantum​

Dalam pengiraan klasik dan kuantum, proses boleh dilaksanakan secara berurutan atau selari. Kerana Qubit mempunyai ruang keadaan yang kaya berbanding bit klasik, kadangkala masuk akal untuk beberapa Gate satu-Qubit dilaksanakan pada Qubit secara berurutan (seperti Gate R_x diikuti dengan Gate R_z). Memandangkan kepingan antara Qubit adalah kritikal dalam pengiraan kuantum, adalah perkara biasa untuk Circuit kuantum mempunyai set Gate pembelit yang bertindak merentasi banyak Qubit. Faktor-faktor ini dan lainnya menjadikannya perkara biasa untuk mengenal pasti proses yang boleh dilaksanakan secara selari pada skala operasi Gate individu dalam Circuit kuantum. Dalam pengiraan klasik, keselarian peringkat bit juga mungkin tetapi kurang lazim dipertimbangkan pada peringkat Gate; adalah lebih biasa untuk merujuk kepada proses selari dan berurutan pada skala yang lebih besar.

Dalam pengiraan kuantum, seseorang merujuk kepada "lapisan" Gate yang semua boleh dilaksanakan serentak. Dalam banyak aplikasi, berguna untuk melakukan set putaran pada semua Qubit dan kemudian Gate pembelit antara pasangan Qubit. Dalam konteks ini, seseorang merujuk kepada "lapisan putaran" (lapisan Gate seperti R_x, R-y, dan/atau R_z) dan "lapisan pembelit" (seperti satu dengan Gate CNOT). Bilangan lapisan dalam Circuit ialah "kedalaman Circuit", ukuran penting kerana kedalaman yang lebih besar bermakna lebih banyak lapisan hingar dan ralat yang bergabung.

Boleh jadi sukar untuk mengenal pasti lapisan Gate secara visual apabila lapisan tidak disejajarkan menggunakan penghadang. Dalam Qiskit, penghadang berfungsi sebagai arahan dalam Circuit kuantum yang bertindak sebagai pemisah visual dan kekangan semasa penyusunan. Baik dalam melukis Circuit mahupun melaksanakannya, tiada Gate akan dipindahkan merentasi penghadang. Ini boleh menjadi penting dalam konteks seperti penyahgandingan dinamik, di mana seseorang dengan sengaja melaksanakan Gate yang memudahkan ke identiti untuk menekan jenis ralat tertentu. Untuk maklumat lanjut tentang penyahgandingan dinamik, lihat panduan ini. Untuk kesan visual penghadang, bandingkan dua imej Circuit yang sama ini, yang pertama tanpa penghadang dan yang kedua dengan penghadang untuk memaksa penjajaran lapisan.

Four-qubit quantum circuit with no barriers to force alignment of layers; gates appear somewhat randomly aligned.

Four-qubit quantum circuit with barriers in place to force the alignment of layers. Counting layers is much easier now.

Ini adalah Circuit yang sama dan mempunyai bilangan lapisan yang sama. Tetapi dalam yang kedua, penjajaran memudahkan untuk melihat bahawa Circuit mempunyai:

  • Dua lapisan putaran: satu di sekitar paksi Y sebanyak Ï€/5\pi/5, satu di sekitar paksi Z sebanyak Ï€/4\pi/4.
  • Tiga lapisan pembelit. Perhatikan bahawa seseorang boleh menyebut setiap CNOT sebagai "lapisan" sendiri, kerana CNOT tidak boleh disusun semula untuk menjadi selari tanpa mengubah operasi logik.
  • Dua lapisan putaran lagi: satu di sekitar paksi Y sebanyak Ï€/3\pi/3, satu di sekitar paksi Z sebanyak Ï€/2\pi/2.
  • Dua lapisan pembelit lagi. Perhatikan bahawa kali ini lapisan pertama telah diselaraskan secara selari sedikit lebih berbanding set lapisan pembelit pertama.

Kedalaman setiap Circuit ialah 9.

Unit ukuran​

Dalam pengiraan kuantum, keupayaan sistem kuantum biasanya dinilai menggunakan tiga metrik prestasi utama: skala, kualiti, dan kelajuan. Metrik ini bukan sahaja menggambarkan potensi pengiraan peranti kuantum, tetapi juga memaklumkan cara sumber diuruskan dan dijadualkan dalam aplikasi praktikal.

  • Skala merujuk kepada bilangan bit kuantum (Qubit) dalam sistem, mewakili berapa banyak maklumat kuantum yang boleh disimpan oleh peranti. Dalam pengurusan sumber, ini memberi kesan langsung kepada lebar Circuit — bilangan Qubit yang diperlukan untuk menjalankan tugas kuantum tertentu. Unit kuantum mesti mempunyai Qubit yang mencukupi untuk menyokong tugas yang diberikan.

  • Kualiti menggambarkan ketepatan operasi kuantum dilaksanakan. Ia sering dikuantifikasikan oleh kesetiaan lapisan, yang mengukur ketepatan melaksanakan lapisan penuh Gate kuantum merentasi semua Qubit. Dari perspektif penjadualan, kesetiaan yang lebih tinggi membolehkan Circuit yang lebih dalam dilaksanakan dengan boleh dipercayai, mempengaruhi keperluan untuk mitigasi ralat atau penguraian tugas.

  • Kelajuan diukur dengan CLOPS (Operasi Lapisan Circuit Per Saat), menunjukkan berapa banyak lapisan operasi kuantum yang boleh dilaksanakan sistem per saat. Ini mempengaruhi daya pemprosesan dan kependaman dalam pelaksanaan tugas, dan membantu menentukan seberapa cepat unit kuantum boleh menyelesaikan beban kerja tertentu. Kelajuan ini amat penting pada komputer kuantum, kerana Qubit mengalami hingar dan ralat pada tahap yang lebih besar berbanding rakan sejawat klasik mereka. Tempoh di mana mereka boleh mengekalkan maklumat kuantum mereka dengan cara yang berguna diterangkan oleh masa koheran, biasanya dalam lingkungan 200-300 μs\mu\text{s} untuk pemproses Heron r3.

Perbezaan antara metrik kuantum dan klasik​

Anda mungkin menganggap CLOPS sebagai analog kuantum yang longgar untuk FLOPS, tetapi dengan beberapa perbezaan utama. CLOPS mengukur kelajuan pemproses kuantum melaksanakan Circuit kuantum, khususnya lapisan operasi dalam Circuit, termasuk pengiraan kuantum dan klasik yang diperlukan untuk menjalankan Circuit. Ia dibangunkan oleh IBM Quantum sebagai ukuran holistik kelajuan pelaksanaan komputer kuantum, merangkumi masa pelaksanaan kuantum dan pemprosesan klasik masa nyata yang diperlukan untuk kemas kini Circuit, tidak seperti FLOPS yang semata-mata mengukur kapasiti aritmetik titik terapung dalam pemproses klasik.

CLOPS menyediakan metrik prestasi yang boleh diukur yang boleh dipenanda aras pada perkakasan sedia ada. IBM Quantum telah menggunakan CLOPS untuk menanda aras pemproses kuantum yang berbeza dan nilainya boleh didapati pada halaman Sumber pengiraan di IBM Quantum Platform. Nilai CLOPS bergantung pada keupayaan perkakasan, kelajuan Gate, kelajuan pemprosesan klasik, dan integrasi kesemuanya.

Bilangan Qubit adalah nombor tetap untuk QPU tertentu. CLOPS dan kualiti bergantung pada penentukuran dan penyelenggaraan yang kerap dan boleh berbeza sedikit dari semasa ke semasa, walaupun untuk QPU tunggal.

Bersama-sama, metrik ini membimbing cara sistem kuantum diperuntukkan dan dijadualkan. Dalam banyak kes, keseluruhan sistem kuantum diperlakukan sebagai satu unit. Walau bagaimanapun, apabila tugas melebihi kapasiti satu unit — sama ada dari segi bilangan Qubit, kedalaman Circuit, atau kelajuan pelaksanaan — teknik seperti pemotongan/penganyaman Circuit boleh digunakan. Pemotongan Circuit ialah proses memecah tugas kuantum besar kepada sub-tugas yang lebih kecil dan terurus yang boleh diedarkan merentasi berbilang cip kuantum, membolehkan pengiraan kuantum berskala walaupun dengan had perkakasan. Penganyaman Circuit merujuk kepada proses yang berlaku selepas pemotongan Circuit — langkah pasca-pemprosesan klasik yang "menganyam" atau menggabungkan semula keputusan daripada sub-Circuit yang lebih kecil.

Komputer kuantum tidak mempunyai ingatan tradisional, dalam erti storan yang boleh dialamatkan secara berterusan seperti RAM atau ingatan GPU. Sumber pengiraan klasik mempunyai bit diskret yang disimpan dalam ingatan, membolehkan data disimpan, diambil semula, dan digunakan semula semasa pengiraan. Sumber kuantum menggunakan Qubit yang tidak menyimpan ingatan dalam erti klasik. Sebaliknya, Qubit wujud dalam keadaan kuantum yang mewakili superposisi 0 dan 1 secara serentak, membolehkan kesejalanan eksponen dalam ruang keadaan. Walau bagaimanapun, keadaan Qubit adalah rapuh dan tidak boleh diklon atau dibaca secara deterministik pada langkah pertengahan tanpa meruntuhkan keadaan kuantum, jadi tingkah laku seperti ingatan yang berterusan semasa pengiraan tidak wujud. Qubit mesti dikekalkan dalam keadaan koheren sepanjang pelaksanaan, dan "ingatan" pada dasarnya ialah keadaan kuantum itu sendiri. Ingatan klasik hanya boleh digunakan bersama pemproses kuantum, bukan sebagai ingatan kuantum dalaman. Ini mempunyai implikasi yang signifikan: sumber pengiraan klasik boleh menggunakan semula dan menyimpan keputusan pertengahan dengan bebas; sumber kuantum tidak boleh melakukan ini tanpa pengukuran yang mengganggu pengiraan.

Sambungan ke infrastruktur klasik​

QPU boleh disambungkan ke infrastruktur klasik melalui rangkaian dan pelbagai antara muka pengaturcaraan aplikasi (API) yang membolehkan pembangun perisian berinteraksi dengan QPU secara pengaturcaraan. API ini biasanya tersembunyi di sebalik kit pembangunan perisian (SDK) dan pustaka (seperti Qiskit) dan didedahkan kepada saintis pengiraan dalam bentuk abstraksi pengaturcaraan (seperti Primitif Qiskit, yang akan kita bincangkan dalam Bab 3: model pengaturcaraan).

Adalah wajar untuk membuat perbezaan antara integrasi ketat dan longgar sumber kuantum dan klasik. Pada masa ini QPU tidak berada pada nod yang sama dengan sumber pengiraan klasik. Malah, QPU pada masa ini tidak disambungkan melalui PCIe, tetapi melalui rangkaian. Ini mungkin berubah pada masa hadapan, tetapi terdapat cabaran kejuruteraan berkaitan keadaan persekitaran yang optimum untuk QPU dan sumber pengiraan klasik.

Menskalakan sumber kuantum​

Penskalaan sumber kuantum juga boleh dikategorikan kepada menegak dan mendatar.

  • Penskalaan menegak adalah meningkatkan bilangan Qubit setiap cip atau meningkatkan kesetiaan peranti.
  • Penskalaan mendatar adalah menghubungkan cip dengan gandingan atau dengan interkoneksi klasik.

An image showing vertical scaling of quantum resources as more qubits on a chip, and horizontal scaling of quantum resources as connecting many chips together with couplers.

Uji kefahaman anda​

Apakah analog kuantum bagi (a) bit maklumat klasik, dan (b) kelajuan pemproses?

Jawapan:

(a) Bit kuantum atau Qubit — unit maklumat yang berbeza daripada rakan sejawat klasik mereka (yang hanya boleh berada dalam keadaan 0 atau 1), boleh berada dalam superposisi 0 dan 1 secara serentak.

(b) Operasi lapisan Circuit per saat atau CLOPS — bilangan operasi berurutan yang boleh dilakukan QPU setiap saat, termasuk beberapa antara muka dengan sumber pengiraan klasik, seperti memuatkan parameter daripada Circuit.

Pengurusan sumber​

Sumber HPC dan kuantum adalah berharga dan kompleks; ia mesti diuruskan dengan teliti. Dalam bahagian ini, kita akan menerangkan cara mengurus sumber untuk program pengguna. Pengurusan sumber dalam infrastruktur pengiraan merujuk kepada proses (1) perancangan, (2) peruntukan, dan (3) kawalan/pengurusan penggunaan sumber pengiraan seperti CPU, ingatan, storan, dan lebar jalur rangkaian untuk memastikan penggunaan sumber yang cekap dan berkesan.

Perancangan - anggaran sumber​

Mana-mana program menggunakan sumber, dan menganggarkan sumber yang diperlukan adalah penting untuk pengurusan sumber yang cekap. Ini termasuk menganggarkan jumlah CPU, ingatan, dan sumber lain yang diperlukan untuk melaksanakan program. Perkara yang sama boleh dikatakan untuk sumber kuantum. Walau bagaimanapun, sumber kuantum wujud pada skala yang sama sekali berbeza. Pemproses kuantum IBM Quantum® Heron r3 mempunyai 156 Qubit, berbanding banyak bilion bit klasik pada laptop biasa. Masa dan kos juga merupakan pertimbangan. Pada masa ini, IBM Quantum mempunyai pelan percuma, Pelan Terbuka, yang membolehkan pengguna meneroka pengiraan kuantum menggunakan 10 minit masa QPU setiap bulan. Beberapa organisasi penyelidikan memerlukan begitu banyak masa QPU sehingga mereka mempunyai komputer kuantum IBM yang didedikasikan di premis.

Satu langkah dalam anggaran sumber yang unik untuk pengiraan kuantum ialah kedalaman Circuit. Seperti yang dinyatakan sebelum ini, setiap Gate kuantum dan setiap masa kelewatan antara operasi datang dengan hingar dan kebarangkalian ralat tertentu. Semakin dalam Circuit kuantum, semakin besar hingarnya. Terdapat dua kerumitan di sini: Gate dua-Qubit mempunyai kadar ralat yang jauh lebih tinggi daripada Gate satu-Qubit, jadi seseorang sering boleh mengabaikan kedalaman satu-Qubit. Lebih lanjut, tidak semua Qubit pada cip kuantum disambungkan secara langsung. Kadangkala maklumat perlu ditukar dari Qubit ke Qubit untuk melakukan kepingan yang diperlukan dan proses penukaran itu sendiri memerlukan Gate dua-Qubit. Penukaran itu dikendalikan dalam proses yang dipanggil "transpilasi", proses kompleks yang juga mempunyai tujuan lain; ini dibincangkan dengan lebih terperinci dalam pelajaran seterusnya. Kuantiti pengehad yang berkaitan ialah kedalaman dua-Qubit yang telah ditranspilasi. Kedalaman maksimum yang tepat di mana keputusan berkesetiaan tinggi boleh diperoleh bergantung pada Circuit. Tetapi dengan memanfaatkan teknik mitigasi ralat moden, seseorang boleh mendapatkan keputusan berkesetiaan tinggi dengan kedalaman dua-Qubit yang telah ditranspilasi sebanyak 80 atau lebih.

Peruntukan - penjadualan​

Penjadualan ialah proses memperuntukkan sumber kepada program dan mengurus pelaksanaan mereka. Ini melibatkan:

  • Penghantaran kerja: Proses di mana pengguna menghantar permintaan (kerja) kepada sistem HPC, menentukan kerja pengiraan dan sumber yang diperlukan untuk pelaksanaan.
  • Peruntukan sumber: Penugasan sumber sistem HPC yang tersedia (seperti nod, CPU, ingatan) kepada kerja yang dihantar berdasarkan keperluannya.
  • Pelaksanaan kerja: Pelaksanaan sebenar tugas pengiraan yang ditakrifkan oleh kerja pada sumber HPC yang diperuntukkan.

Terdapat analog semua proses ini untuk komputer kuantum.

  • Kerja dihantar oleh pengguna, memanfaatkan Qiskit Runtime, dan biasanya menggunakan primitif Qiskit Runtime, seperti Sampler, Estimator, atau lainnya.
  • Pengguna memilih daripada senarai backend yang boleh mereka akses. Senarai lengkap backend yang tersedia boleh dilihat pada halaman Sumber pengiraan di IBM Quantum Platform. Adalah lazim untuk hanya menggunakan komputer kuantum yang paling tidak sibuk. Tetapi terdapat kes di mana mungkin penting untuk menggunakan yang tertentu kerana pertimbangan susun atur peranti, replikasi pengiraan sebelumnya, dan sebagainya.
  • Pelaksanaan kerja kuantum adalah serupa dengan kes HPC. Walaupun beberapa perbezaan telah digariskan, beberapa wajar diulang di sini. QPU pada masa ini tidak terletak secara umum pada nod yang sama dengan sumber pengiraan klasik tetapi disambungkan melalui rangkaian. Ini mungkin mempunyai implikasi penjadualan. Lebih lanjut, komputer kuantum mungkin mempunyai masa giliran yang besar, dan masa giliran ini berbeza-beza, menjadikan kawalan tepat masa sukar. Keadaan ini mungkin berbeza untuk sistem yang didedikasikan; itu bergantung pada pentadbiran dalaman komputer kuantum.

Kawalan/Pengurusan - pengurusan beban kerja​

Pengurusan beban kerja, juga dikenali sebagai orkestrasi, ialah proses mengurus berbilang program dan keperluan sumber mereka. Ini melibatkan:

  • Penyediaan sumber: Proses menyediakan dan membuat sumber HPC tersedia dan sedia untuk digunakan oleh kerja, termasuk persediaan perkakasan dan perisian. Seperti yang akan kita lihat kemudian, QPU adalah sumber pengiraan yang boleh disediakan dengan cara yang serupa dengan sumber HPC klasik, dengan amaran dari bahagian sebelumnya.
  • Penjadualan kerja: Aktiviti perisian penjadual dalam memutuskan kerja mana yang dijalankan, bila, dan pada sumber mana, mengurus keutamaan dan giliran untuk menggunakan sistem HPC dengan cekap. Walaupun pernyataan luas ini terpakai pada sumber kuantum, mungkin terdapat kawalan yang kurang ke atas masa berbanding dengan sumber lain.

An image showing workloads (shown as boxes) being organized and arranged to fit optimally into a two dimensional grid with one axis representing time and the other representing resources. Contoh:

Pertimbangkan tugas yang terkenal sebagai konteks untuk memahami pengurusan sumber: mencari faktor perdana bagi nombor besar. Mari kita andaikan lebih lanjut bahawa algoritma yang digunakan bergantung pada pemeriksaan paksa setiap pembahagi yang berpotensi. Walaupun ini sering bukan kaedah yang paling cekap, mudah untuk memahami bagaimana beban kerja mungkin diuruskan.

Perancangan - anggaran sumber

  • Anggaran berapa banyak masa CPU dan ingatan yang diperlukan oleh pemfaktoran perdana.
  • Rancang peselarian tugas anda — berapa banyak CPU/teras yang akan anda gunakan?

Peruntukan - penjadualan

  • Apabila kerja dihantar, penjadual memperuntukkan teras CPU dan ingatan kepada tugas pemfaktoran perdana. Sebagai contoh, ia mungkin memperuntukkan semua pembahagi berpotensi yang berakhir dengan digit 1, 3, 7, 9 kepada satu daripada empat teras, masing-masing.
  • Pelaksanaan kerja: Algoritma pemfaktoran perdana berjalan, melakukan pembahagian atau langkah pemfaktoran lain pada sumber yang diperuntukkan sehingga tugas selesai.

Kawalan/Pengurusan - pengurusan beban kerja

  • Sistem mengatur tertib dan masa kerja pemfaktoran perdana untuk mengoptimumkan daya pemprosesan.
  • Kes yang paling mudah dibayangkan ialah salah satu teras menemui faktor perdana sasaran. Ini seharusnya menghentikan pengiraan pada teras lain supaya ia boleh digunakan untuk tugas seterusnya.

Persekitaran pengiraan berprestasi tinggi menggunakan perisian khas untuk menjalankan langkah-langkah ini dan mengurus sumber. Dalam bahagian seterusnya, kita akan belajar tentang sistem perisian pengurusan sumber yang diterima pakai secara meluas: Slurm.

Contoh dengan sumber kuantum:

Aliran kerja yang akan menjadi subjek pelajaran lain dalam kursus ini ialah menentukan keadaan asas kimia dan tenaga menggunakan pengpeserakan kuantum berasaskan sampel (SQD). Ini diliputi dengan lebih terperinci dalam Pelajaran 4, dan anda juga boleh melawati kursus ini mengenai SQD dan kaedah berkaitan di IBM Quantum Learning. Semua yang perlu kita ketahui untuk perbincangan ini ialah aliran kerja melibatkan perkara berikut:

  • Sediakan Circuit kuantum
  • Ukur Circuit kuantum
  • Gunakan keputusan pengukuran untuk mengunjurkan masalah ke dalam subruang yang berguna
  • Pepenjurukan matriks yang lebih kecil yang diunjurkan menggunakan sumber pengiraan klasik
  • Lelaran, sama ada untuk memastikan konsistensi diri melalui pertimbangan seperti pemuliharaan cas, dan kemungkinan lelaran Circuit kuantum jika ia mempunyai parameter variasi.

Perancangan - anggaran sumber

  • Petakan orbit elektronik ke Qubit untuk menetapkan bilangan Qubit yang anda perlukan.
  • Gabungkan Hamiltonian sistem yang dipetakan dan keadaan (mungkin variasi) ke dalam Circuit kuantum dan periksa kedalaman dua-Qubit yang telah ditranspilasi. Pastikan ia munasabah.
  • Anggaran saiz subruang ke mana anda akan mengunjurkan; daripada ini, anggaran berapa banyak masa CPU dan ingatan yang diperlukan oleh pepenjurusan.
  • Rancang peselarian tugas anda — berapa banyak CPU/teras yang akan anda gunakan?

Peruntukan - penjadualan

  • Pengguna memilih QPU; proses transpilasi secara automatik memetakan Qubit dalam Circuit kuantum abstrak anda ke Qubit fizikal pada QPU. Ini penting kerana Circuit abstrak mungkin mengandaikan sambungan langsung yang tidak wujud pada cip, antara sebab lain.
  • Apabila kerja dihantar melalui Qiskit Runtime, kerja memasuki giliran untuk QPU yang dipilih. Pengguna tidak mempunyai kawalan ke atas masa giliran, walaupun ini mungkin berbeza untuk sistem yang didedikasikan.
  • Sumber pengiraan klasik menunggu keputusan kuantum.
  • Kerja pepenjurusan dihantar ke sumber HPC; apabila kerja dihantar, penjadual memperuntukkan teras CPU dan ingatan kepada tugas pepenjurusan.
  • Pelaksanaan kerja: Algoritma pepenjurusan berjalan, mendiagonalkan matriks yang lebih kecil yang diunjurkan sehingga tugas selesai.

Kawalan/Pengurusan - pengurusan beban kerja

  • Sistem mengatur tertib dan masa langkah kuantum dan klasik sepanjang proses. Sebagai contoh, setelah matriks yang diunjurkan telah dipeserakan dan tenaga keadaan asas diperoleh, bergantung pada kriteria konvergen, aliran kerja mungkin berulang kembali ke Circuit kuantum baharu (dengan parameter variasi baharu).
  • Apabila kriteria konvergen dipenuhi oleh tenaga keadaan asas, pengiraan pada semua teras berhenti.

Persekitaran pengiraan berprestasi tinggi menggunakan perisian khas untuk menjalankan langkah-langkah ini dan mengurus sumber. Dalam bahagian seterusnya, kita akan belajar tentang sistem perisian pengurusan sumber yang diterima pakai secara meluas: Slurm. Penting untuk diperhatikan bahawa Slurm tidak mempunyai alat untuk semua langkah yang diterangkan di atas. Slurm tidak menyediakan sokongan untuk merancang kerja, mahupun pengurusan beban kerja terperinci seperti komunikasi antara komponen beban kerja. Ini sangat sesuai dengan keadaan semasa pengiraan kuantum dalam HPC, kerana QPU biasanya diakses melalui rangkaian.

Uji kefahaman anda​

Andaikan anda cuba mencari dalam pangkalan data yang tidak tersusun untuk mencari elemen yang kita sebut 'sasaran'. Untuk setiap tindakan berikut, nyatakan peringkat pengurusan sumber mana ia berpadanan: (a) Menganggarkan saiz pangkalan data dan masa yang diperlukan untuk menyemak setiap elemen (b) Memastikan bahawa mencari sasaran pada satu GPU menghentikan proses pada GPU lain untuk membebaskannya bagi masalah seterusnya. (c) Memecah ruang carian kepada kawasan untuk setiap (katakan 10) GPU anda cari

Jawapan:

(a) Perancangan (b) Kawalan/pengurusan (c) Peruntukan/penjadualan,

Perisian: Slurm​

Dalam bahagian ini, kita akan mengaplikasikan konsep yang dipelajari dalam bab ini untuk berlatih menggunakan sistem pengurusan sumber yang popular, Slurm.

Pengenalan kepada Slurm​

Slurm ialah sistem pengurusan sumber sumber terbuka yang digunakan secara meluas dalam persekitaran pengiraan berprestasi tinggi. Ia menyediakan set alat yang komprehensif untuk mengurus sumber, menjadualkan kerja, dan memantau prestasi sistem.

Kita akan merangkumi asas penggunaan Slurm, termasuk:

  • Penghantaran kerja
  • Peruntukan sumber
  • Pemantauan kerja

Memandangkan sukar untuk menyediakan sumber HPC kepada setiap pelajar kursus ini, kita akan sedikit menipu dengan menyediakan anda repositori dengan imej Docker yang meniru kluster HPC sebenar dengan Slurm, tetapi pada skala kecil. Ini akan membantu kita untuk mempraktikkan konsep yang dipelajari dalam persekitaran yang selamat dan boleh dihasilkan semula.

Perhatikan bahawa pada masa ini semua sumber kuantum dan klasik diperuntukkan untuk tempoh keseluruhan eksperimen. Pada masa ini tiada peruntukan berselang-seli sumber campuran. Peringatan terakhir ialah walaupun setelah kerja dilancarkan, sistem kuantum tidak akan dikawal secara langsung seperti yang dijangkakan oleh pengguna HPC yang kerap. Kerja dilancarkan pada nod x86 sewenang-wenangnya, yang melaksanakan perkhidmatan Qiskit Runtime dan perkhidmatan masa jalan itu menyambung ke penjadual lain yang tidak berada dalam kawalan langsung pengguna. Aliran kerja dan isu berkaitan ini mungkin diketahui oleh pengguna HPC yang mempunyai pengalaman awal mengejar akses eksklusif ke nod GPU (penggunaan asal gres).

Arahan pemasangan dan gambaran keseluruhan persediaan​

Untuk berlatih menggabungkan sumber kuantum dan HPC, anda sama ada memerlukan akses ke persekitaran HPC sebenar atau perlu mensimulasikan persekitaran HPC pada mesin tempatan anda. Panduan pemasangan untuk persediaan tempatan menggunakan Docker boleh didapati di repositori ini. Panduan tersebut menghubungkan ke sokongan untuk menyediakan akaun IBM Cloud® dan memasang plugin SPANK untuk QRMI. Juga dalam repositori tersebut terdapat beberapa fail Python untuk menguji persekitaran anda.

Setelah anda selesai pemasangan, mari gunakan arahan di bawah untuk memeriksa sumber pengiraan Slurm di terminal anda. Jika pemasangan berjaya, anda seharusnya dapat mengesahkan jumlah tiga nod maya.

$ sinfo

PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
normal up 5-00:00:00 2 idle c[1-2]
quantum* up infinite 1 idle q1
$ scontrol show node

NodeNAME=q1 Arch=x86_64 CoresPerSocket=1
CPUAlloc=0 CPUTot=1 CPULoad=0.34
AvailableFeatures=(null)
ActiveFeatures=(null)
Gres=qpu:1
NodeAddr=q1 NodeHostName=q1 Version=21.08.6
...

Kita mempunyai dua partition atau kumpulan nod: normal dan quantum. Partition normal terdiri daripada nod yang hanya mempunyai akses ke sumber klasik. Partition quantum mempunyai akses ke sumber kuantum. Anda boleh melihat butiran setiap nod dengan melaksanakan scontrol show nodes.

Jalankan contoh hello world klasik yang mudah dalam Slurm​

Mari jalankan dahulu contoh hello world klasik yang mudah dengan Slurm. Kita akan menggunakan Python untuk contoh. Mari buat hello_world.py, yang sudah jelas.

$ vim hello_world.py

import time
time.sleep(10)
print("Hello, World!")
~

Sekarang kita perlu memberitahu pengurus sumber sumber apa yang diperlukan untuk melaksanakan program ini. Slurm menyediakan cara untuk menentukan semua metadata bagi kerja melalui skrip penghantaran, yang hanyalah skrip shell dengan anotasi khusus Slurm. Anotasi ini membolehkan anda menentukan keperluan sumber, parameter jadual, dan lain-lain. Mari buat skrip shell hello_world.sh untuk ini.

$ vim hello_world.sh

#SBATCH --job-name=hello-world
#SBATCH --output=hello-world.out
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=1
#SBATCH --partition=normal

srun hello_world.py
~

Mari tinjau fail penghantaran dan lihat apa yang berlaku di sini.

Arahan #SBATCH adalah anotasi khusus untuk memberitahu keperluan yang kita ada untuk pelaksanaan program. Di sini anda boleh menentukan jumlah sumber — bilangan nod, bilangan tugas per nod, bilangan tugas dan CPU per nod dan tugas — dan pilihan lain seperti nama fail output. Senarai penuh pilihan tersedia dalam dokumentasi untuk Slurm.

Kini sudah tiba masanya untuk menjalankan kerja Slurm kita. sbatch ialah arahan yang menerima fail penghantaran dan memasukkan kerja ke dalam giliran untuk pelaksanaan dalam Slurm.

$ sbatch hello_world.sh

Submitted batch job 63

Mari semak status program kita menggunakan arahan squeue.

$ squeue

# JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
# 1 main hello_world root R 0:01 1 c1

Setelah kerja selesai, kita boleh menyemak keputusan dengan melihat fail output.

$ cat hello_world_logs.txt
Hello, World!

Uji kefahaman anda​

Berdasarkan skrip shell Slurm di bawah, apakah (a) nama kerja, (b) nama fail Python, dan (c) nama fail output? (d) Akhir sekali, bolehkah ini menggunakan sumber kuantum atau tidak?

vim hello_learner.sh

#SBATCH --job-name=hello-learner
#SBATCH --output=hello-learner.out
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=1
#SBATCH --partition=quantum

srun hello_learner_qm.py

Jawapan:

(a) hello-learner (b) hello-learner_qm.py (c) hello-learner.out (d) Ya boleh. Ia menggunakan partition quantum.

Jalankan contoh hello world Qiskit yang mudah dalam Slurm​

Seterusnya, mari cuba menggunakan sumber kuantum juga. Mari buat dan jalankan program "Hello, Qiskit" yang mudah yang menggunakan sumber kuantum.

$ vim hello_qiskit.py

# hello_qiskit.py
from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from qiskit.transpiler import generate_preset_pass_manager
from qiskit_ibm_runtime import EstimatorV2 as Estimator

# Create a new circuit with two qubits
qc = QuantumCircuit(2)

# Add a Hadamard gate to qubit 0
qc.h(0)

# Perform a controlled-X gate on qubit 1, controlled by qubit 0
qc.cx(0, 1)

observables_labels = ["IZ", "IX", "ZI", "XI", "ZZ", "XX"]
observables = [SparsePauliOp(label) for label in observables_labels]

# switch to QRMI service
from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()

backend = service.backend("...")

# Convert to an ISA circuit and layout-mapped observables.
pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_circuit = pm.run(qc)

# Construct the Estimator instance.

estimator = Estimator(mode=backend)
estimator.options.resilience_level = 1
estimator.options.default_shots = 5000

mapped_observables = [
observable.apply_layout(isa_circuit.layout) for observable in observables
]

# One pub, with one circuit to run against five different observables.
job = estimator.run([(isa_circuit, mapped_observables)])

job_result = job.result()

pub_result = job.result()[0]

print("Result", pub_result)

Di sini kita akan menggunakan antara muka pengurusan sumber kuantum (QRMI), plugin Slurm SPANK untuk sokongan sumber dan kerja kuantum yang dibangunkan bersama oleh IBM, Pasqal, The Hartree Center, dan RPI. Kita membuat Circuit pauli-2-design yang mudah dengan nilai awal rawak dan pemerhatian yang mudah, dan kita akan menjalankannya menggunakan Estimator untuk mendapatkan nilai jangkaan. Untuk menjalankannya kita sekali lagi memerlukan skrip penghantaran hello_qiskit.sh, yang akan mempunyai sumber kuantum sebagai keperluan.

$ vim hello_qiskit.sh

#SBATCH --job-name=hello-qiskit
#SBATCH --output=hello_qiskit.out
#SBATCH --nodes=1
#SBATCH --ntasks-per-nodes=1
#SBATCH --cpus-per-task=1
#SBATCH --partition=quantum
#SBATCH --gres=qpu:1

srun python /data/ch2/hello_qiskit/hello_qiskit.py
~

Mari tinjau fail penghantaran dan lihat apa yang berlaku di sana. Kita mempunyai satu pilihan baharu, iaitu gres. gres ialah pilihan Slurm untuk menentukan sumber pengiraan tambahan. Dalam kes kita, sumber baharu ini ialah sumber kuantum kita. Memandangkan kita menentukan sumber dan partition kluster kita di mana sumber kuantum tersedia, primitif Qiskit kita akan menggunakan sumber yang diperuntukkan ini untuk melaksanakan muatan kuantum.

Kini sudah tiba masanya untuk menjalankan kerja Slurm kita.

$ sbatch hello_qiskit.sh

Kemudian, mari semak status program kita menggunakan arahan squeue.

$ squeue
# JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
# 1 main hello_qiskit root R 0:01 1 q1

Kita boleh meneroka log dan keputusan selepas kerja selesai.

$ cat hello_qiskit.out | grep Exp
Expectation Value: 0.8372900070983516

Ringkasan​

Setakat ini, kita telah mempelajari apa itu sumber pengiraan dan cara menggunakannya untuk menjalankan program dalam persekitaran heterogen. Kita juga telah mencipta dan melaksanakan dua program 'Hello World' yang mudah: satu untuk sumber klasik dan satu lagi untuk sumber kuantum, dan kita telah belajar cara membuat skrip shell untuk menghantar tugas dan melihat keputusan.

Dalam pelajaran berikutnya, kita akan membina atas pengetahuan kawalan sumber ini untuk mengaplikasikan model pengaturcaraan kepada sumber yang kita perolehi semasa pelaksanaan kerja.

Semua kod dan skrip yang digunakan dalam bab ini tersedia untuk anda dalam repositori GitHub kami.

Source: IBM Quantum docs — updated 20 Apr 2026
English version on doQumentation — updated 7 Mei 2026
This translation based on the English version of approx. 26 Mac 2026