Commit Graph

108 Commits

Author SHA1 Message Date
Christopher Wood 4550206fa4 Restructure simualtors in src directory
* Move controller headers to src/controllers
* Move base State header to src/simulator
* move src/simualtors/open_pulse to src/open_pulse
* Update changelog for GPU backends
2020-01-31 15:35:23 -05:00
Juan Gomez c6f2013fcf Fix build system with GPU simulator
* Fix a build error with no Thrust support at all
* Simplify flags so AER_DEBUG and AER_TIMING are both implicit to alredy existing DEBUG flag
* No default Thrust backend. The Thrust backend needs to be explicitly specified via
  AER_THRUST_BACKEND build variable, e.g:
  ```
  python ./setup.py bdist_wheel -- -DAER_THRUST_BACKEND=CUDA
  ```
* Some minor class renaming to comply with the CamelCase standard.
* Adding missing symbols for libomp hack on MacOS, with older versions of clang (9)
* Add Thrust cloning from github for the CIs
* Add Thrust to CI tests stages to test Thrust CPU backends
* Document new CMake variable to enable GPU support (and other CPU methods)

Co-authored-by: Hiroshi Horii <horii@jp.ibm.com>
Co-authored-by: Christopher J. Wood <cjwood@us.ibm.com>
2020-01-31 15:35:05 -05:00
doichanj c1e34ecbcb GPU enabled Qiskit Aer by using Thrust 2020-01-31 13:54:31 -05:00
Christopher J. Wood 7fee89e9ab
Rename `aer.openpulse` module to `aer.pulse` and cleanup imports (#567) 2020-01-31 13:47:10 -05:00
vvilpas d445d0136f
Use different muparserx library in linux depending on the ABI (#561)
* Use different muparserx library in linux depending on the ABI supported by the compiler

* _C++_ var names to _CXX_ names. Remove old code. Add comments.
2020-01-30 12:41:34 -05:00
vvilpas 230193bd73
Install added to standalone build (#557) 2020-01-30 17:49:43 +01:00
Juan Gomez c0c5ce852a
Issue 524 - Fix OpenMP on Linux (and Windows) (#550)
* Fix OpenMP on Linux (and Windows)
* Add correct Linux version of libmuparserx.a
* Fix Cython building on Mac
* Fix building python extension on Linux
* Better static linking
* Windows build don't need DL library
2020-01-28 16:52:09 +01:00
vvilpas a2a16a49c6 Choose BLAS library path (#543)
* Search blas library under specified dir (-DBLAS_LIB_PATH)
* BLAS_LIB_PATH flag explanation
2020-01-28 01:27:58 +01:00
Juan Gomez afb13af221 Cleanup build system for pulse simulator
* Add muparserx submodule needed by the pulse simulator solver

* Moved muparserx library to tag v4.0.8

* Fix git submodules in Azure Pipelines CI

* Integrate muparserx source code dependency into the build system
  This way there's no need for anyone to explicitly initialize submodules, and
  installations without git presence like `pip install https://....zip` will
  clone from muparserx repo and checkout the correct commit
2020-01-24 13:49:35 -05:00
Juan Gomez 6c4fe99217 Compress static libraries and integrate them into the build system (#502) 2020-01-23 12:08:53 -05:00
Juan Gomez 9d5a6efd59 Migrate ODE function solver to C++ (#442)
* Calling c++ implementation of the numeric integrator solver function (just a
basic scaffolding)
* Adding C++ and helpers code (still not building)
* Adding tests for the C++ helpers on Python C API
* Adding my ordered_map to guarantee order insertion iteration (ala Python's OrderedDict)
* Adding muparserx library for parsing hamiltonian math expressions
* Now we can use both Cython and C++ func ODE solver depending on a config param: use_cpp_ode_func
* Disabling Pulse simulator related tests for Python 3.5
2020-01-23 12:08:53 -05:00
Juan Gomez 571a5aaf2d Integrate open pulse cython into the build system (#350)
* Adding CMakeLists.txt to new cython files from OpenPulse
* Simplified CMakeLists to build all the Cython related stuff
* Removing unnecessary init python files
* Adding CMake helper files
* Add init files for Cython imports
* Adding pulse_sim.py example, extracted from the already existing Notebook code
2020-01-23 12:08:53 -05:00
Juan Gomez b500444c30
Fix CMakeLists.txt and FindPybind11.cmake to pass compiler options to… (#529)
* Fix CMakeLists.txt and FindPybind11.cmake to pass compiler options to pybind compilation
2020-01-20 18:47:37 +01:00
Juan Gomez d0cc516173 * Fix non-OpenMP builds (#272)
* Better build messages while looking for external libraries
2019-07-08 22:07:56 +02:00
Juan Gomez 3c02eea460 Improve windows build (#138)
* * Adding static openblas library for Windows builds
* Change the build system to always build with our static openblas lib

* * Compressing openblas.lib and integrating the uncompression into the
  build system.
2019-04-15 13:54:27 -04:00
Juan Gomez 145f357465 Issue 1 - Fix OpenMP crash on MacOS (#46)
* Issue 1: Add OMP symbol hooking scaffolding for Mac (clang, gcc)

* Issue 1: On Mac, OMP library has to be loaded dynamically in order to avoid double
initialization crash problem that is present in this library.

* * Add conditional compilation for including this fix only on MacOS
* Some refactoring and trail white-space removal

* * CMake linter has been transformed into a function
* Refactoring and trail white-space removing

* Link with libomp.dylib on Mac for standalone builds

* * Fix GCC symbol hooking for MacOS

* Force initializing Numpy's OpenMP library before loading our simulators, on Mac, due to issue #1

* Fixing tests

* Horrible hack for nesting variadic function calls

* Remove Issue #1 hacks from everything but MacOS builds
2019-02-15 11:45:07 -08:00
Juan Gomez 96dec44464 * Fix CMake to build version information in Terra Addon as well 2019-01-24 23:08:21 +01:00
Juan Gomez ed75aaad8a * Added version information to the standalone executable 2019-01-24 21:45:07 +01:00
Juan Gomez 2e0fb39d6a * Added in-code documentation for CMake static linking caveats
* Added a new CMake file to make static compilation possible
2018-12-18 15:28:14 +01:00
Juan Gomez c5a9346903 Added support for statically build libomp on Mac 2018-12-18 13:13:20 +01:00
Juan Gomez 779cf63101 * Restore back some miss replaced strings
* Removing some dead code
* Updating docstrings
2018-12-18 10:19:54 +01:00
Juan Gomez 9ea697252e Qiskit Terra v0.7 integration
* New folder structure matching Qiskit namespace convention
  Everything is under: qiskit.providers.aer
* Tests changed accordingly
* Documentation changed accordingly
2018-12-17 23:21:14 +01:00
CHRISTOPHER J. WOOD 722e9890dc rename standalone simulator update readme (#143) 2018-12-10 22:07:08 -05:00
CHRISTOPHER J. WOOD cd342bfbc2 Fix default xcode MacOS build (#109) 2018-11-16 13:04:26 -05:00
cjwood 4459d26645 move qiskit_aer to base dir 2018-11-08 16:07:34 -05:00
Juan Gomez c147d59637 * Added Terra tests to Travis (#92)
* Added a VERSION.txt file so there's only once place where to put
   Terra addon versioning information
* C++ tests are not build by default anymore (BUILD_TESTS is False)
* Removed standalone build from Travis to save some time
2018-11-02 12:36:39 -04:00
cjwood 5103389dd4 Update qiskit_aer package
- Reorganize addon package to qiskit_aer package
- Change AerQvSimulator to QasmSimulator
- Add a StateVector simulator backend
2018-10-25 16:47:42 -04:00
Juan Gomez e645744bf6 Fix openmp on linux (#74)
* Issue 72 - Fix OpenMP on Linux

* * Fixed OpenMP linking in MacOSX with Clang

* Fixed MacOS compilation with g++, as it requires to link with an
external OMP library too.

* * Adding back force target platform on MacOS and Clang via CMakeLists.txt
2018-10-11 13:33:29 -04:00
Juan Gomez 5c479f5f7b * Add CPU native compilation for PowerPC 2018-10-07 16:11:38 +02:00
Juan Gomez 6e9932e888 * Adding ffast-math for gcc based builds
* Favoring faster Apple BLAS implementation over OpenBLAS
2018-10-07 16:05:00 +02:00
Hitomi Takahashi 47669b1d63 remove mcpu/march lines 2018-10-04 22:29:31 -04:00
Hitomi Takahashi 08709a9d92 Merge branch 'makefile' of github.ibm.com:HITOMI/qiskit-aer into makefile 2018-10-04 09:17:31 -04:00
hitomi f03775b615 Update a function for BLAS in CmakeLists 2018-10-04 22:16:04 +09:00
Hitomi Takahashi bde0094e8e Merge branch 'makefile' of github.ibm.com:HITOMI/qiskit-aer into makefile 2018-10-04 05:08:31 -04:00
hitomi c4db176abd Add flags to cmake 2018-10-04 18:08:06 +09:00
Hitomi Takahashi 4090121dd4 Add flags to Makefile 2018-10-04 02:46:31 -04:00
Juan Gomez 6bb398d0fa * Removed -O3 flag, CMake will set the correct flags depending on
the build type (Debug, Release)
2018-09-27 13:27:03 +02:00
Juan Gomez a3483bc9b6 Issue 25 - Fixed cython class so it can be pickled (serialized) 2018-09-18 15:39:21 +02:00
Juan Gomez 98594d5611 Remove old build system (#28)
* * Rename legacy-build directory to standalone

* * Remove remaining files from the old build system

* * Fixing CMakeLists.txt to include the new standalone path
2018-09-14 09:53:45 -04:00
Juan Gomez 2809c57379 * Only build the addon when building through scikit-build
* Add qiskit as a development requirement
2018-09-10 17:54:15 +02:00
Juan Gomez 3361d6aab1 * Including Threads library as part of the building 2018-09-10 17:16:57 +02:00
Juan Gomez cab5dbbb72 * Better support for static linking on MacOSX
* Some clean-up
2018-09-07 20:56:53 +02:00
Juan Gomez ddc1f318e2 * Fixed MacOSX library problem, where Python library was being wrongly
linked at the end, cuasing runtime problems.
2018-09-07 19:02:44 +02:00
Juan Gomez c340169216 * Fixed MacOS/Clang wheels package generation for minimum deployment
targets of 10.7
2018-09-06 14:59:33 +02:00
Juan Gomez f70d7514cc * Better integration with OpenMP on different versions of CMake
* Static building for BLAS
2018-09-06 14:59:33 +02:00
Juan Gomez 02a62381f2 * Added support for using the QV Simulator as Qiskit Addon 2018-09-06 14:59:33 +02:00
Juan Gomez a76297c654 * Added scikit-build support for building Cython extensions 2018-09-06 14:59:33 +02:00
Juan Gomez 74b341ce7b * Add compatibility for CMake 3.12 with Apple's clang and OpenMP 2018-08-29 11:05:32 +02:00
Juan Gomez 387b2da5f1 * Lowering cmake required minimum version to 3.6 2018-08-28 18:26:21 +02:00
Juan Gomez 477b78f1cd * Add an example test using TEST_CASE/SECTION idiom
* Add support for Release/Debug builds
2018-08-28 14:59:12 +02:00
Juan Gomez 11c36a5b94 * Add linter support via clang-tidy 2018-08-27 19:45:22 +02:00
Juan Gomez bdfb1f6e95 * Adding support for CCache 2018-08-27 16:49:42 +02:00
Juan Gomez 43fbd0c059 * Add BUILD_TESTS flag to CMake 2018-08-27 16:01:32 +02:00
Juan Gomez 28ca71c197 * Added CMake support for testing using Catch2 2018-08-27 15:30:39 +02:00
Juan Gomez 661fc515bc * Better support for external BLAS library dependency. We favor
OpenBLAS implementation over other implementations.
2018-08-25 15:58:02 +02:00
Juan Gomez 1c97024548 Refactoring and simplifing CMake 2018-08-25 15:58:02 +02:00
Juan Gomez cc6ce6552b Updating CMakeLists.txt. No cython integration yet 2018-08-25 15:58:02 +02:00
Juan Gomez 7af26f9b19 Added CMake support for Apple's clang 2018-08-25 15:58:02 +02:00