{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "7acdb263-fde4-4ff3-a13d-c499a2ba77e4",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"Especificar opciones del ejecutor\"\n",
        "description: \"Especifica las opciones al compilar con la primitiva Executor.\"\n",
        "---\n",
        "\n",
        "<span id=\"specify-executor-options\" />\n",
        "\n",
        "# Especificar opciones del ejecutor\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "73e3d6f4",
      "metadata": {
        "tags": [
          "version-info"
        ]
      },
      "source": [
        "{/*\n",
        "  DO NOT EDIT THIS CELL!!!\n",
        "  This cell's content is generated automatically by a script. Anything you add\n",
        "  here will be removed next time the notebook is run. To add new content, create\n",
        "  a new cell before or after this one.\n",
        "  */}\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"Versiones del paquete\">\n",
        "    El código de esta página se ha desarrollado teniendo en cuenta los siguientes requisitos.\n",
        "    Recomendamos utilizar estas versiones o posteriores.\n",
        "\n",
        "    ```\n",
        "    qiskit-ibm-runtime~=0.46.1\n",
        "    ```\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "513837ac-8853-4f45-8d8f-1a8297d5ab68",
      "metadata": {},
      "source": [
        "Puedes utilizar las opciones para personalizar la primitiva «Executor». A diferencia de Sampler y Estimator, Executor tiene muy pocas opciones, ya que la mayor parte de los objetivos de diseño están codificados en el samplex.\n",
        "\n",
        "<Admonition type=\"note\" title=\"Notas\">\n",
        "  * Puedes consultar las opciones disponibles y actualizar los valores de las opciones durante o después de la inicialización de las primitivas.\n",
        "  * Utiliza el `update()` método para aplicar los cambios al `options` atributo.\n",
        "  * El `options` atributo es de `dataclass` tipo « Python ».  Puedes utilizar el método integrado `asdict` para convertirlo en un diccionario.\n",
        "  * Executor solo puede procesar información codificada en samplexes. Consulta las [guías](https://qiskit.github.io/samplomatic/guides/index) de Samplomatic para conocer las restricciones.\n",
        "</Admonition>\n",
        "\n",
        "<span id=\"pass-options\" />\n",
        "\n",
        "<span id=\"set-executor-options\" />\n",
        "\n",
        "## Configurar las opciones del ejecutor\n",
        "\n",
        "Si se especifica una opción tanto durante como después de la inicialización de la primitiva, se utiliza el valor establecido tras la inicialización de la primitiva.\n",
        "\n",
        "<span id=\"primitive-initialization\" />\n",
        "\n",
        "### Inicialización primitiva\n",
        "\n",
        "Al inicializar Executor, puedes pasar una instancia de la clase de opciones o un diccionario, y el sistema creará una copia de esas opciones. Por lo tanto, modificar el diccionario original o la instancia de opciones no afecta a las opciones asociadas a la primitiva.\n",
        "\n",
        "<span id=\"options-class\" />\n",
        "\n",
        "#### Clase de opciones\n",
        "\n",
        "Al crear una instancia de la `Executor` clase, puedes pasarle una instancia de la clase de opciones. Esas opciones se aplican cuando utilizas `run()` para realizar el cálculo.  Especifica las opciones con este formato: `options.option.sub-option.sub-sub-option = choice`.  Por ejemplo: `options.environment.log_level = INFO`.\n",
        "\n",
        "Ejemplo:\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "948f4e75-3079-4c18-ba38-ce536b3f99b5",
      "metadata": {},
      "outputs": [],
      "source": [
        "from qiskit_ibm_runtime import QiskitRuntimeService, Executor\n",
        "from qiskit_ibm_runtime.options import ExecutorOptions\n",
        "\n",
        "service = QiskitRuntimeService()\n",
        "backend = service.least_busy(operational=True, simulator=False)\n",
        "\n",
        "options = ExecutorOptions(\n",
        "    environment={\"log_level\": \"INFO\"},\n",
        "    execution={\"init_qubits\": True},\n",
        ")\n",
        "\n",
        "# or use the following instead:\n",
        "\n",
        "options = ExecutorOptions()\n",
        "options.environment.log_level = \"INFO\"\n",
        "options.execution.init_qubits = True\n",
        "\n",
        "executor = Executor(mode=backend, options=options)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "ba2f5146-2781-49da-9fa2-8a22647225d0",
      "metadata": {},
      "source": [
        "<span id=\"dictionary\" />\n",
        "\n",
        "#### Diccionario\n",
        "\n",
        "Al inicializar Executor, puedes especificar las opciones en forma de diccionario.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "cf4359c2-c97a-475c-998d-518dc05a445e",
      "metadata": {},
      "outputs": [],
      "source": [
        "from qiskit_ibm_runtime import QiskitRuntimeService, Executor\n",
        "\n",
        "service = QiskitRuntimeService()\n",
        "backend = service.least_busy(operational=True, simulator=False)\n",
        "\n",
        "# Setting options during primitive initialization\n",
        "executor = Executor(\n",
        "    backend,\n",
        "    options={\n",
        "        \"environment\": {\"log_level\": \"INFO\"},\n",
        "        \"execution\": {\"init_qubits\": True},\n",
        "    },\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "b981eda7-bd9b-4d1e-959a-12cfc35fc2a1",
      "metadata": {},
      "source": [
        "<span id=\"options-table\" />\n",
        "\n",
        "<span id=\"available-options\" />\n",
        "\n",
        "## Opciones disponibles\n",
        "\n",
        "La siguiente tabla recoge las opciones de la última versión de `qiskit-ibm-runtime`. Para ver versiones anteriores de las opciones, visita la [`qiskit-ibm-runtime` referencia de la API](/docs/api/qiskit-ibm-runtime) y selecciona una versión anterior.\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"`environment`\">\n",
        "    [`environment` Documentación de la API](/docs/api/qiskit-ibm-runtime/options-sampler-options#environment)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`environment.job_tags`\">\n",
        "        Lista de etiquetas.\n",
        "\n",
        "        **Opciones** : Ninguna\n",
        "\n",
        "        **Valor predeterminado** : Ninguno\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`environment.log_level`\">\n",
        "        **Opciones** : DEBUG, INFO, WARNING, ERROR, CRITICAL\n",
        "\n",
        "        **Por defecto** : ADVERTENCIA\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`environment.private`\">\n",
        "        **Opciones** : `True`, `False`\n",
        "\n",
        "        **Por defecto** : `False`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`environment.max_execution_time`\">\n",
        "        **Opciones** : Número entero de segundos comprendido entre \\[1 y 10 800]\n",
        "\n",
        "        **Valor predeterminado** : 10800 (3 horas)\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`execution`\">\n",
        "    [`execution` Documentación de la API](/docs/api/qiskit-ibm-runtime/options-sampler-options#execution)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`execution.init_qubits`\">\n",
        "        Si se deben restablecer los qubits al estado fundamental en cada disparo.\n",
        "\n",
        "        **Opciones** : `True`, `False`\n",
        "\n",
        "        **Por defecto** : `True`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`execution.rep_delay`\">\n",
        "        El intervalo de tiempo entre una medición y el circuito cuántico posterior.\n",
        "\n",
        "        **Opciones** : Valor dentro del rango proporcionado por `backend.rep_delay_range`\n",
        "\n",
        "        **Por defecto** : lo proporciona `backend.default_rep_delay`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`execution.meas_type`\">\n",
        "        **Opciones** : `classified`, `kerneled`, `avg_kerneled`\n",
        "\n",
        "        **Por defecto** : `classified`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`experimental`\">\n",
        "    Opciones experimentales, cuando estén disponibles.\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "9b86001b-718a-4d72-b3b5-4a67eabf0a45",
      "metadata": {},
      "source": [
        "<span id=\"next-steps\" />\n",
        "\n",
        "## Próximos pasos\n",
        "\n",
        "<Admonition type=\"tip\" title=\"Recomendaciones\">\n",
        "  * Consulte la documentación de la API de [ExecutionOptionsV2](/docs/api/qiskit-ibm-runtime/options-execution-options-v2).\n",
        "  * Consulte la documentación de la API de « [EnvironmentOptions](/docs/api/qiskit-ibm-runtime/options-environment-options) ».\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
}