IBM has released their next version of Qiskit Terra with improvements in visualization, transpiler improvements, backends and shot memory. They have also released an updated version of Qiskit Aqua, their library of algorithms for building domain-specific applications.
A key goal of the new Qiskit Terra release is to improve the internal infrastructure to provide more transparency, stability and extensibility that will help enable additional feature enhancements in future releases. The visualization modules allow one to view the circuits that have been created and IBM has added both an ascii output as well as a DAG (Directed Acyclic Graph) view. The transpiler converts that quantum gates that the user uses for programming (like X, Hadamard, CNOT) into the native gates supported in the hardware. The goal is to do this with a few gates as possible and also minimize the circuit depth to improve the result quality. IBM has improved the transpiler with additional passes and algorithms so that users can squeeze as much performance as possible from the hardware. Typically quantum programs are run multiple times and each run is called a shot. Shot memory is a log of the results for each run and allows a user to evaluate probabilities, noise, and other characteristics to see if the results are correct. The new version allows access to per-shot measurements by the simulators. It also supports three different simulators that IBM calls Aer, BasicAer, and LegacySimulators (from Terra 0.6). For more details you can view IBM’s Medium article announcing this new version here. For more details you can view IBM’s article announcing this new of Qiskit Terra on the Medium website here.
The applications currently supported by Qiskit Aqua include quantum chemistry, quantum AI, quantum optimization and quantum finance. It is compatible with Qiskit Terra 0.7 and Qiskit Aer 0.1 and runs in the same Python programming environment. It is also written to be fully extensible so that new algorithms can be easily added. For hybrid classical/quantum algorithms, the classical portion typically executes an optimization function. Aqua now includes nine local and five global classical optimizers that can be used. IBM has built-in a parallelization function into the gradient based optimizers that decreases their runtime by about half. This is significant because a large amount of the total runtime in the hybrid classical/quantum routines is consumed by the classical optimizers. Additional new features include a multiple CNOT function, a random distribution function, support for uncertainty problems, an amplitude estimation algorithms and other new features specific to each application. IBM has posted on article on the Medium website that provides more information on this new Qiskit Aqua release and you can find it here.