{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "175ff1e8-9d71-4396-9936-37304fa5df1c",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"Tiempo máximo de ejecución para cargas de trabajo de Qiskit Runtime\"\n",
        "description: \"Describe cuánto tiempo puede ejecutarse un trabajo de Qiskit Runtime, independientemente del modo de ejecución utilizado.\"\n",
        "---\n",
        "\n",
        "<span id=\"maximum-execution-time-for-qiskit-runtime-workloads\" />\n",
        "\n",
        "# Tiempo máximo de ejecución para cargas de trabajo de Qiskit Runtime\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": [
        "Para garantizar la equidad, [el servicio](#max-QPU) impone un límite máximo de tiempo de ejecución para cada tarea de Qiskit Runtime. Si un trabajo supera este límite de tiempo, se cancela de forma forzada y se genera una excepción `RuntimeJobMaxTimeoutError` . También puedes [establecer un tiempo máximo de ejecución](#max-job) para tus trabajos, lo que te ayudará a controlar los costes.\n",
        "\n",
        "<Admonition>\n",
        "  La sesión o el lote se interrumpe inmediatamente al alcanzarse el límite de coste. Los trabajos que se estén ejecutando actualmente en esa sesión o lote se completarán, pero los trabajos pendientes se cancelarán.\n",
        "</Admonition>\n",
        "\n",
        "<span id=\"max-job\" />\n",
        "\n",
        "<span id=\"set-a-maximum-execution-time\" />\n",
        "\n",
        "## Establecer un tiempo máximo de ejecución\n",
        "\n",
        "El tiempo máximo de ejecución de un trabajo es el menor de estos valores:\n",
        "\n",
        "* El valor fijado para `max_execution_time`\n",
        "* El límite máximo establecido por el servicio (tres horas)\n",
        "\n",
        "El `max_execution_time` valor se basa en *el uso de la QPU*, no en el tiempo real.\n",
        "\n",
        "Establezca el tiempo máximo de ejecución (en segundos) en las opciones del trabajo, tal y como se muestra en el siguiente ejemplo.  Consulte las guías [de](/docs/guides/estimator-options) [opciones](/docs/guides/executor-options) del Estimador, [del Muestreador](/docs/guides/sampler-options) o del Ejecutor para obtener información sobre cómo configurar las opciones.\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",
        "También puedes averiguar cuánto consumo han generado los trabajos completados recuperando las métricas del trabajo de la siguiente manera:\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",
        "## Tiempo máximo de ejecución impuesto por el servicio\n",
        "\n",
        "El servicio aplica un límite máximo de tiempo de ejecución de tres horas para garantizar un uso equitativo de los dispositivos. Si también `max_execution_time` se especifica un para el trabajo, se utiliza el menor de los dos valores.\n",
        "\n",
        "Por ejemplo, si se especifica `max_execution_time=5000` (aproximadamente 83 minutos), el trabajo se cancela al cabo de aproximadamente 83 minutos, aunque el servicio permita que se ejecute durante tres horas.\n",
        "\n",
        "<span id=\"batch-max-time\" />\n",
        "\n",
        "<span id=\"batch-maximum-execution-time\" />\n",
        "\n",
        "## Tiempo máximo de ejecución por lote\n",
        "\n",
        "Cuando se inicia un lote, se le asigna un valor de tiempo máximo de vida (TTL máximo). Una vez alcanzado este TTL, el lote finaliza, los trabajos que ya se estén ejecutando continúan ejecutándose y los trabajos en cola que permanezcan en el lote pasan a un estado fallido.\n",
        "\n",
        "Los lotes también tienen un valor de tiempo de vida interactivo (TTL interactivo) entre trabajos que no se puede configurar. Si no cierra explícitamente un lote, éste se desactiva cuando expira el TTL interactivo y puede reactivarse en cualquier momento hasta que alcance su TTL máximo.\n",
        "\n",
        "Para obtener instrucciones sobre cómo trabajar con estos valores, consulte [Ejecutar trabajos en un lote](/docs/guides/run-jobs-batch).\n",
        "\n",
        "<span id=\"session-max-time\" />\n",
        "\n",
        "<span id=\"session-maximum-execution-time\" />\n",
        "\n",
        "## Tiempo máximo de ejecución de la sesión\n",
        "\n",
        "Cuando se inicia una sesión, se le asigna un valor TTL máximo que determina cuánto tiempo puede durar una sesión. Una vez alcanzado este TTL, la sesión finaliza, los trabajos que ya estén en ejecución continúan ejecutándose y los trabajos en cola que permanezcan en la sesión pasan a un estado fallido.\n",
        "\n",
        "También hay un valor TTL interactivo que no se puede configurar.  Si no hay trabajos de sesión en cola dentro de esa ventana, la sesión se desactiva temporalmente.\n",
        "\n",
        "Para obtener instrucciones sobre cómo trabajar con estos valores, consulte [Ejecutar trabajos en una sesión](/docs/guides/run-jobs-session).\n",
        "\n",
        "<span id=\"other-limitations\" />\n",
        "\n",
        "## Otras limitaciones\n",
        "\n",
        "En el plan Open, puedes utilizar hasta 10 minutos de QPU por cada periodo de 28 días consecutivos. Puedes consultar el uso de una instancia en la página «[Instancias](/instances) ».\n",
        "\n",
        "<span id=\"next-steps\" />\n",
        "\n",
        "## Próximos pasos\n",
        "\n",
        "<Admonition type=\"tip\" title=\"Recomendaciones\">\n",
        "  * [Uso de la carga de trabajo](/docs/guides/estimate-job-run-time).\n",
        "  * Ten en cuenta estos consejos: [Reduce al mínimo la duración de la ejecución de los trabajos](/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
}