A Herculean task: Classical simulation of quantum computers
In the effort to develop useful quantum computers simulating quantum machines with conventional computing resources is a key capability. Such simulations will always face limits preventing the emulation of quantum computers of substantial scale but by pushing the envelope as far as possible through optimal choices of algorithms and hardware the value of the simulator tool is maximized. This work reviews the state-of-the-art numerical simulation methods i.e. the classical algorithms that emulate quantum computer evolution under specific operations. We focus on the mainstream state-vector and tensor-network paradigms while briefly mentioning alternative methods. Moreover we review the diverse applications of simulation across different facets of quantum computer development such as understanding the fundamental difference between quantum and classical computations exploring algorithm design spaces for quantum advantage predicting quantum processor performance at the design stage and characterizing fabricated devices efficiently for fast iterations. This review complements recent surveys on today's tools and implementations here we seek to acquaint the reader with an essential understanding of the theoretical basis of classical simulations detailed discussions on the advantages and limitations of different methods and the demands and challenges arising from practical use cases.