Megosztás a következőn keresztül:


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:

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

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

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ó.

Megjelenések