Azure Quantum Jobs ügyfélkódtár JavaScripthez – 1.0.0-beta.1-es verzió
Ez a csomag egy izomorf SDK-t tartalmaz a QuantumJobClienthez.
Az Azure Quantum egy Microsoft Azure-szolgáltatás, amellyel kvantum-számítástechnikai programokat futtathat, vagy optimalizálási problémákat oldhat meg a felhőben. Az Azure Quantum-eszközök és SDK-k használatával kvantumprogramokat hozhat létre, és futtathatja őket különböző kvantumszimulátorokon és gépeken. Az ügyfélkódtárat a @azure/quantum-jobs
következőre használhatja:
Kvantumfeladatok létrehozása, enumerálása és megszakítása
Szolgáltató állapotának és kvótáinak számbavétele
Forráskód | API-referenciadokumentáció | Termékdokumentáció | Minták
Első lépések
Ez a szakasz mindent tartalmaz, amire a fejlesztőnek szüksége van az első ügyfélkapcsolat gyors telepítéséhez és létrehozásához.
A csomag telepítése
Telepítse a Javascripthez készült Azure Quantum Jobs ügyfélkódtárat a következővel npm
:
npm install @azure/quantum-jobs
Előfeltételek
- Node.js 8.x.x vagy újabb verzió
- Azure-előfizetés
- Azure Quantum Workspace
Az ügyfél hitelesítése
A szolgáltatással való hitelesítéshez használhatja a defaultAzureCredential parancsot a @azure/identity
tárból. Ez különböző hitelesítési mechanizmusokat próbál ki a környezet alapján (pl. Környezeti változók, ManagedIdentity, CachedTokens), és végül visszaáll az InteractiveBrowserCredentialra.
Az ügyfél azt is lehetővé teszi, hogy a felhasználó felülbírálja a fenti viselkedést a TokenCredential saját implementációinak átadásával.
TokenCredential
az Azure SDK-k által használt alapértelmezett hitelesítési mechanizmus.
Fő fogalmak
QuantumJobClient
a feladatok hitelesítéséhez, létrehozásához, számbavételéhez és megszakításához használandó gyökérosztály.
JobDetails
a feladat összes tulajdonságát tartalmazza.
ProviderStatus
egy szolgáltató állapotadatait tartalmazza.
QuantumJobQuota
kvótatulajdonságokat tartalmaz.
Példák
Az ügyfél létrehozása
Hozzon létre egy QuantumJobClient-példányt az alábbi paraméterek átadásával:
- Előfizetés azonosítója – úgy néz ki, mint XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX, és megtalálható az Azure-beli előfizetések listájában
- Erőforráscsoport neve – egy azure-megoldáshoz kapcsolódó erőforrásokat tartalmazó tároló
- Munkaterület neve – kvantum- vagy optimalizálási alkalmazások futtatásához társított eszközök gyűjteménye
- Hely – válassza ki a legjobb adatközpontot földrajzi régió szerint
- Tároló neve – a blobtároló
- Hitelesítő adatok – hitelesítéshez használatos
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"
}
);
Tároló SAS URI-nak lekérése
Hozzon létre egy tárolót az adatok tárolásához.
// 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();
Bemeneti adatok feltöltése
Az SAS URI használatával töltse fel a json bemeneti adatokat a blobügyfélre. Ez tartalmazza a kvantumalapú optimalizálásokkal használandó paramétereket
// 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));
A feladat létrehozása
Most, hogy feltöltötte a problémadefiníciót az Azure Storage-ba, definiálhat jobs.create
egy Azure Quantum-feladatot.
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);
Feladat lekérése
GetJob
egy adott feladatot az azonosítója alapján kér le.
// Get the job that we've just created based on its jobId
const myJob = await quantumJobClient.jobs.get(jobId);
Feladatok lekérése
A munkaterület összes feladatának számbavételéhez használja a metódust 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();
}
Következő lépések
- Az Azure Quantumról további információt a Termék dokumentációjában talál.
Közreműködés
A kódtár létrehozásával, tesztelésével és közreműködésével kapcsolatos részletekért tekintse meg a CONTRIBUTING.md.
A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. A részletekért látogasson el a cla.microsoft.com.
A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért lásd a viselkedési szabályzattal kapcsolatos gyakori kérdéseket , vagy vegye fel a kapcsolatot opencode@microsoft.com az esetleges további kérdésekkel vagy megjegyzésekkel.
Hibaelhárítás
Minden Quantum Jobs-szolgáltatásművelet egy RequestFailedException hibát jelez a hasznos ErrorCode-okkal. Számos ilyen hiba helyreállítható.
Azure SDK for JavaScript