次の方法で共有


JavaScript 用 Azure Quantum Jobs クライアント ライブラリ - バージョン 1.0.0-beta.1

このパッケージには、QuantumJobClient 用の同型 SDK が含まれています。

Azure Quantum は、量子コンピューティング プログラムを実行したり、クラウドでの最適化の問題を解決したりするために使用できる Microsoft Azure サービスです。 Azure Quantum のツールと SDK を使用して、量子プログラムを作成し、さまざまな量子シミュレーターとマシンに対して実行することができます。 クライアント ライブラリを使用すると、次の @azure/quantum-jobs ことができます。

作業の開始

このセクションには、開発者が最初のクライアント接続を 非常に迅速にインストールして作成するために必要なすべてのものが含まれています。

パッケージをインストールする

を使用して、Javascript 用の Azure Quantum Jobs クライアント ライブラリを npmインストールします。

npm install @azure/quantum-jobs

前提条件

クライアントを認証する

サービスで認証するには、ライブラリから DefaultAzureCredential@azure/identity 使用できます。 これにより、環境 (環境変数、ManagedIdentity、CachedTokens など) に基づいてさまざまな認証メカニズムが試行され、最後に InteractiveBrowserCredential にフォールバックします。

また、クライアントでは、 TokenCredential の独自の実装を渡すことによって、ユーザーが上記の動作をオーバーライドすることもできます。

TokenCredential は、Azure SDK で使用される既定の認証メカニズムです。

主要な概念

QuantumJobClient は、ジョブの認証、作成、列挙、取り消しに使用するルート クラスです。

JobDetails には、ジョブのすべてのプロパティが含まれます。

ProviderStatus には、プロバイダーの状態情報が含まれています。

QuantumJobQuota にはクォータ プロパティが含まれています。

クライアントを作成する

次のパラメーターを渡して QuantumJobClient のインスタンスを作成します。

    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"
      }
    );

コンテナー SAS URI を取得する

データを格納するストレージ コンテナーを作成します。

    // 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();

入力データのアップロード

SAS URI を使用して、JSON 入力データを BLOB クライアントにアップロードします。 これには、Quantum Inspired Optimizations で使用されるパラメーターが含まれています

    // 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));

ジョブを作成する

問題の定義を Azure Storage にアップロードしたので、 を使用 jobs.create して 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);

ジョブの取得

GetJob は、その ID で特定のジョブを取得します。

    // Get the job that we've just created based on its jobId
    const myJob = await quantumJobClient.jobs.get(jobId);

ジョブを取得する

ワークスペース内のすべてのジョブを列挙するには、 メソッドを使用します 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();
    }

次のステップ

共同作成

このライブラリのビルド、テスト、および投稿の詳細については、 CONTRIBUTING.md を参照してください。

このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、「 cla.microsoft.com」を参照してください。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。

トラブルシューティング

すべての Quantum Jobs サービス操作は、エラー発生時に RequestFailedException をスローし、役に立つ ErrorCodes を使用します。 これらのエラーの多くは回復可能です。

インプレッション数