Klientská knihovna Azure Quantum Jobs pro JavaScript – verze 1.0.0-beta.1
Tento balíček obsahuje izomorfní sadu SDK pro QuantumJobClient.
Azure Quantum je služba Microsoft Azure, kterou můžete použít ke spouštění kvantových výpočetních programů nebo k řešení problémů optimalizace v cloudu. Pomocí nástrojů Azure Quantum a sad SDK můžete vytvářet kvantové programy a spouštět je v různých kvantových simulátorech a počítačích. Klientskou knihovnu @azure/quantum-jobs
můžete použít k:
Vytvoření, výčet a zrušení kvantových úloh
Zobrazení výčtu stavu a kvót zprostředkovatele
Zdrojový kód | Referenční dokumentace k | rozhraní APIDokumentace k | produktuVzorky
Začínáme
Tato část obsahuje vše, co vývojář potřebuje k rychlé instalaci a vytvoření prvního připojení klienta.
Instalace balíčku
Nainstalujte klientskou knihovnu Azure Quantum Jobs pro JavaScript pomocí npm
příkazu :
npm install @azure/quantum-jobs
Požadavky
- Node.js verze 8.x.x nebo novější
- Předplatné Azure
- Pracovní prostor Azure Quantum
Ověření klienta
K ověření ve službě můžete použít DefaultAzureCredential z @azure/identity
knihovny. To vyzkouší různé mechanismy ověřování v závislosti na prostředí (např. Proměnné prostředí, Spravovaná identita, CachedTokens) a nakonec se vrátí na InteractiveBrowserCredential.
Klient také umožňuje uživateli přepsat výše uvedené chování předáním vlastních implementací TokenCredential.
TokenCredential
je výchozí mechanismus ověřování používaný sadami Azure SDK.
Klíčové koncepty
QuantumJobClient
je kořenová třída, která se má použít k ověřování a vytváření, výčtu a rušení úloh.
JobDetails
obsahuje všechny vlastnosti úlohy.
ProviderStatus
obsahuje informace o stavu poskytovatele.
QuantumJobQuota
obsahuje vlastnosti kvóty.
Příklady
Vytvoření klienta
Vytvořte instanci QuantumJobClient předáním těchto parametrů:
- ID předplatného – vypadá takto: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Najdete ho v seznamu předplatných v Azure.
- Název skupiny prostředků – kontejner, který obsahuje související prostředky pro řešení Azure.
- Název pracovního prostoru – kolekce prostředků přidružených ke spouštění kvantových nebo optimalizačních aplikací.
- Umístění – výběr nejlepšího datacentra podle zeměpisné oblasti
- Název kontejneru úložiště – vaše úložiště objektů blob
- Credential – slouží k ověření.
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"
}
);
Získání identifikátoru URI SAS kontejneru
Vytvořte kontejner úložiště pro umístění dat.
// 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();
Nahrání vstupních dat
Pomocí identifikátoru URI SAS nahrajte vstupní data JSON do klienta objektů blob. Obsahuje parametry, které se mají použít s optimalizacemi inspirovanými kvantovou mechanikou.
// 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));
Vytvoření úlohy
Teď, když jste nahráli definici problému do služby Azure Storage, můžete pomocí příkazu jobs.create
definovat úlohu 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);
Získat úlohu
GetJob
načte určitou úlohu podle svého ID.
// Get the job that we've just created based on its jobId
const myJob = await quantumJobClient.jobs.get(jobId);
Získat úlohy
K vytvoření výčtu všech úloh v pracovním prostoru použijte metodu jobs.list
.
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();
}
Další kroky
- Další informace o službě Azure Quantum najdete v naší produktové dokumentaci .
Přispívání
Podrobnosti o vytváření, testování a přispívání do této knihovny najdete v CONTRIBUTING.md .
Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete v cla.microsoft.com.
Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování nebo kontaktujte s opencode@microsoft.com případnými dalšími dotazy nebo připomínkami.
Poradce při potížích
Všechny operace služby Quantum Jobs při selhání vyvolají výjimku RequestFailedException s užitečnými kódy chyb. Mnoho z těchto chyb je možné obnovit.
Azure SDK for JavaScript