{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "810fe365-8557-46b0-97e7-324b08a1c6e2",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"ジョブの監視またはキャンセル\"\n",
        "description: \"IBM Quantum Platform に送信されたジョブを監視またはキャンセルする方法\"\n",
        "---\n",
        "\n",
        "<span id=\"monitor-or-cancel-a-job\" />\n",
        "\n",
        "# ジョブの監視またはキャンセル\n",
        "\n",
        "[ワークロードページで](/workloads)ワークロードのリストを表示します。\n",
        "\n",
        "<span id=\"view-job-status\" />\n",
        "\n",
        "## ジョブの状況を表示する\n",
        "\n",
        "[Workloads テーブルに](/workloads)移動し、Status 列でジョブが完了したか失敗したかを確認します。\n",
        "\n",
        "<span id=\"why-a-job-stays-in-progress\" />\n",
        "\n",
        "### なぜ仕事のステータスが「進行中」のままになるのか\n",
        "\n",
        "通常なら数秒で完了するはずのジョブが、 **「処理中」** ステータス（Qiskit `RUNNING` では「」と呼ばれます）のまま、かなり長い間留まっていることに気づくかもしれません。 これは正常な現象であり、その時間すべてがジョブによる使用時間であることを意味するわけではありません。 これは、QPUへのジョブのスケジューリング方法に起因しています：\n",
        "\n",
        "* どのジョブも、QPU上で実行するには、まず標準的な前処理を行う必要があります。 この通常の処理が開始されるとすぐに、ジョブは 「**処理中** (`RUNNING`)」の状態に移行します。QPU上での実行が開始された時点ではありません。\n",
        "* この従来の処理のほとんどは並列で実行されるため、複数のジョブを同時に**進行**させることができます。\n",
        "* ただし、QPUでは一度に1つのジョブしか実行できません。 複数のジョブが通常の処理を完了し、実行可能な状態になった場合、それらのジョブはQPUの使用順番を待たなければなりません。 これは「 *QPU競合*」 として知られています。 競合が激しい場合、ジョブは、実際に必要なQPU時間である数秒よりも、著しく長い時間 **「処理中」の状態**が続くことがあります。\n",
        "* また、QPU上でキャリブレーションなどのシステムメンテナンスタスクが実行されている場合にも、競合が発生する可能性があります。 メンテナンスタスクが完了し、QPUが利用可能になるまで、ジョブは **「処理中」の**状態のままとなります。\n",
        "\n",
        "このため、ジョブが **「進行中」の状態**にある間に経過した実時間は、そのジョブの使用時間とは一致しません。 [推定](/docs/guides/estimate-job-run-time)使用時間と[最大実行](/docs/guides/max-execution-time)時間の両方は、ジョブの実行のためにQPUがロックされる時間のみに基づいており、したがって、前述のマルチスレッドによる従来の処理は含まれていません。 **「進行中」** の状態が長く続いても、報告される使用量や費用は増加しません。\n",
        "\n",
        "<span id=\"session-mode-is-different\" />\n",
        "\n",
        "#### セッションモードが異なります\n",
        "\n",
        "上記の動作は、 [ジョブモード](/docs/guides/execution-modes#job-mode)および[バッチモード](/docs/guides/execution-modes#batch-mode)に適用されます。 [セッションモード](/docs/guides/execution-modes#session-mode)では、セッションのアクティブウィンドウが開いている間、ユーザーはシステムへの排他的なアクセス権を持ち、他のジョブ（キャリブレーションジョブを含む）は実行できません。 したがって、QPUの競合が発生するのは、自身のセッション内のジョブ間でのみです。 また、セッションの使用時間は、セッションがアクティブな状態にある間の経過時間として測定されます。これは、ジョブが実際に実行されているかどうかに関わらず、セッションの期間中はQPUの容量が確保されるためです。 詳細については、「 [ワークロードの使用状況](/docs/guides/estimate-job-run-time#usage)」 を参照してください。\n",
        "\n",
        "<span id=\"view-remaining-usage\" />\n",
        "\n",
        "## 残りの使用量を確認する\n",
        "\n",
        "\\[インスタンス]テーブルに]\\([https://quantum.cloud.ibm.com/instances](/instances)) 移動し、残りの使用量を表示したいプランに関連付けられているタブを選択します。 使用時間の合計とプランの残り時間の合計が表示されます。\n",
        "\n",
        "<span id=\"view-metrics-on-number-of-jobs-and-workloads-submitted\" />\n",
        "\n",
        "## 提出されたジョブとワークロードの数に関するメトリクスを表示する\n",
        "\n",
        "[アナリティクスページに](/analytics)移動して、投入されたジョブの総数、バッチワークロードとセッションワークロードのカウントを確認します。 アナリティクスページを見ることができるのは、あなたが所有または管理しているアカウントのみです。\n",
        "\n",
        "<span id=\"monitor-a-job\" />\n",
        "\n",
        "## ジョブを監視する\n",
        "\n",
        "ジョブ・インスタンスを使用してジョブ・ステータスを確認するか、適切なコマンドを呼び出して結果を取得する：\n",
        "\n",
        "|                                  |                                                                                               |\n",
        "| -------------------------------- | --------------------------------------------------------------------------------------------- |\n",
        "| job.result()                     | ジョブ完了後、すぐにジョブ結果を確認できます。 ジョブの結果は、ジョブが完了した後に表示されます。 したがって、 job.result （）はジョブが完了するまでブロック呼び出しとなる。 |\n",
        "| job.job\\_id()                    | そのジョブを一意に識別する ID を返します。 ジョブ結果を後で検索するには、ジョブIDが必要である。 したがって、後で検索する可能性のあるジョブのIDを保存しておくことを推奨する。   |\n",
        "| job.status()                     | ジョブ状況を確認します。                                                                                  |\n",
        "| job = service.job ( \\<job\\_id> ) | 以前に提出したジョブを検索します。 この呼び出しにはジョブIDが必要である。                                                        |\n",
        "\n",
        "<span id=\"retrieve-later\" />\n",
        "\n",
        "<span id=\"retrieve-job-results-at-a-later-time\" />\n",
        "\n",
        "## 後でジョブの結果を取得する\n",
        "\n",
        "`service.job(\\<job\\_id>)` に電話し、以前に提出したジョブを検索する。 ジョブIDがない場合や、引退したQPU（量子プロセッシング・ユニット）のジョブを含む複数のジョブを一度に取得したい場合は、代わりにオプションのフィルタを使用して `service.jobs()` 。 [QiskitRuntimeService.jobsを](../api/qiskit-ibm-runtime/qiskit-runtime-service#jobs)参照。\n",
        "\n",
        "<Admonition type=\"note\" title=\"非推奨プロバイダ・パッケージ\">\n",
        "  `service.jobs()` 非推奨の `qiskit-ibm-provider` パッケージから実行されたジョブも返します。 古い（同じく非推奨の） `qiskit-ibmq-provider` パッケージによって提出されたジョブは、もはや利用できません。\n",
        "</Admonition>\n",
        "\n",
        "<span id=\"example\" />\n",
        "\n",
        "### 例\n",
        "\n",
        "この例では、 `my_backend` で実行された最新のランタイム・ジョブ10件を返します：\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "c67f78c5-a199-456a-a9e3-35c518b28f50",
      "metadata": {
        "tags": [
          "version-info"
        ]
      },
      "source": [
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "03946d0d-aeac-45d7-9e8e-6af38e40e758",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "ExecutionSpans([DoubleSliceSpan(<start='2025-09-09 16:31:16', stop='2025-09-09 16:31:16', size=24>)])\n"
          ]
        }
      ],
      "source": [
        "result = job.result()\n",
        "\n",
        "\n",
        "spans = job.result().metadata[\"execution\"][\"execution_spans\"]\n",
        "print(spans)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "id": "897d35cb-140a-4587-a687-97982a01d846",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "array([[0.2260416 , 0.8747859 , 0.44361995],\n",
              "       [0.94700856, 0.96826017, 0.98426562]])"
            ]
          },
          "execution_count": 3,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "params = np.random.uniform(size=(2, 3))\n",
        "params"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "id": "38176ecc-64fe-4dbb-a9fa-bd0ca2942920",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "array([[[ True,  True,  True,  True],\n",
              "        [ True,  True,  True,  True]],\n",
              "\n",
              "       [[ True,  True,  True,  True],\n",
              "        [ True,  True,  True,  True]],\n",
              "\n",
              "       [[ True,  True,  True,  True],\n",
              "        [ True,  True,  True,  True]]])"
            ]
          },
          "execution_count": 4,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "mask = spans[0].mask(0)\n",
        "mask"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "4415838a-04da-4a8e-8fed-4c062d186ec7",
      "metadata": {},
      "outputs": [],
      "source": [
        "from qiskit_ibm_runtime import QiskitRuntimeService\n",
        "\n",
        "# Initialize the account first.\n",
        "service = QiskitRuntimeService()\n",
        "# Use `limit` to retrieve a specific number of jobs. The default `limit` is 10.\n",
        "service.jobs(backend_name=my_backend)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "59195a9f-8df8-46f7-9ea0-c3a9b8eb3cac",
      "metadata": {},
      "source": [
        "<span id=\"cancel-a-job\" />\n",
        "\n",
        "## ジョブをキャンセルします\n",
        "\n",
        "IBM Quantum Platform ダッシュボードから、ワークロード ページまたは特定のワークロードの詳細ページでジョブをキャンセルできます。 ワークロード」ページで、ワークロードの行の最後にあるオーバーフローメニューをクリックし、「キャンセル」を選択します。 特定のワークロードの詳細ページにいる場合は、ページ上部の「Actions（アクション）」ドロップダウンを使用し、「Cancel（キャンセル）」を選択します。\n",
        "\n",
        "Qiskitでは、 `job.cancel()` 、ジョブをキャンセルする。\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "c2abeb3d-4e4a-4c90-be59-16ec0e1be783",
      "metadata": {},
      "source": [
        "<span id=\"next-steps\" />\n",
        "\n",
        "## 次のステップ\n",
        "\n",
        "<Admonition type=\"tip\" title=\"推奨事項\">\n",
        "  * [グローバーのアルゴリズム・](/docs/tutorials/grovers-algorithm) チュートリアルを試してみよう。\n",
        "  * [サンプラーの実行スパン](/docs/guides/sampler-input-output#execution-spans)について詳しく見る\n",
        "</Admonition>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "id": "a1b8767d",
      "source": "© IBM Corp., 2017-2026"
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 4
}