Sdílet prostřednictvím


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:

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í npmpříkazu :

npm install @azure/quantum-jobs

Požadavky

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ů:

    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

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.

Imprese