def reset(): """Hard reset of the qutip.settings values Recompute the threshold for openmp, so it may be slow. """ for key in __default: __self[key] = __default[key] from qutip.utilities import available_cpu_count __self["num_cpus"] = available_cpu_count() try: from qutip.cy.openmp.parfuncs import spmv_csr_openmp except: __self["has_openmp"] = False __self["openmp_thresh"] = 10000 else: __self["has_openmp"] = True from qutip.cy.openmp.bench_openmp import calculate_openmp_thresh thrsh = calculate_openmp_thresh() __self["openmp_thresh"] = thrsh try: __IPYTHON__ __self["ipython"] = True except: __self["ipython"] = False from qutip._mkl.utilities import _set_mkl _set_mkl()
def about(): """ About box for QuTiP. Gives version numbers for QuTiP, NumPy, SciPy, Cython, and MatPlotLib. """ print("") print("QuTiP: Quantum Toolbox in Python") print("================================") print("Copyright (c) QuTiP team 2011 and later.") print("Current admin team: Alexander Pitchford, " "Nathan Shammah, Shahnawaz Ahmed, Neill Lambert, Eric Giguère, " "Boxi Li, Jake Lishman and Simon Cross.") print("Board members: Daniel Burgarth, Robert Johansson, Anton F. Kockum, " "Franco Nori and Will Zeng.") print("Original developers: R. J. Johansson & P. D. Nation.") print("Previous lead developers: Chris Granade & A. Grimsmo.") print("Currently developed through wide collaboration. " "See https://github.com/qutip for details.") print("") print("QuTiP Version: %s" % qutip.__version__) print("Numpy Version: %s" % numpy.__version__) print("Scipy Version: %s" % scipy.__version__) try: import Cython cython_ver = Cython.__version__ except ImportError: cython_ver = 'None' print("Cython Version: %s" % cython_ver) try: import matplotlib matplotlib_ver = matplotlib.__version__ except ImportError: matplotlib_ver = 'None' print("Matplotlib Version: %s" % matplotlib_ver) print("Python Version: %d.%d.%d" % sys.version_info[0:3]) print("Number of CPUs: %s" % available_cpu_count()) print("BLAS Info: %s" % _blas_info()) print("OPENMP Installed: %s" % str(qutip.settings.has_openmp)) print("INTEL MKL Ext: %s" % str(qutip.settings.has_mkl)) print("Platform Info: %s (%s)" % (platform.system(), platform.machine())) qutip_install_path = os.path.dirname(inspect.getsourcefile(qutip)) print("Installation path: %s" % qutip_install_path) # citation longbar = "=" * 80 cite_msg = "For your convenience a bibtex reference can be easily" cite_msg += " generated using `qutip.cite()`" print(longbar) print("Please cite QuTiP in your publication.") print(longbar) print(cite_msg)
def version_table(verbose=False): """ Print an HTML-formatted table with version numbers for QuTiP and its dependencies. Use it in a IPython notebook to show which versions of different packages that were used to run the notebook. This should make it possible to reproduce the environment and the calculation later on. Returns -------- version_table: string Return an HTML-formatted string containing version information for QuTiP dependencies. """ html = "<table>" html += "<tr><th>Software</th><th>Version</th></tr>" packages = [("QuTiP", qutip.__version__), ("Numpy", numpy.__version__), ("SciPy", scipy.__version__), ("matplotlib", matplotlib.__version__), ("Cython", Cython.__version__), ("Number of CPUs", available_cpu_count()), ("BLAS Info", _blas_info()), ("IPython", IPython.__version__), ("Python", sys.version), ("OS", "%s [%s]" % (os.name, sys.platform))] for name, version in packages: html += "<tr><td>%s</td><td>%s</td></tr>" % (name, version) if verbose: html += "<tr><th colspan='2'>Additional information</th></tr>" qutip_install_path = os.path.dirname(inspect.getsourcefile(qutip)) html += ("<tr><td>Installation path</td><td>%s</td></tr>" % qutip_install_path) try: import getpass html += ("<tr><td>User</td><td>%s</td></tr>" % getpass.getuser()) except: pass html += "<tr><td colspan='2'>%s</td></tr>" % time.strftime( '%a %b %d %H:%M:%S %Y %Z') html += "</table>" return HTML(html)
_cy_require, _Cython.__version__)) # Setup pyximport import qutip.cy.pyxbuilder as _pyxbuilder _pyxbuilder.install() del _pyxbuilder, _Cython, _version2int # ----------------------------------------------------------------------------- # cpu/process configuration # from qutip.utilities import available_cpu_count # Check if environ flag for qutip processes is set if 'QUTIP_NUM_PROCESSES' in os.environ: qutip.settings.num_cpus = int(os.environ['QUTIP_NUM_PROCESSES']) else: qutip.settings.num_cpus = available_cpu_count() os.environ['QUTIP_NUM_PROCESSES'] = str(qutip.settings.num_cpus) del available_cpu_count # Find MKL library if it exists import qutip._mkl # ----------------------------------------------------------------------------- # Check that import modules are compatible with requested configuration # # Check for Matplotlib try: import matplotlib except ImportError: