Lumaktaw sa pangunahing nilalaman

Development workflow

Ang terminong Qiskit pattern ay naglalarawan ng development workflow para sa pagba-break down ng mga domain-specific na problema at pag-contextualize ng mga kinakailangang kakayahan sa iba't ibang yugto. Nagbibigay ito ng maayos na composability ng mga bagong kakayahang binuo ng mga mananaliksik ng IBM Quantum® (at ng iba pa), at nagbubukas ng hinaharap kung saan ang mga quantum computing task ay isasagawa ng makapangyarihang heterogenous (CPU/GPU/QPU) na computing infrastructure. Ang mga block o grupo ng mga block ang gumaganap ng mga hakbang ng isang pattern, na ang Qiskit SDK ang nagbibigay ng mahalagang pundasyon, sinusuportahan ng ibang mga tool o serbisyong binuo ng IBM Quantum o ng quantum open-source na komunidad. Ang mga Qiskit pattern ay nagbibigay-daan sa mga domain expert na tukuyin ang isang problema at i-compose ang mga tooling (block) na nagtatamo ng isang Qiskit pattern. Ang pattern na iyon ay maaaring i-execute nang lokal, sa pamamagitan ng cloud services, o i-deploy gamit ang Qiskit Serverless.

Ang apat na hakbang ng isang Qiskit pattern ay ang mga sumusunod:

  • I-map ang problema sa mga quantum circuit at operator
  • I-optimize para sa target na hardware
  • I-execute sa target na hardware
  • Post-process ang mga resulta

Ang bawat hakbang ay detalyadong tinalakay sa mga seksyon sa ibaba.

I-map ang problema sa mga quantum circuit at operator​

Inilalarawan ng hakbang na ito kung paano nagsisimula ang isang user sa isang klasikal na problema at nag-iisip kung paano ito imi-map sa isang quantum computer. Halimbawa, sa mga aplikasyon tulad ng chemistry at quantum simulation, ang hakbang na ito ay karaniwang kinabibilangan ng pagbuo ng quantum circuit na kumakatawan sa Hamiltonian na sinusubukan mong resolbahin. Sa hakbang na ito, para sa ilang partikular na problema, maaari ring maging kapaki-pakinabang na tukuyin nang maaga ang pagma-map ng problema sa mga qubit sa heavy-hex (o gross) na lattice ng IBM® hardware, kung ang istruktura ng problema ay angkop sa mas maagang pag-optimize. Kapaki-pakinabang din na isaalang-alang sa puntong ito ang magiging resulta ng partikular na algorithm bilang paghahanda para sa mas maagang execute na hakbang — halimbawa, kung ang nais na resulta ay kinabibilangan ng pag-infer ng mga correlation function gamit ang Hadamard tests, maaari kang maghanda na gumamit ng Sampler, samantalang ang pagtukoy ng mga observable ay gagamit ng Estimator at maaaring magbigay ng maraming opsyon sa error mitigation.

Ang output ng hakbang na ito ay karaniwang isang koleksyon ng mga circuit o quantum operator na maaaring i-optimize para sa hardware sa susunod na hakbang.

I-optimize para sa target na hardware​

Sa hakbang na ito, kukuhanin mo ang mga abstract na circuit (o operator) na ginawa mula sa map na hakbang at magsasagawa ng serye ng mga optimization sa mga ito. Maaaring kasama dito ang pagma-map ng ruta at layout ng circuit sa pisikal na qubit hardware, pag-convert sa basis gates ng hardware, at pagbabawas ng bilang ng mga operasyon — lahat ay dinisenyo upang ma-optimize ang posibilidad ng tagumpay sa mas huling execute na hakbang. Sa puntong ito, maaari ka ring gustong subukan ang iyong mga circuit gamit ang isang simulator bago i-execute sa totoong hardware sa susunod na hakbang.

Sa hakbang na ito, ang mga abstract na circuit ay dapat na i-transpile sa Instruction Set Architecture (ISA) na mga circuit. Ang isang ISA circuit ay isa na binubuo lamang ng mga gate na naiintindihan ng target na hardware (basis gates), at anumang multi-qubit gate na kailangang sumunod sa mga connectivity constraint (coupling map). Tanging ang mga ISA circuit lamang ang maaaring patakbuhin sa IBM hardware gamit ang IBM Qiskit Runtime.

I-execute sa target na hardware​

Ang hakbang na ito ay kinabibilangan ng pagpapatakbo ng iyong mga circuit sa hardware at gumagawa ng mga output ng quantum computation. Ang mga ISA circuit na ginawa sa nakaraang hakbang ay maaaring i-execute gamit ang alinman sa Sampler o Estimator primitive mula sa Qiskit Runtime, na ini-initialize nang lokal sa iyong computer o mula sa isang cluster o iba pang heterogenous na compute environment. Ang mga ito ay maaaring i-execute sa isang Batch, na nagbibigay-daan sa parallel na transpilation para sa kahusayan ng klasikal na computation — o sa isang Session, na nagbibigay-daan sa mga iterative na task na maipatupad nang mahusay nang walang mga pagkaantala sa pila. Sa hakbang na ito, mayroon ding opsyon na i-configure ang ilang partikular na teknik sa error suppression at mitigation na ibinibigay ng Qiskit Runtime.

Depende sa kung gumagamit ka ng Sampler o Estimator primitive, ang kinalabasan ng hakbang na ito ay magiging iba. Kung gumagamit ng Sampler, ang output ay magiging per-shot na mga sukat sa anyo ng mga bitstring. Kung gumagamit ng Estimator, ang output ay magiging mga expectation value ng mga observable na tumutugma sa mga pisikal na dami o cost function.

Post-process ang mga resulta​

Ang huling hakbang na ito ay kinabibilangan ng pagsasama-sama ng mga output mula sa nakaraang hakbang upang makuha ang nais na resulta. Maaaring kasama dito ang iba't ibang klasikal na data-processing na hakbang tulad ng pag-visualize ng mga resulta, mga teknik sa readout error mitigation, pag-marginalize ng mga quasi-probability distribution upang matukoy ang mga resulta sa mas maliliit na grupo ng mga qubit, o post-selection batay sa likas na katangian ng problema, tulad ng kabuuang spin, parity, o particle conservation sa pamamagitan ng pag-alis ng mga hindi pisikal na observable.

Habang lumalayo ang larangan mula sa bespoke na pagbuo ng circuit patungo sa mga utility-scale na workflow, ang flexibility at kaginhawahan kung saan pinapayagan ng mga Qiskit pattern ang mga user na i-compose ang iba't ibang hakbang ng pattern ay nagbubukas ng quantum computing sa malawak na iba't ibang aplikasyon at teknik para sa madaling paggamit ng mga quantum computational scientist.