{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "175ff1e8-9d71-4396-9936-37304fa5df1c",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"IBM Quantum Compute Service のワークロードにおける最大実行時間\"\n",
        "description: \"IBM Quantum Compute Service のジョブが、どの実行モードを使用する場合でも、どのくらいの時間実行できるかを説明します。\"\n",
        "---\n",
        "\n",
        "<span id=\"maximum-execution-time-for-ibm-quantum-compute-service-workloads\" />\n",
        "\n",
        "# IBM Quantum Compute Service のワークロードにおける最大実行時間\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "653b0c37-be57-49af-b8fe-d60e3bbdc939",
      "metadata": {
        "tags": [
          "version-info"
        ]
      },
      "source": [
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "a0d6acc5-754c-4955-8cf0-5e3e12b9dd1f",
      "metadata": {},
      "source": [
        "公平性を確保するため、各ジョブの実行時間には、 [サービス側で設定された](#max-QPU)上限時間が設けられています。 ジョブがこの時間制限を超えた場合、そのジョブは強制的にキャンセルされ、例外 `RuntimeJobMaxTimeoutError` が発生します。 また、コスト管理の一環として、ジョブ[の実行上限時間を設定](#max-job)することもできます。\n",
        "\n",
        "<Admonition>\n",
        "  コスト上限に達すると、セッションまたはバッチは直ちに終了します。 そのセッションまたはバッチで現在実行中のジョブは最後まで実行されますが、保留中のジョブはすべてキャンセルされます。\n",
        "</Admonition>\n",
        "\n",
        "<span id=\"max-job\" />\n",
        "\n",
        "<span id=\"set-a-maximum-execution-time\" />\n",
        "\n",
        "## 最大実行時間を設定する\n",
        "\n",
        "ジョブの最大実行時間は、これらの値のうち小さい方である：\n",
        "\n",
        "* に設定された値。 `max_execution_time`\n",
        "* このサービスの最大タイムアウト値（3時間）\n",
        "\n",
        "この値 `max_execution_time` は、実時間ではなく、 *QPUの使用率* （量子処理の使用率のみ）に基づいています。\n",
        "\n",
        "次の例に示すように、ジョブオプションで最大実行時間（秒単位）を設定します。  オプションの設定方法については、『 [Estimator オプション](/docs/guides/estimator-options)ガイド』、『 [Sampler オプションガイド](/docs/guides/sampler-options) 』、または 『[Executor オプション](/docs/guides/executor-options)ガイド』を参照してください。\n",
        "\n",
        "```python\n",
        "from qiskit_ibm_runtime import QiskitRuntimeService\n",
        "from qiskit_ibm_runtime import EstimatorV2 as Estimator\n",
        "\n",
        "service = QiskitRuntimeService()\n",
        "backend = service.least_busy(operational=True, simulator=False)\n",
        "\n",
        "estimator = Estimator(mode=backend)\n",
        "\n",
        "estimator.options.max_execution_time = 2500\n",
        "```\n",
        "\n",
        "また、次のようにジョブのメトリクスを取得することで、完了したジョブがどれだけのリソースを消費したかを確認することもできます：\n",
        "\n",
        "```python\n",
        "# Find QPU usage of a specific job\n",
        "print(f\"QPU usage of job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds\")\n",
        "```\n",
        "\n",
        "<span id=\"max-QPU\" />\n",
        "\n",
        "<span id=\"service-enforced-maximum-execution-time\" />\n",
        "\n",
        "## サービスによって強制される最大実行時間\n",
        "\n",
        "本サービスでは、デバイスの公平な利用を確保するため、実行時間の最大制限を3時間に設定しています。 そのジョブに対して a も指定 `max_execution_time` されている場合は、2つの値のうち小さい方が使用されます。\n",
        "\n",
        "たとえば、（ `max_execution_time=5000` 約83分）と指定した場合、サービスでは3時間の実行が許可されているとしても、約83分後にジョブはキャンセルされます。\n",
        "\n",
        "<span id=\"batch-max-time\" />\n",
        "\n",
        "<span id=\"batch-maximum-execution-time\" />\n",
        "\n",
        "## バッチ最大実行時間\n",
        "\n",
        "バッチが開始されると、そのバッチには最大生存時間（最大TTL）値が割り当てられる。 このTTLに達すると、バッチは終了し、すでに実行中のジョブは実行を継続し、バッチに残っているキューに入れられたジョブは失敗状態になる。\n",
        "\n",
        "バッチはまた、設定できないジョブ間のインタラクティブTTL（interactive time to live）値を持つ。 バッチを明示的に閉じない場合、そのバッチは対話的TTLの期限が切れると非アクティブになり、最大TTLに達するまでいつでも再アクティブにできる。\n",
        "\n",
        "これらの値を操作する方法については、 [「バッチでのジョブの実行」](/docs/guides/run-jobs-batch) を参照してください。\n",
        "\n",
        "<span id=\"session-max-time\" />\n",
        "\n",
        "<span id=\"session-maximum-execution-time\" />\n",
        "\n",
        "## セッション最大実行時間\n",
        "\n",
        "セッションが開始されると、セッションが実行できる時間を決定する最大TTL値が割り当てられる。 このTTLに達すると、セッションは終了し、すでに実行中のジョブは実行を継続し、セッションに残っているキューに入れられたジョブは失敗状態になる。\n",
        "\n",
        "また、設定できないインタラクティブなTTL値もある。  そのウィンドウ内にセッション・ジョブがキューに入っていない場合、セッションは一時的に停止される。\n",
        "\n",
        "これらの値を操作する方法については、 [「セッションでジョブを実行する」](/docs/guides/run-jobs-session) を参照してください。\n",
        "\n",
        "<span id=\"other-limitations\" />\n",
        "\n",
        "## その他の制限\n",
        "\n",
        "「Open Plan」プランでは、28日間のローリング期間ごとに、1つのQPUにつき最大10分間利用できます。 インスタンスの使用状況は、 「[インスタンス](/instances) 」ページで確認できます。\n",
        "\n",
        "<span id=\"next-steps\" />\n",
        "\n",
        "## 次のステップ\n",
        "\n",
        "<Admonition type=\"tip\" title=\"推奨事項\">\n",
        "  * [ワークロードの使用状況](/docs/guides/estimate-job-run-time)。\n",
        "  * 以下のヒントをご確認ください： [ジョブの実行時間を最小限に抑える](/docs/guides/minimize-time)。\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
}