BQSKit / bqskit

Berkeley Quantum Synthesis Toolkit
Other
108 stars 31 forks source link

'optimization_level=4' does not work for .qasm files with barrier #200

Closed jinleic closed 8 months ago

jinleic commented 8 months ago

Bqskit codes:

import bqskit from bqskit import Circuit, compile bqskit_circuit = Circuit.from_file('./qft_n29.txt') out_circ_4 = compile(bqskit_circuit,optimization_level=4)

QASM file:

qft_n29.txt

Error Message:

RuntimeError Traceback (most recent call last) File /shared_ssd_storage/jinleic/anaconda3/envs/dqc/lib/python3.9/site-packages/bqskit-1.1.0-py3.9.egg/bqskit/compiler/compiler.py:444, in Compiler._send_recv(self, msg, payload) 442 self.conn.send((msg, payload)) --> 444 return self._recv_handle_log_error() 446 except Exception as e:

File /shared_ssd_storage/jinleic/anaconda3/envs/dqc/lib/python3.9/site-packages/bqskit-1.1.0-py3.9.egg/bqskit/compiler/compiler.py:466, in Compiler._recv_handle_log_error(self) 465 elif msg == RuntimeMessage.ERROR: --> 466 raise RuntimeError(payload) 468 else: 469 # Communication between runtime server and compiler 470 # is always round-trip. Once we have received our (...) 475 # process every arrived message before returning. 476 # Hence, the or self.conn.poll() in the while condition.

RuntimeError: Traceback (most recent call last): File "/shared_ssd_storage/jinleic/anaconda3/envs/dqc/lib/python3.9/site-packages/bqskit-1.1.0-py3.9.egg/bqskit/runtime/worker.py", line 378, in _try_step_next_ready_task future = task.step(self._get_desired_result(task)) File "/shared_ssd_storage/jinleic/anaconda3/envs/dqc/lib/python3.9/site-packages/bqskit-1.1.0-py3.9.egg/bqskit/runtime/task.py", line 93, in step to_return = self.coro.send(send_val) File "/shared_ssd_storage/jinleic/anaconda3/envs/dqc/lib/python3.9/site-packages/bqskit-1.1.0-py3.9.egg/bqskit/runtime/task.py", line 107, in run return await self.fnargs[0](*self.fnargs[1], **self.fnargs[2]) File "/shared_ssd_storage/jinleic/anaconda3/envs/dqc/lib/python3.9/site-packages/bqskit-1.1.0-py3.9.egg/bqskit/compiler/task.py", line 54, in run await self.workflow.run(self.circuit, self.data) File "/shared_ssd_storage/jinleic/anaconda3/envs/dqc/lib/python3.9/site-packages/bqskit-1.1.0-py3.9.egg/bqskit/compiler/workflow.py", line 72, in run await pass_obj.run(circuit, data) File "/shared_ssd_storage/jinleic/anaconda3/envs/dqc/lib/python3.9/site-packages/bqskit-1.1.0-py3.9.egg/bqskit/compiler/workflow.py", line 72, in run await pass_obj.run(circuit, data) File "/shared_ssd_storage/jinleic/anaconda3/envs/dqc/lib/python3.9/site-packages/bqskit-1.1.0-py3.9.egg/bqskit/passes/control/ifthenelse.py", line 57, in run await self.on_true.run(circuit, data) File "/shared_ssd_storage/jinleic/anaconda3/envs/dqc/lib/python3.9/site-packages/bqskit-1.1.0-py3.9.egg/bqskit/compiler/workflow.py", line 72, in run await pass_obj.run(circuit, data) File "/shared_ssd_storage/jinleic/anaconda3/envs/dqc/lib/python3.9/site-packages/bqskit-1.1.0-py3.9.egg/bqskit/passes/mapping/routing/pam.py", line 33, in run out_data = self.forward_pass(circuit, pi, subgraph, perm_data, True) File "/shared_ssd_storage/jinleic/anaconda3/envs/dqc/lib/python3.9/site-packages/bqskit-1.1.0-py3.9.egg/bqskit/passes/mapping/pam.py", line 180, in forward_pass perm_data[n], KeyError: (0, 0)