qpanda3_runtime.task.session.vqsession#

Concrete implementation of variational quantum computing session.

This module provides the main implementation of variational quantum algorithm sessions for real quantum computing backends.

Classes#

VQSessionVQSessionABC

Concrete implementation for variational quantum computing sessions.

See also

VQSessionABC

Abstract base class for variational quantum sessions.

FakeVQSession

Simulated session for testing.

Notes

  • This class should be instantiated through RuntimeService.vqsession() factory method.

  • Sessions must be used within context managers for proper resource cleanup.

Classes#

VQSession

Concrete implementation of variational quantum computing session.

Module Contents#

class qpanda3_runtime.task.session.vqsession.VQSession(runtime_service, session_id: str, chip_id: str, task_ids: list, channel: str = default_channel, info=Union[Dict, None])#

Bases: qpanda3_runtime.task.session.vqsession_abc.VQSessionABC

Concrete implementation of variational quantum computing session.

A client-side management object for variational quantum computing sessions that interfaces with QPanda3 quantum computing runtime service.

Parameters:
  • runtime_service (RuntimeService) – Local management object for QPanda3 Runtime Service, used for defining and submitting quantum computing tasks.

  • session_id (str) – Unique identifier for the variational computing session.

  • task_ids (list) – List of IDs for quantum computing tasks in the session.

  • channel (str, optional) – Access channel for variational quantum computing sessions (default: default_channel).

  • info (dict or None, optional) – Additional session information (reserved for future use, default: None).

Notes

This class should be used within a context manager (with statement) to ensure proper resource cleanup. Instances are typically created through the RuntimeService.vqsession() factory method.

Examples

>>> from qpanda3_runtime import RuntimeService
>>> service = RuntimeService('config.yml')
>>> with service.vqsession(vqcircuit=ansatz, device=quantum_device) as session:
...     task = session.run_vqtask(gate_params, measure_list=[0, 1])
...     result = task.get_result_sync()
run_vqtask(gate_params, measure_list: list) → qpanda3_runtime.task.qtask_manager.QTaskManager#

Submit a variational quantum task to the session.

Parameters:
  • gate_params (array-like) – Quantum gate parameters adapted to the Ansatz structure. Used for generating quantum computing tasks.

  • measure_list (list) – List of qubit indices to measure.

Returns:

Client management object for the computing task.

Return type:

QTaskManager

Raises:

RuntimeError – If called outside of a session context.

Notes

This method can only be called within a VQSession context manager. The submitted task is automatically added to the session’s task list.

See also

QTaskManager

Task management interface for submitted tasks.

release()#

Release the quantum runtime service session.

Requests the release of the quantum runtime service session using the specified session ID. This method is automatically called when exiting the session context.

Notes

This method is idempotent and can be called multiple times safely. It only takes effect when called within a session context.