@qiskit/qe v0.1.9
QISKit.js Quantum Experience
:atom_symbol: Quantum Information Software Kit library to use the Quamtum Experience.
Please visit the main repository of the project to know about the rest of the tools.
Install
:coffee: Install Node.js v8 and then:
npm i @qiskit/qeUse
:pencil: You can visit more advanced examples in the test folder.
'use strict';
const Qe = require('@qiskit/qe');
const qe = new Qe({});
console.log('Version');
console.log(qe.version);
qe.login('YOUR_PERSONAL_TOKEN_HERE')
.then(() => qe.backends())
.then(backs => console.log(backs));API
:eyes: Full specification.
Qe(opts) -> qe
The constructor accepts next options:
token(string) - Long term access token, see next point.
token
To force the long term access token, ie: to avoid the re-connection (login) in a worker.
token(string) - Token.
userId
To force user idendifier, ie: to avoid the re-connection (login) in a worker.
userId(string) - User identifier.
version
The actual version of the library.
version(string) - Version number.
async calibration(name) -> info
Get latest calibration stats for a backend.
name(string): Name of the backend to inspect. (default:ibmqx4)info(object): Including next fields:
async parameters(name) -> info
Get the latest parameters stats of the backend (more recent values that the ones returned by the backendCalibration method).
name(string): Name of the backend to inspect. (default:ibmqx4)info(object): Including next fields:lastUpdateDate(string): Date of the last read.fridgeParameters(string): Information about the cooler.qubits(object): Error in each qubit.
async queues(name) -> info
Get the status of a backend queue.
name(string): Name of the backend to inspect. (default:ibmqx4)info(object): Including next fields:state(boolean): If the queue is up or down.status(string): Actual status of the devices, ie: "busy", "calibration", etc.lengthQueue(number): Number of jobs in the queue.
async login(personalToken) -> info
Get a long term access token using the QE personal one, you can get it here. This method should be called before the rest ones documented from this point.
info(object): New token and its metadata:token(string) - New long term access token.ttl(number) - Time to live (in seconds).created(string) - When the account was created.userId(string).
async backend(name) -> info
Get the information of one the chips or simulator.
name(string): Name of the backend to inspect. (default:ibmqx4)info(object): An object with next fields:name(string) - Descriptive name of the device.status(string) - If it´s "on" or "off".serialNumber(string)description(string)id(string)topologyId(string)simulator(boolean): To mark the simulators.nQubits(number): Number of Qubits the device has.couplingMap([number]): To show how the Qubits are connected in this device.
async backends(onlySims) -> infos
Get the information of all available chips and simulators.
onlySims(boolean): To get only info of the simulators. (default: false)infos(object): A list of "info" objects (see last method).
async run(circuit, opts) -> info
Run a circuit in any of the avaliable backends. This method generates a new execution.
circuit(string): Circuit in OpenQASM.opts(object): With next fields:backend(string): Name of the backend to use. (default: simulator)shots(number): Number of times to run the circuit. (default: 1)name(string): Human friendly indetifier.seed(string): Noise entropy, only allowed if using the simulator.maxCredits(number): Max number of the credits to run this job. The task will be cancelled if it needs more.
info(object): Including next fields:id(string): Unique identifier for the job created to run this circuit.status(string): To know if the complete job has finished. Supported: "RUNNING", "ERROR_CREATING_JOB", "ERROR_RUNNING_JOB" or "COMPLETED".name(string): Passed (or generated) human friendly indetifier.
async runBatch(circuits, opts) -> infos
Run a batch of circuits in any of the avaliable backends. This method can generate multiple executions. Note: For convenience the descriptions not included are the same that for last method
circuits(object): Batch of circuits. Being "object":qasm(string): Circuit in OpenQASM. The unique mandatory field.nameshots: Only to overwrite this parameter defined in "opts" for this piece of code.seed: Same than "shots".
optsbackendshotsseedmaxCredits
infos(object): Including next fields:idstatus
async job(id) -> info
Get the info of a specific job.
id(string): Job identifier.info(object): Including next fields:id(string): Unique identifier for the job.backend(string): Passed name of the backend to use.shots(number): Passed number of times to run the circuit.creationDate(string): When the job has entered into the system.usedCredits(number): Number of consumed credits by the run.status(string): To know if the complete job has finished. Supported: "RUNNING", "ERROR_CREATING_JOB", "ERROR_RUNNING_JOB" or "COMPLETED".maxCredits(number): Max number passed of credits to use in this run before cancel it.circuits(object): Batch of circuits. Being "object":qasm(string): Passed circuit.name(string): Passed (or generated) human friendly indetifier.shots(number): If the parameter defined in "opts" was overwritten.seed(string): If the parameter defined in "opts" was overwritten.execution(object): Generated execution info, with these fields:id(string): Identifier of the execution of this program.status(string): Status of this execution of the program. Supported: "WORKING_IN_PROGRESS", "DONE", "ERROR", "NOT_APPROVED".result(object): Present only when the job has finished.date(string): When the job finished.data(object):time(number): How long it took, in seconds.count(object): For each shot (value/key pair) the keys represent the final state of the qubits, and the value their probability. ie: { "00000": 189, "00001": 10 }
async jobs(limit, skip) -> infos
Get all your jobs. Ordered by creation date.
limit(number): Limit the number of instances to return. (default: 50)offset(number): Skip the specified number of instances. Use it with "limit" to implement result pagination.infos(object): The info for the required jobs. The object structure is like the one returned by the methodjob.