Bibliothèque cliente de travaux Azure Quantum pour JavaScript - version 1.0.0-beta.1
Ce package contient un KIT de développement logiciel (SDK) isomorphe pour QuantumJobClient.
Azure Quantum est un service Microsoft Azure que vous pouvez utiliser pour exécuter des programmes d’informatique quantique ou résoudre des problèmes d’optimisation dans le cloud. À l’aide des outils et kits SDK Azure Quantum, vous pouvez créer des programmes quantiques et les exécuter sur différents simulateurs et ordinateurs quantiques. Vous pouvez utiliser la @azure/quantum-jobs
bibliothèque cliente pour :
Créer, énumérer et annuler des travaux quantiques
Énumérer les status et les quotas du fournisseur
Code source | Documentation de référence de l’API | Documentation du produit | Exemples
Prise en main
Cette section inclut tout ce dont un développeur a besoin pour installer et créer sa première connexion cliente très rapidement.
Installer le package
Installez la bibliothèque de client Travaux Azure Quantum pour Javascript avec npm
:
npm install @azure/quantum-jobs
Prérequis
- Node.js version 8.x.x ou ultérieure
- Abonnement Azure
- Espace de travail Azure Quantum
Authentifier le client
Pour vous authentifier auprès du service, vous pouvez utiliser DefaultAzureCredential à partir de la @azure/identity
bibliothèque. Cela va essayer différents mécanismes d’authentification en fonction de l’environnement (par exemple, Variables d’environnement, ManagedIdentity, CachedTokens) et enfin, il sera de secours vers InteractiveBrowserCredential.
Le client permet également à l’utilisateur de remplacer le comportement ci-dessus en passant ses propres implémentations de TokenCredential.
TokenCredential
est le mécanisme d’authentification par défaut utilisé par les sdk Azure.
Concepts clés
QuantumJobClient
est la classe racine à utiliser pour authentifier et créer, énumérer et annuler des travaux.
JobDetails
contient toutes les propriétés d’un travail.
ProviderStatus
contient status informations pour un fournisseur.
QuantumJobQuota
contient des propriétés de quota.
Exemples
Création du client
Créez un instance de QuantumJobClient en transmettant ces paramètres :
- ID d’abonnement : ressemble à XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX et se trouve dans votre liste d’abonnements sur Azure.
- Nom du groupe de ressources : conteneur qui contient les ressources associées pour une solution Azure
- Nom de l’espace de travail : collection de ressources associées à l’exécution d’applications quantiques ou d’optimisation
- Emplacement : choisissez le meilleur centre de données par région géographique
- Nom du conteneur de stockage : votre stockage d’objets blob
- Informations d’identification : utilisées pour l’authentification
const credential = new DefaultAzureCredential();
// Create a QuantumJobClient
const subscriptionId = "your_subscription_id";
const resourceGroupName = "your_resource_group_name";
const workspaceName = "your_quantum_workspace_name";
const storageContainerName = "mycontainer";
const location = "westus"; //"your_location";
const endpoint = "https://" + location + ".quantum.azure.com";
const quantumJobClient = new QuantumJobClient(
credential,
subscriptionId,
resourceGroupName,
workspaceName,
{
endpoint: endpoint,
credentialScopes: "https://quantum.microsoft.com/.default"
}
);
Obtenir l’URI SAS du conteneur
Créez un conteneur de stockage pour placer vos données.
// Get container Uri with SAS key
const containerUri = (
await quantumJobClient.storage.sasUri({
containerName: storageContainerName
})
).sasUri;
// Create container if not exists
const containerClient = new ContainerClient(containerUri);
await containerClient.createIfNotExists();
Charger des données d’entrée
À l’aide de l’URI SAS, chargez les données d’entrée json sur le client blob. Contient les paramètres à utiliser avec les optimisations inspirées quantiques
// Get input data blob Uri with SAS key
const blobName = "myjobinput.json";
const inputDataUri = (
await quantumJobClient.storage.sasUri({
containerName: storageContainerName,
blobName: blobName
})
).sasUri;
// Upload input data to blob
const blobClient = new BlockBlobClient(inputDataUri);
const problemFilename = "problem.json";
const fileContent = fs.readFileSync(problemFilename, "utf8");
await blobClient.upload(fileContent, Buffer.byteLength(fileContent));
Créer le travail
Maintenant que vous avez chargé votre définition de problème dans stockage Azure, vous pouvez utiliser jobs.create
pour définir un travail Azure Quantum.
const randomId = `${Math.floor(Math.random() * 10000 + 1)}`;
// Submit job
const jobId = `job-${randomId}`;
const jobName = `jobName-${randomId}`;
const inputDataFormat = "microsoft.qio.v2";
const outputDataFormat = "microsoft.qio-results.v2";
const providerId = "microsoft";
const target = "microsoft.paralleltempering-parameterfree.cpu";
const createJobDetails = {
containerUri: containerUri,
inputDataFormat: inputDataFormat,
providerId: providerId,
target: target,
id: jobId,
inputDataUri: inputDataUri,
name: jobName,
outputDataFormat: outputDataFormat
};
const createdJob = await quantumJobClient.jobs.create(jobId, createJobDetails);
Obtention de travail
GetJob
récupère un travail spécifique par son ID.
// Get the job that we've just created based on its jobId
const myJob = await quantumJobClient.jobs.get(jobId);
Obtenir les travaux
Pour énumérer tous les travaux de l’espace de travail, utilisez la jobs.list
méthode .
let jobListResult = await quantumJobClient.jobs.list();
let listOfJobs = await jobListResult.next();
while (!listOfJobs.done) {
let job = listOfJobs.value;
console.log(` ${job.name}`);
listOfJobs = await jobListResult.next();
}
Étapes suivantes
- Consultez notre documentation produit pour en savoir plus sur Azure Quantum.
Contribution
Consultez la CONTRIBUTING.md pour plus d’informations sur la création, le test et la contribution à cette bibliothèque.
Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez cla.microsoft.com.
Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.
Résolution des problèmes
Toutes les opérations de service de travaux quantiques lèvent une exception RequestFailedException en cas d’échec avec des ErrorCodes utiles. La plupart de ces erreurs peuvent être récupérées.
Azure SDK for JavaScript