Sari la conținutul principal
Acest proiect este în versiune beta. Ai găsit o eroare? Deschide un issue pe GitHub. Ai o întrebare sau o idee? Întreabă în Discussions — ne-ar plăcea să aflăm părerea ta!
Cum este calitatea traducerii pe această pagină?

Fluxul de dezvoltare

Termenul pattern Qiskit descrie fluxul de dezvoltare pentru descompunerea problemelor specifice unui domeniu și contextualizarea capacităților necesare în etape. Aceasta permite compozabilitatea fără cusur a noilor capacități dezvoltate de cercetătorii IBM Quantum® (și de alții) și deschide calea către un viitor în care sarcinile de calcul cuantic sunt îndeplinite de infrastructuri de calcul eterogene și puternice (CPU/GPU/QPU). Blocurile sau grupurile de blocuri realizează pașii unui pattern, SDK-ul Qiskit oferind un nivel fundațional important, susținut de alte instrumente sau servicii dezvoltate de IBM Quantum sau de comunitatea open-source din domeniul cuantic. Patternurile Qiskit le permit experților dintr-un domeniu să specifice o problemă și să compună instrumentele (blocurile) care realizează un pattern Qiskit. Acel pattern poate fi apoi executat local, prin servicii cloud sau implementat cu Qiskit Serverless.

Cei patru pași ai unui pattern Qiskit sunt:

  • Mapare a problemei pe circuite cuantice și operatori

  • Optimizare pentru hardware-ul țintă

  • Execuție pe hardware-ul țintă

  • Post-procesare a rezultatelor

Fiecare pas este detaliat în secțiunile de mai jos.

Maparea problemei pe circuite cuantice și operatori​

Acest pas descrie modul în care un utilizator pornește de la o problemă clasică și determină cum să o mapeze pe un calculator cuantic. De exemplu, în aplicații precum chimia și simularea cuantică, acest pas implică în general construirea unui circuit cuantic care reprezintă Hamiltonianul pe care încerci să îl rezolvi. În cadrul acestui pas, pentru anumite probleme, poate fi de asemenea de dorit să specifici maparea problemei pe qubiți în rețeaua heavy-hex (sau gross) a hardware-ului IBM® încă de la început, dacă structura problemei se pretează la optimizarea timpurie. Merită, de asemenea, să iei în considerare în această etapă care va fi rezultatul algoritmului respectiv, în pregătirea pentru pasul de execuție ulterior — de exemplu, dacă rezultatul dorit implică deducerea funcțiilor de corelație folosind testele Hadamard, s-ar putea să te pregătești să folosești Sampler, în timp ce specificarea observabilelor ar folosi Estimator și ar putea oferi numeroase opțiuni de diminuare a erorilor.

Rezultatul acestui pas este de obicei o colecție de circuite sau operatori cuantici care pot fi optimizați pentru hardware în pasul următor.

Optimizarea pentru hardware-ul țintă​

În acest pas iei circuitele abstracte (sau operatorii) produse în pasul de mapare și efectuezi o serie de optimizări asupra lor. Aceasta poate include maparea rutei și a layout-ului circuitului pe hardware-ul fizic cu qubiți, conversia la porțile de bază ale hardware-ului și reducerea numărului de operații, toate concepute pentru a optimiza probabilitatea de succes în pasul de execuție ulterior. În acest moment, s-ar putea să dorești și să testezi circuitele cu un simulator înainte de a le executa pe hardware real în pasul următor.

În cadrul acestui pas, circuitele abstracte trebuie transpilate în circuite de tip Instruction Set Architecture (ISA). Un circuit ISA este unul care constă doar din porți înțelese de hardware-ul țintă (porți de bază), iar orice porți multi-qubit trebuie să respecte constrângerile de conectivitate (harta de cuplare). Doar circuitele ISA pot fi rulate pe hardware-ul IBM folosind IBM Quantum Compute Service.

Execuția pe hardware-ul țintă​

Acest pas implică rularea circuitelor pe hardware și produce rezultatele calculului cuantic. Circuitele ISA produse în pasul anterior pot fi executate folosind fie primitiva Sampler, fie Estimator din pachetul qiskit-ibm-runtime, inițializate local pe calculatorul tău sau dintr-un cluster sau alt mediu de calcul eterogen. Acestea pot fi executate într-un Batch, care permite transpilarea paralelă pentru eficiență computațională clasică — sau o Session, care permite implementarea eficientă a sarcinilor iterative fără întârzieri de coadă. În cadrul acestui pas, există și opțiunea de a configura anumite tehnici de suprimare și diminuare a erorilor oferite de qiskit-ibm-runtime.

În funcție de utilizarea primitivului Sampler sau Estimator, rezultatul acestui pas va fi diferit. Dacă folosești Sampler, rezultatul va fi măsurători per-shot sub formă de șiruri de biți. Dacă folosești Estimator, rezultatul va fi valorile medii (așteptate) ale observabilelor corespunzătoare unor mărimi fizice sau funcții de cost.

Post-procesarea rezultatelor​

Acest pas final implică îmbinarea rezultatelor din pasul anterior pentru a obține rezultatul dorit. Aceasta poate implica o gamă de pași clasici de procesare a datelor, cum ar fi vizualizarea rezultatelor, tehnici de diminuare a erorilor de citire, marginalizarea distribuțiilor de cvasi-probabilitate pentru a determina rezultate pe seturi mai mici de qubiți, sau post-selecția pe proprietăți inerente ale problemei, cum ar fi spinul total, paritatea sau conservarea particulelor prin eliminarea observabilelor nefizice.

Pe măsură ce domeniul trece de la construirea circuitelor la comandă la fluxuri de lucru la scară de utilitate practică, flexibilitatea și ușurința cu care patternurile Qiskit le permit utilizatorilor să compună diferiți pași ai patternului deschid calculul cuantic către o gamă largă de aplicații și tehnici, ușor de utilizat de către oamenii de știință din domeniul calculului cuantic.