amazon-braket / braket.jl Goto Github PK
View Code? Open in Web Editor NEWExperimental Julia implementation of the Amazon Braket SDK
License: Apache License 2.0
Experimental Julia implementation of the Amazon Braket SDK
License: Apache License 2.0
Describe the feature you'd like
Amazon Braket now has the Braket Direct feature, which allows users to reserve certain Direct-only devices or access experimental capabilities of devices.
Is this feature already present in the Python SDK?
Yes. https://github.com/amazon-braket/amazon-braket-sdk-python/blob/main/src/braket/aws/direct_reservations.py
How would this feature be used? Please describe.
This allows users to provide a reservation arn to access their reservation, as in the BDK.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Describe the bug
The apply
noise model test fails intermittently on CI, only on OSX:
apply: Test Failed at /Users/runner/work/Braket.jl/Braket.jl/test/noise_model.jl:132
Expression: noisy_circuit_from_circuit.instructions == expected_circuit.instructions
Evaluated: Instruction[Instruction(Depolarizing(0.09), QubitSet(0)), Instruction(H(), QubitSet(0)), Instruction(Depolarizing(0.04), QubitSet(0)), Instruction(PauliChannel(0.06, 0.07, 0.08), QubitSet(0)), Instruction(CNot(), QubitSet(0, 1)), Instruction(TwoQubitDepolarizing(0.05), QubitSet(0, 1)), Instruction(Unitary(ComplexF64[0.7071067811865475 + 0.0im 0.7071067811865475 + 0.0im; 0.7071067811865475 + 0.0im -0.7071067811865475 + 0.0im]), QubitSet(0)), Instruction(Depolarizing(0.1), QubitSet(0)), Instruction(Depolarizing(0.06), QubitSet(0))] == Instruction[Instruction(Depolarizing(0.09), QubitSet(0)), Instruction(H(), QubitSet(0)), Instruction(Depolarizing(0.04), QubitSet(0)), Instruction(Depolarizing(0.04), QubitSet(0)), Instruction(CNot(), QubitSet(0, 1)), Instruction(TwoQubitDepolarizing(0.05), QubitSet(0, 1)), Instruction(Unitary(ComplexF64[0.7071067811865475 + 0.0im 0.7071067811865475 + 0.0im; 0.7071067811865475 + 0.0im -0.7071067811865475 + 0.0im]), QubitSet(0)), Instruction(Depolarizing(0.1), QubitSet(0)), Instruction(Depolarizing(0.06), QubitSet(0))]
To reproduce
Seemingly cannot reproduce this locally.
Expected behavior
Test should pass as it does on my local OSX laptop, and on Ubuntu and Windows.
Screenshots or logs
Failing jobs log.
System information
A description of your system. Please provide:
Additional context
Have only ever observed this on Github CI which makes it very difficult to repro.
Describe the feature you'd like
It should be possible to use the Smithy representation of the Amazon Braket Schemas to automatically generate JSON versions of all the Braket Schemas, which JSON3.jl
and StructTypes.jl
can then digest to generate the corresponding Julia types.
Is this feature already present in the Python SDK?
N/A
How would this feature be used? Please describe.
This would make it possible to keep the Braket.jl
versions of the schemas up to date automatically.
Describe alternatives you've considered
Currently this must be done by hand.
Additional context
It's necessary to replicate some of the implicit information encoded by the type hierarchy in Python that is currently represented with traits in Julia, e.g. target count. Also, support for the Pydantic restrictions on fields would be helpful.
This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml
to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix
on this issue.
I'll open a PR within a few hours, please be patient!
Doc Link (both STABLE and DEV) lead to 404s
Describe the feature you'd like
QuEra's Aquila now supports local detuning with Braket Direct. The underlying structs are implemented in Braket.jl
but many of the correctness tests and validations are not.
Is this feature already present in the Python SDK?
Yes. https://github.com/amazon-braket/amazon-braket-sdk-python/blob/6c4282e7eafcff906c4cfc6804bf06209d82a4fc/src/braket/ahs/local_detuning.py#L23
How would this feature be used? Please describe.
Local detuning would be used with Braket Direct to access this advanced feature of Aquila.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Describe the feature you'd like
Amazon Braket Hybrid Jobs may encapsulate job results in a Python pickle file, especially if the results are large or contain images. Currently Julia isn't able to natively read pickle files (e.g. without shelling out to Python or using PythonCall.jl). Ideally we'd be able to un-pickle these files without any dependency on Python.
Is this feature already present in the Python SDK?
Yes, there is support for pickled results files.
How would this feature be used? Please describe.
Users would be able to extract their results without having to use or install Python.
Describe alternatives you've considered
You can currently use pickle either via the shell (e.g. running a cmd
) or PythonCall, but this isn't ideal behavior.
Additional context
There are some nascent pure Julia packages for un-pickling (e.g. Pandas.jl and Pickle.jl). Any implementation of this feature should explain why a particular package was chosen.
What did you find confusing? Please describe.
Would be great to have more doctests and examples for various features.
Describe how documentation can be improved
Add doctests for:
Currently set dependency version bounds downgrade some popular packages, e.g. Compat.jl.
What did you find confusing? Please describe.
A clear and concise description of what you found confusing. Ex. I tried to [...] but I didn't understand how to [...]
I am looking for how to submit a hybrid job through Braket.jl without the need of Python, but I couldn't find any example in the "example" folder. In the "test" folder, there seems to contain some examples but I couldn't follow them.
Describe how documentation can be improved
A clear and concise description of where documentation was lacking and how it can be improved.
Add an example in the "example" folder, which explains the essential elements of hybrid job, such as
a) how to specify the algorithm script and entry point,
b) how to configure instances,
c) how to specify devices
d) how to set hyperparameters
e) how to set images if needed
The example could simply replicate one of the examples in the Braket example folder.
Additional context
Add any other context or screenshots about the documentation request here.
Describe the feature you'd like
Currently only numerical values are allowed for FreeParameter
. We should replicate the Python SDK support for FreeParameterExpression
, allowing gates like Rx( 2 * alpha /3)
, for example.
Is this feature already present in the Python SDK?
Yes. https://github.com/amazon-braket/amazon-braket-sdk-python/blob/main/src/braket/parametric/free_parameter_expression.py
How would this feature be used? Please describe.
This would allow more complex expressions for parametrized gates.
Describe alternatives you've considered
Currently users have to create new parameters to capture cases like 2 * alpha
.
Additional context
An appropriate Julia package should be chosen for the symbolic expressions. SymbolicExpressions.jl
is one example.
Describe the feature you'd like
Support in Julia SDK for OpenPulse and pulse control of QPUs.
Is this feature already present in the Python SDK?
Yes.
How would this feature be used? Please describe.
Would allow users to natively use pulse from the Julia SDK.
Describe alternatives you've considered
Could provide thin support through PyBraket.jl.
Additional context
See the dev guide for more information about Pulse.
Describe the feature you'd like
The current Braket IR uses Dec128
from DecFP
to represent the Decimal type but this relies on an external Intel library. It would be nice if Decimals.jl
support could be added as a Julia-native option for the Decimal type.
How would this feature be used? Please describe.
There are plans for the Bloqade.jl schema to use Decimals.jl
. If the Braket IR supported Decimals.jl
it would make future IR conversions much easier ๐
Credit to @Roger-luo and @weinbe58 for the idea
Describe the feature you'd like
Native Julia support for the Braket Local Jobs feature, which allows users to download the Docker image for their job and run the job on their hardware to test and debug before running it on AWS managed infra.
Is this feature already present in the Python SDK?
Yes.
How would this feature be used? Please describe.
A user would be able to download the Docker image from Amazon ECR and run and test their workflow on their hardware before/instead of running it on AWS managed infrastructure, and without having to use Python.
Describe alternatives you've considered
One could still go through PyBraket although again this requires installing the full Python stack.
Additional context
Check out the dev guide for more information on how Local Jobs work.
Describe the feature you'd like
Currently the only method to validate if a AHS program is compatible with a AHS device is to submit that program as a task.
Is this feature already present in the Python SDK?
Not that I am aware of.
How would this feature be used? Please describe.
Ideally some functionality to validate parts or a whole task
validate(device, register::AtomArrangment)
validate(device, hamiltonian::Hamiltonian)
validate(device, ahs_program::AnalogHamiltonianSimulation)
Describe alternatives you've considered
BloqadeSchema supports validation of the entire task but the objects are not the same so validation would require translating from Braket Schemas to Bloqade objects.
Describe the feature you'd like
Basic benchmarking of code for adding circuits, generating basis rotation instructions, comparing Sum
s, etc.
Is this feature already present in the Python SDK?
No.
How would this feature be used? Please describe.
Helps us diagnose regressions and tackle performance bottlenecks.
Describe alternatives you've considered
N/A.
Additional context
Some good initial benchmarks would be:
Sum
operatorsCircuit
to OpenQASMshots>0
run with many thousands of measurementsDescribe the feature you'd like
Currently we don't have a nice way to Base.show
our Circuit
s, which the Python SDK does have.
Is this feature already present in the Python SDK?
Yes.
How would this feature be used? Please describe.
Would be very helpful for notebooks and basic correctness checking.
Describe alternatives you've considered
Currently one can cheat by turning a Circuit
into a PyCircuit
and printing that. However this won't work if you don't want to install the full Python stack.
Describe the feature you'd like
Integrate Braket.jl and Yao.jl to allow Yao users to run circuits/AHS programs on Braket.
Is this feature already present in the Python SDK?
No.
How would this feature be used? Please describe.
Would allow Yao users to seamlessly run their existing quantum circuits on real QPUs. Would also enable Bloqade users to run AHS programs directly on QuEra's Aquila device.
cc: @Roger-luo @GiggleLiu
Describe the feature you'd like
Now that we support LocalSimulator
s, we can hook into ITensor's support for DMRG-based evolution methods to implement tensor network circuit simulation.
Is this feature already present in the Python SDK?
No.
How would this feature be used? Please describe.
It would make sense to implement this as a package extension, which could be loaded on newer Julia versions once ITensors.jl
is installed.
Describe alternatives you've considered
This could also be a standalone package.
Additional context
It would be useful to offer users some control over how the simulation is run (e.g. TDVP vs TEBD, maximum bond dimension). Offering a version that supports the GPU implementations of ITensors.jl would be a good stretch goal.
Describe the feature you'd like
Implementation of classical shadows or POVMs in Braket.jl.
Is this feature already present in the Python SDK?
No, although shadows can be used in the Python SDK via PennyLane.
How would this feature be used? Please describe.
These schemes allow estimation of observables (especially observables of many non-commuting Pauli words) more efficiently than naively measuring each term in the operator,.
Describe alternatives you've considered
The alternative would be not implementing these.
Additional context
TO DO: add some paper references.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.