Comments (1)
Same issue with real backends.
Minimal example:
from qiskit.circuit import QuantumCircuit
from qiskit import transpile
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.backend("ibm_torino")
circuit = QuantumCircuit(2)
circuit.h(0)
circuit.x(1)
circuit.cx(0,1)
pm_sched = generate_preset_pass_manager(
backend=backend,
optimization_level=3,
scheduling_method="alap"
)
isa_circuit_sched_pm = pm_sched.run(circuit)
Note that, this error does not occur if we use:
target
instead ofbackend
in the present pass manager.transpile
function instead ofgenerate_preset_pass_manager
Software versions:
-
Qiskit:
$1.0.2$ and$1.1.0rc1$ -
Qiskit IBM Runtime:
$0.23.0$ -
Python:
$3.11$ - OS: Mac OS Sonoma
Error trace
14 pm_sched = generate_preset_pass_manager(
15 backend=backend,
16 optimization_level=3,
17 scheduling_method="alap"
18 )
19 isa_circuit_sched_pm = pm_sched.run(circuit)
File [python3.11/site-packages/qiskit/transpiler/preset_passmanagers/__init__.py:259](python3.11/site-packages/qiskit/transpiler/preset_passmanagers/__init__.py#line=258), in generate_preset_pass_manager(optimization_level, backend, target, basis_gates, inst_map, coupling_map, instruction_durations, backend_properties, timing_constraints, initial_layout, layout_method, routing_method, translation_method, scheduling_method, approximation_degree, seed_transpiler, unitary_synthesis_method, unitary_synthesis_plugin_config, hls_config, init_method, optimization_method, _skip_target)
257 pm = level_2_pass_manager(pm_config)
258 elif optimization_level == 3:
--> 259 pm = level_3_pass_manager(pm_config)
260 else:
261 raise ValueError(f"Invalid optimization level {optimization_level}")
File [python3.11/site-packages/qiskit/transpiler/preset_passmanagers/level3.py:106](python3.11/site-packages/qiskit/transpiler/preset_passmanagers/level3.py#line=105), in level_3_pass_manager(pass_manager_config)
103 else:
104 pre_optimization = common.generate_pre_op_passmanager(remove_reset_in_zero=False)
--> 106 sched = plugin_manager.get_passmanager_stage(
107 "scheduling", scheduling_method, pass_manager_config, optimization_level=3
108 )
110 return StagedPassManager(
111 pre_init=pre_init,
112 init=init,
(...)
118 scheduling=sched,
119 )
File [python3.11/site-packages/qiskit/transpiler/preset_passmanagers/plugin.py:255](python3.11/site-packages/qiskit/transpiler/preset_passmanagers/plugin.py#line=254), in PassManagerStagePluginManager.get_passmanager_stage(self, stage_name, plugin_name, pm_config, optimization_level)
251 return self._build_pm(
252 self.optimization_plugins, stage_name, plugin_name, pm_config, optimization_level
253 )
254 elif stage_name == "scheduling":
--> 255 return self._build_pm(
256 self.scheduling_plugins, stage_name, plugin_name, pm_config, optimization_level
257 )
258 else:
259 raise TranspilerError(f"Invalid stage name: {stage_name}")
File [python3.11/site-packages/qiskit/transpiler/preset_passmanagers/plugin.py:272](python3.11/site-packages/qiskit/transpiler/preset_passmanagers/plugin.py#line=271), in PassManagerStagePluginManager._build_pm(self, stage_obj, stage_name, plugin_name, pm_config, optimization_level)
270 raise TranspilerError(f"Invalid plugin name {plugin_name} for stage {stage_name}")
271 plugin_obj = stage_obj[plugin_name]
--> 272 return plugin_obj.obj.pass_manager(pm_config, optimization_level)
File [python3.11/site-packages/qiskit/transpiler/preset_passmanagers/builtin_plugins.py:623](python3.11/site-packages/qiskit/transpiler/preset_passmanagers/builtin_plugins.py#line=622), in AlapSchedulingPassManager.pass_manager(self, pass_manager_config, optimization_level)
620 inst_map = pass_manager_config.inst_map
621 target = pass_manager_config.target
--> 623 return common.generate_scheduling(
624 instruction_durations, scheduling_method, timing_constraints, inst_map, target
625 )
File [python3.11/site-packages/qiskit/transpiler/preset_passmanagers/common.py:573](python3.11/site-packages/qiskit/transpiler/preset_passmanagers/common.py#line=572), in generate_scheduling(instruction_durations, scheduling_method, timing_constraints, inst_map, target)
566 scheduling.append(ContainsInstruction("delay"))
567 scheduling.append(
568 ConditionalController(
569 TimeUnitConversion(instruction_durations, target=target), condition=_contains_delay
570 )
571 )
572 if (
--> 573 timing_constraints.granularity != 1
574 or timing_constraints.min_length != 1
575 or timing_constraints.acquire_alignment != 1
576 or timing_constraints.pulse_alignment != 1
577 ):
578 # Run alignment analysis regardless of scheduling.
580 def _require_alignment(property_set):
581 return property_set["reschedule_required"]
AttributeError: 'NoneType' object has no attribute 'granularity'
from qiskit.
Related Issues (20)
- Instructions from `QuantumCircuit.to_instruction` with control flow cannot be used in larger circuits HOT 2
- SamplerResult
- Coupling Map for Flamingo
- Additional parameters for 'qiskit.visualization.plot_circuit_layout' HOT 1
- precision argument of BackendEstimatorV2.run should account for observable norm HOT 5
- Deprecate accidentally public internal helper methods on QuantumCircuit
- Scheduling; physical circuits check HOT 2
- StabilizerState.expectation_value should accept SparsePauliOp
- Something weird happening in transpile after 1.1 release HOT 8
- GlobalPhaseGate causing `circuit.depth()` error HOT 2
- Improve ZZFeatureMap API docs HOT 1
- ZZFeatureMap does not accept layer lists for entanglement kwarg HOT 1
- import ibm_cloud token with error HOT 2
- Add `parameters` property to `BindingsArray` HOT 1
- Add `outer` method to `BindingsArray`
- Add `inner` method to `BindingsArray`
- Transpiler gives wrong result HOT 2
- No support for transpiling `Schedule` HOT 7
- `BlockCollapser.collapse_to_operation` fails with `if_else` and `switch_case` ops
- Some Syntax errors in the Primitives Sampler V2 docs
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qiskit.