Modos de ejecución Preguntas frecuentes
El modo de prueba local admite la sintaxis de los distintos modos de ejecución, pero como no hay programación cuando se prueba localmente, los modos se ignoran.
El número de trabajos que se ejecutan en paralelo se basa en el grado de paralelismo configurado para el backend, que es de cinco para la mayoría de los backends actuales.
Consulte la sección Trabajos fallidos y cancelados en la página Modos de ejecución.
Sesiones
Si utiliza la clase
Sessionenqiskit-ibm-runtime:Session.close()significa que la sesión ya no acepta nuevos trabajos, pero los trabajos existentes se ejecutan hasta su finalización.Session.cancel()cancela todos los trabajos de sesión pendientes.
Si utiliza directamente la API REST:
PATCH /sessions/{id}conaccepting_jobs=Falsesignifica que la sesión ya no acepta nuevos trabajos, pero los trabajos existentes se ejecutan hasta su finalización.DELETE /sessions/{id}/closecancela todos los trabajos de sesión pendientes.
Núm. La calibración a demanda no está disponible.
Sí. Esto reduce los costes no deseados si un usuario olvida cerrar su sesión.
No se puede cambiar el valor TTL interactivo. Puede cambiar el valor TTL máximo de una sesión (consulte Especificar la duración de la sesión ), pero debe ser inferior al máximo definido por el sistema. Pida a su administrador que se ponga en contacto con el servicio de asistencia de IBM si necesita un TTL interactivo o un TTL máximo del sistema diferentes.
IBM Quantum Network los miembros ganan capacidad reservada en IBM Quantum® QPUs. El uso se deduce de esta capacidad y las instancias con menor capacidad tienen un tiempo de espera más largo.
Sí. Si envía varios trabajos simultáneamente en una sesión, estos trabajos se ejecutarán en paralelo.
Núm. Las sesiones se ejecutan en modo dedicado, lo que significa que el usuario tiene acceso total al backend. Las sesiones nunca se interrumpen por calibraciones o actualizaciones de software.
Sí. En el modo de sesión, el uso es el tiempo de reloj de pared que la QPU está comprometida con la sesión. Comienza cuando se inicia el primer trabajo de la sesión y finaliza cuando la sesión se inactiva, se cierra o cuando finaliza el último trabajo, lo que ocurra en último lugar. Así, el uso sigue acumulándose después de que finalice una sesión si la QPU sigue ejecutando un trabajo. Además, el tiempo transcurrido desde que finaliza un trabajo mientras la QPU espera otro trabajo de sesión (el TTL interactivo) cuenta como uso. Por este motivo, debe asegurarse de cerrar la sesión en cuanto termine de enviar trabajos a la misma.
Lote
El número de trabajos que se ejecutan en paralelo se basa en el grado de paralelismo configurado para el backend, que es cinco para la mayoría de los backends. Sin embargo, el número de trabajos concurrentes en un lote activo podría ser menor porque podría haber otros trabajos ya en ejecución cuando el lote se activa.
La principal diferencia es el tiempo y el coste:
Modo por lotes:
- El tiempo total de ejecución es menor porque el procesamiento clásico puede ejecutarse en paralelo.
- La ejecución de cada tarea conlleva una ligera sobrecarga, por lo que acabas pagando un poco más por las tareas por lotes que cuando todos los circuitos se ejecutan en una sola tarea.
- Debido a que el modo por lotes no le da acceso exclusivo a un backend, los trabajos dentro de un lote podrían ejecutarse con trabajos de otros usuarios o trabajos de calibración.
- Si algunos trabajos fallan, seguirás obteniendo resultados de los trabajos completados.
- Puede tomar medidas en medio de una carga de trabajo por lotes basándose en los resultados de los trabajos completados. Por ejemplo, puede cancelar el resto de los trabajos si los resultados iniciales parecen incorrectos.
Modo de trabajo:
- Es probable que el tiempo total de ejecución sea mayor porque no hay paralelismo.
- No tendrá que pagar los gastos generales adicionales por tarea asociados a las cargas de trabajo por lotes.
- Todos tus circuitos funcionarán juntos.
- Si este único trabajo falla, no se obtienen resultados parciales.
- Tu trabajo puede llegar al límite si contiene demasiados circuitos o si los circuitos son demasiado grandes.
En general, si cada uno de sus trabajos consume menos de un minuto de tiempo de QPU, considere la posibilidad de combinarlos en un trabajo más grande (esto se aplica a todos los modos de ejecución).
Aunque no hay límites en el número de trabajos que puede enviar en un lote, sí hay un tiempo máximo asociado a un lote. Es decir, cuando el tiempo del reloj de pared de un lote (que comienza cuando el primer trabajo por lotes empieza a ejecutarse) supera el tiempo máximo definido por el sistema, el lote no aceptará nuevos trabajos y se cancelarán los trabajos en cola que no se estén ejecutando. Además, hay límites en el uso que tus trabajos pueden consumir en función de tu plan. Para determinar el tiempo máximo asociado a un lote, utilice el método
batch.details()y busque el valormax_time.El grado de paralelismo configurado para un backend también se denomina "carriles de ejecución". Si hay uno o más carriles de ejecución disponibles, y sus trabajos por lotes son los siguientes en la cola para ser ejecutados, el planificador inicia suficientes trabajos para llenar los carriles. Del mismo modo, si su lote no tiene suficientes trabajos para llenar los carriles, el planificador inicia los trabajos de otros usuarios.
Ejemplo: El backend que elijas tiene cinco carriles de ejecución, y dos de ellos están actualmente ocupados por trabajos de otros usuarios. Tu lote de seis trabajos es el siguiente en ejecutarse.
Como hay tres carriles disponibles, el programador inicia tres de sus seis trabajos por lotes. Continúa iniciando trabajos en su lote a medida que los trabajos finalizan y los carriles de ejecución quedan disponibles. Si hay un carril disponible y no hay más trabajos en su lote, el programador inicia el siguiente trabajo de la cola.
Como las QPU son recursos limitados y compartidos, todos los trabajos tienen que esperar en la cola. Sin embargo, cuando el primer trabajo del lote comienza a ejecutarse, todos los demás trabajos de ese lote pasan esencialmente al principio de la cola y son priorizados por el planificador.
Sí. Sin embargo, hay una ligera sobrecarga asociada a esta autodetección, por lo que siempre debe cerrar el lote y la sesión.
Sí. Las cargas de trabajo por lotes pueden verse interrumpidas por calibraciones o actualizaciones de software.
Núm. En el modo por lotes, sólo cuenta como uso el tiempo empleado en el hardware cuántico.