-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gate decomposition #90
Comments
can you assign me this issue @speller26 |
I am also interested in working on this issue. |
Hello, I would also like to be assigned to this project @speller26 |
I am also interested in this issue @speller26 |
Since multiple people (@s-aldaihan , @Gmontes01 , @AbdullahKazi500, @abrassel ) have volunteered for this issue, I will assign it to all of you. Here are the rules: you can either Please let me know what you each prefer by reacting to to this message with an If a subset of hackers react A, I will take that to mean they are forming a team to work on this issue, and if anyone else reacts B, I will take that to mean that hacker is working independently. |
|
I'm happy to collaborate |
|
I am open to collaborate |
@speller26 Hi! Since my fellow Qbrainiacs have already started working on this issue collaboratively, i'd like to work independently on this and race them to the finish line. Can you assign it to me? |
@speller26 I ended up working alone to build my code and feel confident in racing towards the end on my own. Can I switch back to working on this on my own? |
I don't really want to participate in a race, so happy to tap out. |
@Gmontes01 Hm, this is a tough one. Generally we don't want to encourage switching from a team to solo partway through the hackathon. @AbdullahKazi500 and @s-aldaihan, can you tell me how far along you are in working on this issue? Were you counting on working with a team, or are you okay with doing a race? |
Hi @JordanAWS I am more on a learning path than competing although this is my second Unitary fund hackathon I am open for collaboration before this I have worked with Stanford and MIT Postdoc students having 27 Papers in experimental research but I am new to opensource so I am trying to figure out whatever I can get |
I am familiarizing myself with Braket and exploring ways to map unsupported gates @JordanAWS . Still happy to collaborate if someone is open to working together. |
Looks like we got the team finally rolling @JordanAWS. I'm happy to join y'all and split the work. Join my discord @s-aldaihan and @AbdullahKazi500 and we can get started! Gate Decomp Group |
A couple questions @JordanAWS and @speller26
|
|
into a braket circuit which prepares the desired state but would fail to produce the desired state from the code
because the starting position of the qubit 0 would not be in the zero position when the qubit has the transformations associated to prepare_state() applied to it.
|
Hi! I have given this issue a try #103 and I would appreciate any guidance or feedback from the maintainers on my approach :). Thank you |
@Gmontes01 |
@kshitijc @JordanAWS @speller26
|
Hi @Gmontes01 we did a review of the PR and added comments. If you are able to make the requested modifications to the code by the end of today, you will win the bounty! Totally fine that you ended up working alone. |
@JordanAWS see how this works. I am submitting this before the end of 6/13 AoE time so hopefully I am still eligible for the bounty. I made the requested modifications and expanded the scope of the tests along with highlighting a new bug which would have gone otherwise unnoticed in the previous PR. |
Thanks @Gmontes01 ! Yes, since you submitted a PR with the main functionality before the June 13 deadline, you are indeed eligible for the bounty. We will likely do a few more review cycles between now and June 20th (the deadline to get the PRs from UnitaryHACK merged) :) |
* implement and test gate decomposition * Implement and Test Gate Decomposition * addressed comments in previous PR
Now #111 has been merged. Thank you so much for your contribution @Gmontes01! |
* [UnitaryHack] Enable qiskit transpilation discontinous qubit indices (qiskit-community#108) * convert Rigetti Aspen qubit connectivity continous * Add qiskit transpilation discountinous qubit indices * Add more comments, cleanup * Add more comments, cleanup * Move in Rigetti branching since not require globally * Fix lint * Add better example * Fix docstring * Add mock for rigetti aspen m3 * Enable transpilation test * Fix mypy * [UnitaryHack] Gate Decomposition(qiskit-community#90) added and tested (qiskit-community#111) * implement and test gate decomposition * Implement and Test Gate Decomposition * addressed comments in previous PR * Adding separate QUEUED and RUNNING states to task status (qiskit-community#110) * fix: Updates for Qiskit to Braket circuit conversion (qiskit-community#97) * Probability to Sample result type * passes tox lint * updates toxlint * fixes observable z error but not passses elint * unit test added * final commit with tests fix: Fallback to JAQCD for device properties (qiskit-community#104) * fix: Fallback to JAQCD for device properties * fix: reformat replacing AWSBraketJob with AmazonBraketTask run the notebooks containing AmazonBraketTask deprecation warning added for AWSBraketJob class formatting fixed re-add <JOB_ARN> fix breaking changes on /provider/__init__.py and __init__.py rename job_id to task_id argument for AmazonBraketTask() rename braket_jobs_states to braket_tasks_states add task_id method to access the task_id similar to the one we have in the JobV1 class adding tests for new class 'AmazonBraketTask' and old class 'AWSBraketJob' formatting test_braket_job.py correcting definition of AWSBraketJob rewriting line 184 in braket_job.py adding class docstring to AWSBraketJob standard import 'from warnings import warn' placed before 'from braket.aws import AwsQuantumTask' (wrong-import-order) docstring fix in test_braket_job.py assert the job id in test_AWS_job() function in test_braket_job.py running how to notebook #0 running how to notebook #1 running how to notebook #2 running how to notebook #3 running how to notebook number 5 running tutorial notebook number 3 tutorial number 0 * add separate QUEUED and RUNNING states to task status (qiskit-community#46) --------- Co-authored-by: Yuri Han <45699207+urihan@users.noreply.github.com> --------- Co-authored-by: WingCode <smallstar1234@gmail.com> Co-authored-by: Gmontes01 <118773601+Gmontes01@users.noreply.github.com> Co-authored-by: Yuri Han <45699207+urihan@users.noreply.github.com>
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
Right now, the Amazon Braket provider translates gates from Qiskit to Braket with a hardcoded dicts. This limits the Qiskit operations that can be used in Braket. For example, the circuit
cannot run because
StatePreparation
is not explicitly in the dict. Likewise,cannot run because of the absence of exponential operators. These circuits can run on Braket provided they are sufficiently decomposed.
Another example of an unsupported gate is the
U
gate;cannot run, regardless of how many times
decompose()
is called, becauseU
is the final step of the decomposition; for gates such as these, the decomposition needs to be handled directly.What is the expected behavior?
Gats should be automatically decomposed to be compatible with Amazon Braket devices, and gates that cannot be made compatible with (built-in) decomposition should be converted in the provider.
Acceptance criteria
A circuit with any standard gate (aside from global phase) should run successfully, as well as each of the circuits described above; these should all be included as test cases.
The text was updated successfully, but these errors were encountered: