[{"data":1,"prerenderedAt":757},["ShallowReactive",2],{"blog-post-docs\u002Ftranspilation":3,"sibling-dives-docs\u002Ftranspilation":589,"learn-track-docs\u002Ftranspilation":590,"learn-docs-groups":591},{"id":4,"title":5,"authors":6,"body":7,"breadcrumb":6,"builders":6,"byline":6,"category":573,"categoryName":574,"challenge":6,"courseAuthor":6,"courseLead":6,"dek":6,"description":575,"draft":576,"extension":577,"eyebrow":6,"featured":576,"finish":6,"fork":6,"group":6,"groupName":6,"hero":6,"heroAlt":6,"heroCta":6,"heroImage":6,"homepageFeatured":576,"kind":578,"lessonCount":6,"meta":579,"navigation":103,"newsItems":6,"next":6,"ogImage":6,"order":228,"outcomes":6,"path":580,"publishDate":581,"readingTime":6,"related":582,"relatedProjects":6,"seo":583,"stem":586,"tags":587,"track":6,"trackName":6,"__hash__":588},"blog\u002Fblog\u002Flearn\u002Fdocs\u002Ftranspilation.md","Transpilation",null,{"type":8,"value":9,"toc":565},"minimark",[10,14,19,27,37,55,59,72,241,435,438,442,468,472,506,510,527,533,537,561],[11,12,13],"p",{},"Transpilation rewrites a circuit into the gates a backend can run. Where that rewrite happens depends on the backend you pick in the Select QPU dialog: in your browser for the local simulators and the IBM noise models, and on IonQ's side for IonQ simulators and hardware.",[15,16,18],"h2",{"id":17},"the-warning-on-ionq-backends","The warning on IonQ backends",[11,20,21,22,26],{},"When an IonQ backend is created, ",[23,24,25],"code",{},"qiskit-ionq"," prints this in the runner console unless the transpile default is 0 or 1:",[28,29,34],"pre",{"className":30,"code":32,"language":33},[31],"language-text","IonQTranspileLevelWarning: Transpiler default optimization_level=2. IonQ (QIS) recommends 0-1 to avoid aggressive re-synthesis; use transpile(..., optimization_level=1).\n","text",[23,35,32],{"__ignoreMap":36},"",[11,38,39,40,43,44,47,48,51,52,54],{},"It is advice, not an error, and the run continues. It applies only if you call ",[23,41,42],{},"transpile()"," yourself: pass ",[23,45,46],{},"optimization_level=1"," (or ",[23,49,50],{},"0","), and Qiskit keeps your circuit close to what you wrote before IonQ's compiler takes over. You do not need to call ",[23,53,42],{}," before submitting to an IonQ backend; the runner hands IonQ the circuit as written.",[15,56,58],{"id":57},"seeing-what-a-backend-will-run","Seeing what a backend will run",[11,60,61,63,64,67,68,71],{},[23,62,42],{}," takes your circuit and the pre-created ",[23,65,66],{},"backend"," and returns the rewritten circuit. ",[23,69,70],{},"count_ops()"," on the result is the quickest read of what changed.",[28,73,77],{"className":74,"code":75,"language":76,"meta":36,"style":36},"language-python shiki shiki-themes one-dark-pro","from qiskit import QuantumCircuit, transpile\n\nqc = QuantumCircuit(2, 2)\nqc.h(0)\nqc.cx(0, 1)\nqc.measure([0, 1], [0, 1])\n\ncompiled = transpile(qc, backend, optimization_level=1)\nprint(compiled.count_ops())\n","python",[23,78,79,98,105,134,149,168,197,202,226],{"__ignoreMap":36},[80,81,84,88,92,95],"span",{"class":82,"line":83},"line",1,[80,85,87],{"class":86},"seHd6","from",[80,89,91],{"class":90},"sn6KH"," qiskit ",[80,93,94],{"class":86},"import",[80,96,97],{"class":90}," QuantumCircuit, transpile\n",[80,99,101],{"class":82,"line":100},2,[80,102,104],{"emptyLinePlaceholder":103},true,"\n",[80,106,108,111,115,119,122,126,129,131],{"class":82,"line":107},3,[80,109,110],{"class":90},"qc ",[80,112,114],{"class":113},"sjrmR","=",[80,116,118],{"class":117},"sVbv2"," QuantumCircuit",[80,120,121],{"class":90},"(",[80,123,125],{"class":124},"sVC51","2",[80,127,128],{"class":90},", ",[80,130,125],{"class":124},[80,132,133],{"class":90},")\n",[80,135,137,140,143,145,147],{"class":82,"line":136},4,[80,138,139],{"class":90},"qc.",[80,141,142],{"class":117},"h",[80,144,121],{"class":90},[80,146,50],{"class":124},[80,148,133],{"class":90},[80,150,152,154,157,159,161,163,166],{"class":82,"line":151},5,[80,153,139],{"class":90},[80,155,156],{"class":117},"cx",[80,158,121],{"class":90},[80,160,50],{"class":124},[80,162,128],{"class":90},[80,164,165],{"class":124},"1",[80,167,133],{"class":90},[80,169,171,173,176,179,181,183,185,188,190,192,194],{"class":82,"line":170},6,[80,172,139],{"class":90},[80,174,175],{"class":117},"measure",[80,177,178],{"class":90},"([",[80,180,50],{"class":124},[80,182,128],{"class":90},[80,184,165],{"class":124},[80,186,187],{"class":90},"], [",[80,189,50],{"class":124},[80,191,128],{"class":90},[80,193,165],{"class":124},[80,195,196],{"class":90},"])\n",[80,198,200],{"class":82,"line":199},7,[80,201,104],{"emptyLinePlaceholder":103},[80,203,205,208,210,213,216,220,222,224],{"class":82,"line":204},8,[80,206,207],{"class":90},"compiled ",[80,209,114],{"class":113},[80,211,212],{"class":117}," transpile",[80,214,215],{"class":90},"(qc, backend, ",[80,217,219],{"class":218},"s_ZVi","optimization_level",[80,221,114],{"class":113},[80,223,165],{"class":124},[80,225,133],{"class":90},[80,227,229,232,235,238],{"class":82,"line":228},9,[80,230,231],{"class":113},"print",[80,233,234],{"class":90},"(compiled.",[80,236,237],{"class":117},"count_ops",[80,239,240],{"class":90},"())\n",[28,242,246],{"className":243,"code":244,"language":245,"meta":36,"style":36},"language-js shiki shiki-themes one-dark-pro","import { QuantumCircuit, transpile } from 'qiskit';\n\nconst circuit = QuantumCircuit(2, 2);\ncircuit.h(0);\ncircuit.cx(0, 1);\ncircuit.measure([0, 1], [0, 1]);\n\nconst compiled = transpile.callKwargs(circuit, backend, { optimization_level: 1 });\nconsole.log(compiled.count_ops().toJs());\n","js",[23,247,248,276,280,305,321,339,366,370,407],{"__ignoreMap":36},[80,249,250,252,255,259,261,264,267,269,273],{"class":82,"line":83},[80,251,94],{"class":86},[80,253,254],{"class":90}," { ",[80,256,258],{"class":257},"sVyAn","QuantumCircuit",[80,260,128],{"class":90},[80,262,263],{"class":257},"transpile",[80,265,266],{"class":90}," } ",[80,268,87],{"class":86},[80,270,272],{"class":271},"subq3"," 'qiskit'",[80,274,275],{"class":90},";\n",[80,277,278],{"class":82,"line":100},[80,279,104],{"emptyLinePlaceholder":103},[80,281,282,285,289,292,294,296,298,300,302],{"class":82,"line":107},[80,283,284],{"class":86},"const",[80,286,288],{"class":287},"sU0A5"," circuit",[80,290,291],{"class":113}," =",[80,293,118],{"class":117},[80,295,121],{"class":90},[80,297,125],{"class":124},[80,299,128],{"class":90},[80,301,125],{"class":124},[80,303,304],{"class":90},");\n",[80,306,307,310,313,315,317,319],{"class":82,"line":136},[80,308,309],{"class":287},"circuit",[80,311,312],{"class":90},".",[80,314,142],{"class":117},[80,316,121],{"class":90},[80,318,50],{"class":124},[80,320,304],{"class":90},[80,322,323,325,327,329,331,333,335,337],{"class":82,"line":151},[80,324,309],{"class":287},[80,326,312],{"class":90},[80,328,156],{"class":117},[80,330,121],{"class":90},[80,332,50],{"class":124},[80,334,128],{"class":90},[80,336,165],{"class":124},[80,338,304],{"class":90},[80,340,341,343,345,347,349,351,353,355,357,359,361,363],{"class":82,"line":170},[80,342,309],{"class":287},[80,344,312],{"class":90},[80,346,175],{"class":117},[80,348,178],{"class":90},[80,350,50],{"class":124},[80,352,128],{"class":90},[80,354,165],{"class":124},[80,356,187],{"class":90},[80,358,50],{"class":124},[80,360,128],{"class":90},[80,362,165],{"class":124},[80,364,365],{"class":90},"]);\n",[80,367,368],{"class":82,"line":199},[80,369,104],{"emptyLinePlaceholder":103},[80,371,372,374,377,379,381,383,386,388,390,392,394,397,399,402,404],{"class":82,"line":204},[80,373,284],{"class":86},[80,375,376],{"class":287}," compiled",[80,378,291],{"class":113},[80,380,212],{"class":287},[80,382,312],{"class":90},[80,384,385],{"class":117},"callKwargs",[80,387,121],{"class":90},[80,389,309],{"class":257},[80,391,128],{"class":90},[80,393,66],{"class":257},[80,395,396],{"class":90},", { ",[80,398,219],{"class":257},[80,400,401],{"class":90},": ",[80,403,165],{"class":124},[80,405,406],{"class":90}," });\n",[80,408,409,412,414,417,419,422,424,426,429,432],{"class":82,"line":228},[80,410,411],{"class":287},"console",[80,413,312],{"class":90},[80,415,416],{"class":117},"log",[80,418,121],{"class":90},[80,420,421],{"class":287},"compiled",[80,423,312],{"class":90},[80,425,237],{"class":117},[80,427,428],{"class":90},"().",[80,430,431],{"class":117},"toJs",[80,433,434],{"class":90},"());\n",[11,436,437],{},"Transpiling submits no job and costs no credits.",[15,439,441],{"id":440},"local-simulators","Local simulators",[11,443,444,445,448,449,452,453,455,456,459,460,463,464,467],{},"The built-in simulator runs Qiskit's standard gates as written, but not composite instructions: a ",[23,446,447],{},"PauliEvolutionGate"," submitted untranspiled stops with ",[23,450,451],{},"unrecognized operation",", and ",[23,454,42],{}," unrolls it first (a ",[23,457,458],{},"ZZ","-type Hamiltonian becomes ",[23,461,462],{},"rzz"," and ",[23,465,466],{},"rz","). Otherwise the built-in simulator runs the circuit you wrote.",[15,469,471],{"id":470},"ibm-noise-model-backends","IBM noise-model backends",[11,473,474,475,477,478,481,482,128,484,128,487,463,490,493,494,496,497,499,500,502,503,505],{},"The IBM backends in the dialog are local simulators carrying a real device's noise model. Like the built-in simulator, they reject an untranspiled ",[23,476,447],{}," (",[23,479,480],{},"unknown instruction","), so transpile first. Each device has a small native gate set, ",[23,483,466],{},[23,485,486],{},"sx",[23,488,489],{},"x",[23,491,492],{},"cz"," on the Heron and Nighthawk machines Qollab lists, and ",[23,495,42],{}," for one of them rewrites your circuit into those gates. The Bell pair above comes back as six ",[23,498,466],{},", three ",[23,501,486],{}," and one ",[23,504,492],{},": the H and the CX are gone, replaced by what the device physically runs. The rewritten circuit runs in your browser with that device's noise applied.",[15,507,509],{"id":508},"ionq-simulators-and-hardware","IonQ simulators and hardware",[11,511,512,513,515,516,521,522,526],{},"An IonQ backend accepts the whole standard gate set, so ",[23,514,42],{}," for one leaves the Bell pair as an H and a CX. The real rewrite happens after you submit, on IonQ's compiler, which turns your gates into IonQ's native gates and optimises the whole circuit; the gate count you see locally is not what runs, since the compiler both expands gates into native ones and cancels or merges what it can. See ",[517,518,520],"a",{"href":519},"\u002Flearn\u002Fdocs\u002Fhow-your-circuit-is-compiled","How your circuit is compiled"," and the ",[517,523,525],{"href":524},"\u002Flearn\u002Fdocs\u002Fgates","Gate reference"," for what each gate becomes.",[11,528,529,530,532],{},"Because IonQ compiles again, ",[23,531,25],{}," asks you not to let Qiskit optimise aggressively first; that is the warning explained at the top of this page.",[15,534,536],{"id":535},"related","Related",[538,539,540,545,551,555],"ul",{},[541,542,543],"li",{},[517,544,520],{"href":519},[541,546,547],{},[517,548,550],{"href":549},"\u002Flearn\u002Fdocs\u002Fcompute-backends","Compute backends",[541,552,553],{},[517,554,525],{"href":524},[541,556,557],{},[517,558,560],{"href":559},"\u002Flearn\u002Fdocs\u002Fprimitives","Primitives",[562,563,564],"style",{},"html pre.shiki code .seHd6, html code.shiki .seHd6{--shiki-default:#C678DD}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sjrmR, html code.shiki .sjrmR{--shiki-default:#56B6C2}html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html pre.shiki code .s_ZVi, html code.shiki .s_ZVi{--shiki-default:#E06C75;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sU0A5, html code.shiki .sU0A5{--shiki-default:#E5C07B}",{"title":36,"searchDepth":100,"depth":100,"links":566},[567,568,569,570,571,572],{"id":17,"depth":100,"text":18},{"id":57,"depth":100,"text":58},{"id":440,"depth":100,"text":441},{"id":470,"depth":100,"text":471},{"id":508,"depth":100,"text":509},{"id":535,"depth":100,"text":536},"running-code","Running code","What transpile() does to a circuit on each kind of Qollab backend, how to see the result, and what the optimization-level warning on IonQ backends means.",false,"md","doc",{},"\u002Fblog\u002Flearn\u002Fdocs\u002Ftranspilation","2026-09-17",[],{"title":584,"description":585},"Transpilation · Qollab docs","How transpilation works on Qollab backends: local simulators, IBM noise models and IonQ hardware, how to inspect the result, and the IonQ optimization-level warning.","blog\u002Flearn\u002Fdocs\u002Ftranspilation",[],"PfubPX6j4GYa28OVl1VE_b7IVXA59o3XfN8hMFOR1R8",[],[],[592,599,615,637,734,744],{"category":593,"categoryName":594,"articles":595},"account","Account",[596],{"title":597,"href":598},"Account and profile","\u002Flearn\u002Fdocs\u002Faccount-and-profile",{"category":600,"categoryName":601,"articles":602},"projects","Projects",[603,606,609,612],{"title":604,"href":605},"The project page","\u002Flearn\u002Fdocs\u002Fproject-anatomy",{"title":607,"href":608},"Editing your project","\u002Flearn\u002Fdocs\u002Fwrite-your-project-page",{"title":610,"href":611},"Publishing and versions","\u002Flearn\u002Fdocs\u002Fpublish",{"title":613,"href":614},"Forking a project","\u002Flearn\u002Fdocs\u002Ffork-and-remix",{"category":573,"categoryName":574,"articles":616},[617,620,621,624,627,630,631,634,636],{"title":618,"href":619},"Running your code","\u002Flearn\u002Fdocs\u002Frun-your-code",{"title":550,"href":549},{"title":622,"href":623},"The runtime environment","\u002Flearn\u002Fdocs\u002Fruntime-environment",{"title":625,"href":626},"JS \u002F Qiskit projects","\u002Flearn\u002Fdocs\u002Fjs-qiskit-projects",{"title":628,"href":629},"Python \u002F Qiskit projects","\u002Flearn\u002Fdocs\u002Fpython-qiskit-projects",{"title":520,"href":519},{"title":632,"href":633},"Error mitigation and debiasing","\u002Flearn\u002Fdocs\u002Ferror-mitigation",{"title":5,"href":635},"\u002Flearn\u002Fdocs\u002Ftranspilation",{"title":560,"href":559},{"category":638,"categoryName":639,"articles":640},"gates","Gates",[641,642,647,650,653,656,659,662,665,668,671,674,677,680,683,686,691,694,697,700,703,706,709,712,717,720,725,728,731],{"title":525,"href":524},{"title":643,"href":644,"group":645,"groupName":646},"H gate","\u002Flearn\u002Fdocs\u002Fh-gate","single-qubit","Single-qubit gates",{"title":648,"href":649,"group":645,"groupName":646},"X gate","\u002Flearn\u002Fdocs\u002Fx-gate",{"title":651,"href":652,"group":645,"groupName":646},"Y gate","\u002Flearn\u002Fdocs\u002Fy-gate",{"title":654,"href":655,"group":645,"groupName":646},"Z gate","\u002Flearn\u002Fdocs\u002Fz-gate",{"title":657,"href":658,"group":645,"groupName":646},"S gate","\u002Flearn\u002Fdocs\u002Fs-gate",{"title":660,"href":661,"group":645,"groupName":646},"Sdg gate","\u002Flearn\u002Fdocs\u002Fsdg-gate",{"title":663,"href":664,"group":645,"groupName":646},"T gate","\u002Flearn\u002Fdocs\u002Ft-gate",{"title":666,"href":667,"group":645,"groupName":646},"Tdg gate","\u002Flearn\u002Fdocs\u002Ftdg-gate",{"title":669,"href":670,"group":645,"groupName":646},"√X gate","\u002Flearn\u002Fdocs\u002Fsx-gate",{"title":672,"href":673,"group":645,"groupName":646},"√X† gate","\u002Flearn\u002Fdocs\u002Fsxdg-gate",{"title":675,"href":676,"group":645,"groupName":646},"P gate","\u002Flearn\u002Fdocs\u002Fp-gate",{"title":678,"href":679,"group":645,"groupName":646},"RX gate","\u002Flearn\u002Fdocs\u002Frx-gate",{"title":681,"href":682,"group":645,"groupName":646},"RY gate","\u002Flearn\u002Fdocs\u002Fry-gate",{"title":684,"href":685,"group":645,"groupName":646},"RZ gate","\u002Flearn\u002Fdocs\u002Frz-gate",{"title":687,"href":688,"group":689,"groupName":690},"CX gate","\u002Flearn\u002Fdocs\u002Fcx-gate","two-qubit","Two-qubit gates",{"title":692,"href":693,"group":689,"groupName":690},"CY gate","\u002Flearn\u002Fdocs\u002Fcy-gate",{"title":695,"href":696,"group":689,"groupName":690},"CZ gate","\u002Flearn\u002Fdocs\u002Fcz-gate",{"title":698,"href":699,"group":689,"groupName":690},"CP gate","\u002Flearn\u002Fdocs\u002Fcp-gate",{"title":701,"href":702,"group":689,"groupName":690},"Swap gate","\u002Flearn\u002Fdocs\u002Fswap-gate",{"title":704,"href":705,"group":689,"groupName":690},"RXX gate","\u002Flearn\u002Fdocs\u002Frxx-gate",{"title":707,"href":708,"group":689,"groupName":690},"RYY gate","\u002Flearn\u002Fdocs\u002Fryy-gate",{"title":710,"href":711,"group":689,"groupName":690},"RZZ gate","\u002Flearn\u002Fdocs\u002Frzz-gate",{"title":713,"href":714,"group":715,"groupName":716},"CCX gate","\u002Flearn\u002Fdocs\u002Fccx-gate","multi-qubit","Multi-qubit gates",{"title":718,"href":719,"group":715,"groupName":716},"Pauli evolution gate","\u002Flearn\u002Fdocs\u002Fpauli-evolution-gate",{"title":721,"href":722,"group":723,"groupName":724},"GPi gate","\u002Flearn\u002Fdocs\u002Fgpi-gate","native","IonQ native gates",{"title":726,"href":727,"group":723,"groupName":724},"GPi2 gate","\u002Flearn\u002Fdocs\u002Fgpi2-gate",{"title":729,"href":730,"group":723,"groupName":724},"MS gate","\u002Flearn\u002Fdocs\u002Fms-gate",{"title":732,"href":733,"group":723,"groupName":724},"ZZ gate","\u002Flearn\u002Fdocs\u002Fzz-gate",{"category":735,"categoryName":736,"articles":737},"credits","Credits",[738,741],{"title":739,"href":740},"How credits work","\u002Flearn\u002Fdocs\u002Fhow-credits-work",{"title":742,"href":743},"Before you spend credits","\u002Flearn\u002Fdocs\u002Fbefore-you-spend-credits",{"category":745,"categoryName":746,"articles":747},"troubleshooting","Troubleshooting",[748,751,754],{"title":749,"href":750},"Troubleshooting and FAQ","\u002Flearn\u002Fdocs\u002Ffaq",{"title":752,"href":753},"Error reference","\u002Flearn\u002Fdocs\u002Ferror-reference",{"title":755,"href":756},"Why your results look wrong","\u002Flearn\u002Fdocs\u002Fwhy-your-results-look-wrong",1789652389136]