From e88f7deef16a8ad8852ae16b0d1369e3a8c751bf Mon Sep 17 00:00:00 2001 From: yaelbh Date: Thu, 30 Jan 2020 14:17:27 +0200 Subject: [PATCH 1/2] Added time prints of VQE to the log --- qiskit/aqua/algorithms/adaptive/vqe/vqe.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/qiskit/aqua/algorithms/adaptive/vqe/vqe.py b/qiskit/aqua/algorithms/adaptive/vqe/vqe.py index 8a17a09d86..ec5d9d00e6 100644 --- a/qiskit/aqua/algorithms/adaptive/vqe/vqe.py +++ b/qiskit/aqua/algorithms/adaptive/vqe/vqe.py @@ -21,6 +21,7 @@ from typing import Optional, List, Callable import logging import functools +from time import time import numpy as np from qiskit import ClassicalRegister, QuantumCircuit @@ -333,20 +334,27 @@ def _build_parameterized_circuits(): circuits.append(circuit) to_be_simulated_circuits = functools.reduce(lambda x, y: x + y, circuits) + start_time = time() result = self._quantum_instance.execute(to_be_simulated_circuits, self._parameterized_circuits is not None) + end_time = time() + logger.info('Circuits execution - %.5f (ms)', + (end_time - start_time) * 1000) for idx, _ in enumerate(parameter_sets): + start_time = time() mean, std = self._operator.evaluate_with_result( result=result, statevector_mode=self._quantum_instance.is_statevector, use_simulator_snapshot_mode=self._use_simulator_snapshot_mode, circuit_name_prefix=str(idx)) + end_time = time() mean_energy.append(np.real(mean)) std_energy.append(np.real(std)) self._eval_count += 1 if self._callback is not None: self._callback(self._eval_count, parameter_sets[idx], np.real(mean), np.real(std)) - logger.info('Energy evaluation %s returned %s', self._eval_count, np.real(mean)) + logger.info('Energy evaluation %s returned %s - %.5f (ms)', + self._eval_count, np.real(mean), (end_time - start_time) * 1000) return mean_energy if len(mean_energy) > 1 else mean_energy[0] From 5f175ce94a9ce1f2946ae7c3bcf4494b5cb79a86 Mon Sep 17 00:00:00 2001 From: yaelbh Date: Thu, 30 Jan 2020 17:09:35 +0200 Subject: [PATCH 2/2] compressed log lines --- qiskit/aqua/algorithms/adaptive/vqe/vqe.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/qiskit/aqua/algorithms/adaptive/vqe/vqe.py b/qiskit/aqua/algorithms/adaptive/vqe/vqe.py index ec5d9d00e6..b8b0b520b0 100644 --- a/qiskit/aqua/algorithms/adaptive/vqe/vqe.py +++ b/qiskit/aqua/algorithms/adaptive/vqe/vqe.py @@ -337,12 +337,8 @@ def _build_parameterized_circuits(): start_time = time() result = self._quantum_instance.execute(to_be_simulated_circuits, self._parameterized_circuits is not None) - end_time = time() - logger.info('Circuits execution - %.5f (ms)', - (end_time - start_time) * 1000) for idx, _ in enumerate(parameter_sets): - start_time = time() mean, std = self._operator.evaluate_with_result( result=result, statevector_mode=self._quantum_instance.is_statevector, use_simulator_snapshot_mode=self._use_simulator_snapshot_mode, @@ -353,8 +349,16 @@ def _build_parameterized_circuits(): self._eval_count += 1 if self._callback is not None: self._callback(self._eval_count, parameter_sets[idx], np.real(mean), np.real(std)) - logger.info('Energy evaluation %s returned %s - %.5f (ms)', - self._eval_count, np.real(mean), (end_time - start_time) * 1000) + + # If there is more than one parameter set then the calculation of the + # evaluation time has to be done more carefully, + # therefore we do not calculate it + if len(parameter_sets) == 1: + logger.info('Energy evaluation %s returned %s - %.5f (ms)', + self._eval_count, np.real(mean), (end_time - start_time) * 1000) + else: + logger.info('Energy evaluation %s returned %s', + self._eval_count, np.real(mean)) return mean_energy if len(mean_energy) > 1 else mean_energy[0]