|
11 | 11 | { |
12 | 12 | "cell_type": "code", |
13 | 13 | "execution_count": 1, |
14 | | - "id": "ece364ef-f49e-4a56-b32c-77aee1f1912f", |
| 14 | + "id": "de7f060e", |
15 | 15 | "metadata": {}, |
16 | 16 | "outputs": [ |
17 | 17 | { |
18 | 18 | "name": "stdout", |
19 | 19 | "output_type": "stream", |
20 | 20 | "text": [ |
21 | | - "\u001b[0;35mSuccessfully enabled qBraid Quantum Jobs in the \u001b[1;35mamazon_braket\u001b[0m\u001b[0;35m environment.\u001b[0m\n", |
22 | | - "\u001b[0;35mEvery \u001b[1;35mAWS\u001b[0m\u001b[0;35m job you run will now be submitted through the qBraid API, so no access keys/tokens are necessary. \u001b[0m\n", |
23 | | - "\n", |
24 | | - "\u001b[0;35mTo disable, run:\u001b[0m `qbraid jobs disable amazon_braket`\n" |
| 21 | + "Note: you may need to restart the kernel to use updated packages.\n" |
25 | 22 | ] |
26 | 23 | } |
27 | 24 | ], |
28 | 25 | "source": [ |
29 | | - "# enable qBraid Quantum Jobs\n", |
30 | | - "!qbraid jobs enable amazon_braket" |
| 26 | + "%pip install -q amazon-braket-sdk" |
31 | 27 | ] |
32 | 28 | }, |
33 | 29 | { |
34 | 30 | "cell_type": "code", |
35 | 31 | "execution_count": 2, |
| 32 | + "id": "e668cc2b-2107-4f2a-bc65-1aa6da9b72cf", |
| 33 | + "metadata": {}, |
| 34 | + "outputs": [], |
| 35 | + "source": [ |
| 36 | + "# !qbraid configure magic" |
| 37 | + ] |
| 38 | + }, |
| 39 | + { |
| 40 | + "cell_type": "code", |
| 41 | + "execution_count": 3, |
| 42 | + "id": "829a72b8", |
| 43 | + "metadata": {}, |
| 44 | + "outputs": [], |
| 45 | + "source": [ |
| 46 | + "%load_ext qbraid_magic" |
| 47 | + ] |
| 48 | + }, |
| 49 | + { |
| 50 | + "cell_type": "code", |
| 51 | + "execution_count": 4, |
| 52 | + "id": "c962fcc4-6e09-43b9-af3f-13b8bd36bc3e", |
| 53 | + "metadata": {}, |
| 54 | + "outputs": [ |
| 55 | + { |
| 56 | + "name": "stdout", |
| 57 | + "output_type": "stream", |
| 58 | + "text": [ |
| 59 | + "qbraid-cli/0.9.0a0\n" |
| 60 | + ] |
| 61 | + } |
| 62 | + ], |
| 63 | + "source": [ |
| 64 | + "%qbraid --version" |
| 65 | + ] |
| 66 | + }, |
| 67 | + { |
| 68 | + "cell_type": "code", |
| 69 | + "execution_count": 5, |
| 70 | + "id": "1635d207-9650-4bb5-9f72-9a386021858c", |
| 71 | + "metadata": {}, |
| 72 | + "outputs": [ |
| 73 | + { |
| 74 | + "name": "stdout", |
| 75 | + "output_type": "stream", |
| 76 | + "text": [ |
| 77 | + "\n", |
| 78 | + "qBraid quantum jobs already \u001b[1;32menabled\u001b[0m for \u001b[35mbraket\u001b[0m.\n", |
| 79 | + "\n", |
| 80 | + "Check the state of all quantum jobs libraries in this environment with: \n", |
| 81 | + "\n", |
| 82 | + " $ qbraid jobs state\n", |
| 83 | + "\n" |
| 84 | + ] |
| 85 | + } |
| 86 | + ], |
| 87 | + "source": [ |
| 88 | + "%qbraid jobs enable braket -y" |
| 89 | + ] |
| 90 | + }, |
| 91 | + { |
| 92 | + "cell_type": "code", |
| 93 | + "execution_count": 6, |
36 | 94 | "id": "c2faa670-1fe9-47f2-9cfe-d488517914a3", |
37 | 95 | "metadata": {}, |
38 | 96 | "outputs": [ |
39 | 97 | { |
40 | 98 | "name": "stdout", |
41 | 99 | "output_type": "stream", |
42 | 100 | "text": [ |
43 | | - "# installed environments:\n", |
44 | | - "#\n", |
45 | | - "qsharp /opt/.qbraid/environments/qsharp_b54crn\n", |
46 | | - "default \u001b[0;31mjobs\u001b[0m /opt/.qbraid/environments/qbraid_000000\n", |
47 | | - "qiskit \u001b[0;31mjobs\u001b[0m /home/jovyan/.qbraid/environments/qiskit_9y9siy\n", |
48 | | - "amazon_braket \u001b[0;32mjobs\u001b[0m /home/jovyan/.qbraid/environments/aws_braket_kwx6dl\n", |
49 | | - "intel /opt/.qbraid/environments/intel_zr7hfq\n", |
50 | | - "qbraid_sdk \u001b[0;31mjobs\u001b[0m /home/jovyan/.qbraid/environments/qbraid_sdk_9j9sjy\n", |
| 101 | + "Executable: \u001b[35m/opt/.qbraid/environments/qbraid_000000/pyenv/bin/\u001b[0m\u001b[95mpython\u001b[0m\n", |
| 102 | + "\n", |
| 103 | + "\u001b[1mLibrary State\u001b[0m\n", |
| 104 | + "braket \u001b[32menabled\u001b[0m\n", |
51 | 105 | "\n" |
52 | 106 | ] |
53 | 107 | } |
54 | 108 | ], |
55 | 109 | "source": [ |
56 | | - "# list installed environments, check jobs keyword is green for Amazon Braket\n", |
57 | | - "!qbraid envs list" |
| 110 | + "%qbraid jobs state" |
58 | 111 | ] |
59 | 112 | }, |
60 | 113 | { |
61 | 114 | "cell_type": "code", |
62 | | - "execution_count": 3, |
| 115 | + "execution_count": 7, |
63 | 116 | "id": "f17a39b3-74b6-4798-9d8c-164d884e1251", |
64 | 117 | "metadata": {}, |
65 | 118 | "outputs": [ |
66 | 119 | { |
67 | 120 | "name": "stdout", |
68 | 121 | "output_type": "stream", |
69 | 122 | "text": [ |
70 | | - "\u001b[0;35mYou have \u001b[0m1000.00\u001b[0;35m remaining qBraid credits.\u001b[0m\n" |
| 123 | + "\n", |
| 124 | + "qBraid credits remaining: 1912.9763\n", |
| 125 | + "\n", |
| 126 | + "For more information, visit: \u001b[4;94mhttps://docs.qbraid.com/home/pricing#credits\u001b[0m\n" |
71 | 127 | ] |
72 | 128 | } |
73 | 129 | ], |
74 | 130 | "source": [ |
75 | | - "# check qBraid credits\n", |
76 | | - "!qbraid jobs get-credits" |
| 131 | + "%qbraid account credits" |
77 | 132 | ] |
78 | 133 | }, |
79 | 134 | { |
80 | 135 | "cell_type": "code", |
81 | | - "execution_count": 1, |
| 136 | + "execution_count": 8, |
82 | 137 | "id": "e7fb9ec2-0500-4fd7-b9a5-952805764efc", |
83 | 138 | "metadata": {}, |
84 | 139 | "outputs": [ |
85 | 140 | { |
86 | 141 | "name": "stdout", |
87 | 142 | "output_type": "stream", |
88 | 143 | "text": [ |
89 | | - "T : |0|1|\n", |
90 | | - " \n", |
91 | | - "q0 : -H-C-\n", |
92 | | - " | \n", |
93 | | - "q1 : ---X-\n", |
94 | | - "\n", |
95 | | - "T : |0|1|\n" |
| 144 | + "T : │ 0 │ 1 │\n", |
| 145 | + " ┌───┐ \n", |
| 146 | + "q0 : ─┤ H ├───●───\n", |
| 147 | + " └───┘ │ \n", |
| 148 | + " ┌─┴─┐ \n", |
| 149 | + "q1 : ───────┤ X ├─\n", |
| 150 | + " └───┘ \n", |
| 151 | + "T : │ 0 │ 1 │\n" |
96 | 152 | ] |
97 | 153 | } |
98 | 154 | ], |
99 | 155 | "source": [ |
100 | 156 | "import boto3\n", |
101 | | - "from braket.aws import AwsDevice, AwsQuantumTask\n", |
| 157 | + "from braket.aws import AwsDevice\n", |
102 | 158 | "from braket.circuits import Circuit\n", |
103 | 159 | "\n", |
104 | 160 | "# create the Amazon Braket circuit\n", |
|
109 | 165 | }, |
110 | 166 | { |
111 | 167 | "cell_type": "code", |
112 | | - "execution_count": 2, |
| 168 | + "execution_count": 9, |
113 | 169 | "id": "9319ff25-f872-4cf4-8943-8453aaaa3ada", |
114 | 170 | "metadata": {}, |
115 | 171 | "outputs": [], |
|
123 | 179 | }, |
124 | 180 | { |
125 | 181 | "cell_type": "code", |
126 | | - "execution_count": 3, |
| 182 | + "execution_count": 10, |
127 | 183 | "id": "d839f8db-0928-464f-9b26-06d89741bd05", |
128 | 184 | "metadata": {}, |
129 | 185 | "outputs": [], |
130 | 186 | "source": [ |
131 | 187 | "# execute the circuit\n", |
132 | | - "task = device.run(bell, shots=10)" |
| 188 | + "task = device.run(bell, shots=100)" |
133 | 189 | ] |
134 | 190 | }, |
135 | 191 | { |
136 | 192 | "cell_type": "code", |
137 | | - "execution_count": 5, |
| 193 | + "execution_count": 11, |
138 | 194 | "id": "602ae9e2-675f-4a7d-8ad2-8dded3c19ca4", |
139 | 195 | "metadata": {}, |
140 | | - "outputs": [], |
141 | | - "source": [ |
142 | | - "# display the results\n", |
143 | | - "print(task.result().measurement_counts)" |
144 | | - ] |
145 | | - }, |
146 | | - { |
147 | | - "cell_type": "code", |
148 | | - "execution_count": 8, |
149 | | - "id": "fb323eeb-2f53-4fa1-b8e4-d915caf57981", |
150 | | - "metadata": {}, |
151 | | - "outputs": [ |
152 | | - { |
153 | | - "name": "stdout", |
154 | | - "output_type": "stream", |
155 | | - "text": [ |
156 | | - "Fri Apr 21 2023 15:57:10 GMT+0000 (Coordinated Universal Time) arn:aws:braket:::device/quantum-simulator/amazon/sv1 arn:aws:braket:us-east-1:592242689881:quantum-task/ca33820b-987b-42e1-bac5-8b382324fe12\n", |
157 | | - "\n" |
158 | | - ] |
159 | | - } |
160 | | - ], |
161 | | - "source": [ |
162 | | - "# list submitted jobs\n", |
163 | | - "!qbraid jobs list" |
164 | | - ] |
165 | | - }, |
166 | | - { |
167 | | - "cell_type": "code", |
168 | | - "execution_count": 9, |
169 | | - "id": "2b0a87d2-865b-4d52-a01b-ccc1cf01c707", |
170 | | - "metadata": {}, |
171 | 196 | "outputs": [ |
172 | 197 | { |
173 | 198 | "name": "stdout", |
174 | 199 | "output_type": "stream", |
175 | 200 | "text": [ |
176 | | - "\u001b[0;35mYou have \u001b[0m999.60\u001b[0;35m remaining qBraid credits.\u001b[0m\n" |
| 201 | + "Counter({'00': 56, '11': 44})\n" |
177 | 202 | ] |
178 | 203 | } |
179 | 204 | ], |
180 | 205 | "source": [ |
181 | | - "# check remaining qBraid credits\n", |
182 | | - "!qbraid jobs get-credits" |
| 206 | + "# display the results\n", |
| 207 | + "print(task.result().measurement_counts)" |
183 | 208 | ] |
184 | 209 | }, |
185 | 210 | { |
186 | 211 | "cell_type": "code", |
187 | | - "execution_count": 10, |
188 | | - "id": "36e52a6b-35dc-4ec4-8389-adda483fb92f", |
| 212 | + "execution_count": 12, |
| 213 | + "id": "fb323eeb-2f53-4fa1-b8e4-d915caf57981", |
189 | 214 | "metadata": {}, |
190 | 215 | "outputs": [], |
191 | 216 | "source": [ |
192 | | - "client = boto3.client(\"braket\")" |
| 217 | + "# %qbraid jobs list" |
193 | 218 | ] |
194 | 219 | }, |
195 | 220 | { |
196 | 221 | "cell_type": "code", |
197 | | - "execution_count": 11, |
198 | | - "id": "5bf07028-5ea1-4776-9c05-7a2f8872a134", |
199 | | - "metadata": {}, |
200 | | - "outputs": [ |
201 | | - { |
202 | | - "name": "stdout", |
203 | | - "output_type": "stream", |
204 | | - "text": [ |
205 | | - "createdAt: 2023-04-21 15:57:09.862000+00:00\n", |
206 | | - "endedAt: 2023-04-21 15:57:11.556000+00:00\n", |
207 | | - "costEstimate: 0.4000012 credits ~ $0.004000012\n" |
208 | | - ] |
209 | | - } |
210 | | - ], |
211 | | - "source": [ |
212 | | - "# retrieve job data from braket boto3\n", |
213 | | - "boto_data = client.search_quantum_tasks(\n", |
214 | | - " filters=[{\"name\": \"quantumTaskArn\", \"operator\": \"EQUAL\", \"values\": [task.id]}],\n", |
215 | | - ")\n", |
216 | | - "\n", |
217 | | - "job_data = boto_data[\"quantumTasks\"][0]\n", |
218 | | - "created = job_data[\"createdAt\"]\n", |
219 | | - "ended = job_data[\"endedAt\"]\n", |
220 | | - "cost = float(job_data[\"tags\"][\"costEstimate\"])\n", |
221 | | - "\n", |
222 | | - "print(f\"createdAt: {created}\")\n", |
223 | | - "print(f\"endedAt: {ended}\")\n", |
224 | | - "print(f\"costEstimate: {cost} credits ~ ${cost/100}\")" |
225 | | - ] |
226 | | - }, |
227 | | - { |
228 | | - "cell_type": "code", |
229 | | - "execution_count": 12, |
230 | | - "id": "6470f22f-9a07-4c64-b02b-b268d54b80b6", |
| 222 | + "execution_count": 13, |
| 223 | + "id": "2b0a87d2-865b-4d52-a01b-ccc1cf01c707", |
231 | 224 | "metadata": {}, |
232 | 225 | "outputs": [ |
233 | 226 | { |
234 | 227 | "name": "stdout", |
235 | 228 | "output_type": "stream", |
236 | 229 | "text": [ |
237 | | - "\u001b[0;35mDisable successful. You are now submitting quantum jobs with your own AWS credentials.\u001b[0m\n", |
238 | 230 | "\n", |
239 | | - "\u001b[0;35mTo re-enable, run:\u001b[0m `qbraid jobs enable amazon_braket`\n" |
| 231 | + "qBraid credits remaining: 1909.2263\n", |
| 232 | + "\n", |
| 233 | + "For more information, visit: \u001b[4;94mhttps://docs.qbraid.com/home/pricing#credits\u001b[0m\n" |
240 | 234 | ] |
241 | 235 | } |
242 | 236 | ], |
243 | 237 | "source": [ |
244 | | - "# disable qBraid Quantum Jobs\n", |
245 | | - "!qbraid jobs disable amazon_braket" |
| 238 | + "# check remaining qBraid credits\n", |
| 239 | + "%qbraid account credits" |
246 | 240 | ] |
247 | 241 | } |
248 | 242 | ], |
249 | 243 | "metadata": { |
250 | 244 | "kernelspec": { |
251 | | - "display_name": "Python 3 [Braket]", |
| 245 | + "display_name": "Python 3 [Default]", |
252 | 246 | "language": "python", |
253 | | - "name": "python3_aws_braket_kwx6dl" |
| 247 | + "name": "python3" |
254 | 248 | }, |
255 | 249 | "language_info": { |
256 | 250 | "codemirror_mode": { |
|
262 | 256 | "name": "python", |
263 | 257 | "nbconvert_exporter": "python", |
264 | 258 | "pygments_lexer": "ipython3", |
265 | | - "version": "3.9.10" |
| 259 | + "version": "3.11.9" |
266 | 260 | } |
267 | 261 | }, |
268 | 262 | "nbformat": 4, |
|
0 commit comments