qiskit-aqua icon indicating copy to clipboard operation
qiskit-aqua copied to clipboard

10x factor in run time between master and stable

Open yaelbh opened this issue 3 years ago • 5 comments

Information

  • Qiskit Aqua version: master, stable
  • Python version: 3.6.8
  • Operating system: Linux

What is the current behavior?

Running QAOA with the master branch takes 10 times longer than the stable branch.

Steps to reproduce the problem

from time import time
from qiskit.providers.aer import QasmSimulator
from qiskit.optimization import QuadraticProgram
from qiskit.optimization.algorithms import MinimumEigenOptimizer
from qiskit.aqua.algorithms import QAOA
from qiskit.aqua.components.optimizers import SLSQP
from qiskit.aqua import QuantumInstance, aqua_globals

qubo = QuadraticProgram()
qubo.binary_var('x1')
qubo.binary_var('x2')
qubo.binary_var('x3')
qubo.binary_var('x4')
qubo.binary_var('x5')
qubo.binary_var('x6')
qubo.binary_var('x7')
qubo.binary_var('x8')
qubo.binary_var('x9')
qubo.binary_var('x10')
qubo.binary_var('x11')
qubo.binary_var('x12')
qubo.binary_var('x13')
qubo.binary_var('x14')
qubo.binary_var('x15')
qubo.binary_var('x16')
qubo.binary_var('x17')
qubo.binary_var('x18')
qubo.binary_var('x19')
qubo.binary_var('x20')

qubo.minimize(linear=[1,-2,3,-6,5,4,4,5,5,5,6,6,0.3,6,6,-2,-2,-2,-2,-2], 
              quadratic={('x1', 'x2'): 1, ('x1', 'x3'): -1, ('x1', 'x4'): 2, 
                                            ('x2' , 'x3'): 1, ('x2', 'x4'): 6, ('x3', 'x5'): 3,
                                            ('x4', 'x6'): 3, ('x7', 'x8'): -1, ('x7', 'x9'): -1, ('x8', 'x10'): -1,
                                            ('x11', 'x12'): 3, ('x13', 'x14'): -1, ('x10', 'x13'): -1, ('x12', 'x15'): -1,
                                            ('x11', 'x16'): 3, ('x13', 'x17'): -1, ('x18', 'x13'): -1, ('x19', 'x20'): -1 
                        })


seed = 10698
sim = QasmSimulator()
            
aqua_globals.random_seed = seed
quantum_instance = QuantumInstance(sim, seed_simulator=seed, seed_transpiler=seed)

slsqp = SLSQP()
slsqp.set_options(maxiter=500)

start = time()    
qaoa_mes = QAOA(quantum_instance=quantum_instance, include_custom=True, optimizer=slsqp, p=3)
qaoa = MinimumEigenOptimizer(qaoa_mes)
qaoa_result = qaoa.solve(qubo)
print('Run time:', time()-start)

Output of machine: 345 seconds with master, 38 seconds with stable.

Suggested solutions

Maybe compare transpilation times.

yaelbh avatar Nov 25 '20 12:11 yaelbh

Is this Aqua's issue? (Which did you use Terra master or Terra stable?)

Perhaps, https://github.com/Qiskit/qiskit-terra/pull/5429 https://github.com/Qiskit/qiskit-terra/pull/5431 may be related. These are recently found performance problems.

ikkoham avatar Nov 25 '20 13:11 ikkoham

I used master branches of Aqua, Aer, and Terra. Compared to stable branches of all three.

yaelbh avatar Nov 25 '20 16:11 yaelbh

I have checked this. My environment is master and stable/0.8 of Aqua, and master of Terra and Aer for both.

~~227s (stable/0.8) -> 27s (master)~~ 27s (stable/0.8) ->227s (master)

stable image master image

ikkoham avatar Nov 26 '20 08:11 ikkoham

This is opposite to my findings...

yaelbh avatar Nov 26 '20 11:11 yaelbh

Ah sorry my mistake (I wrote opposite)

ikkoham avatar Nov 26 '20 11:11 ikkoham