You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@
40
40
<!-- intro -->
41
41
42
42
> [!NOTE]
43
-
> QuEST `v4` has been released which re-designed QuEST from the ground up. Read about the exciting new features [here](/docs/version4.md).
43
+
> QuEST `v4` has been released which re-designed QuEST from the ground up. Read about the exciting new features [here](/docs/v4.md).
44
44
45
45
The **Quantum Exact Simulation Toolkit** (QuEST) is a high-performance simulator of quantum statevectors and density matrices.
46
46
It hybridises **multithreading**, **GPU acceleration** and **distribution** to run lightning fast on laptops, desktops and
@@ -87,7 +87,7 @@ To learn more:
87
87
88
88
- visit the [website](https://quest.qtechtheory.org/)
89
89
- see some [examples](/examples/)
90
-
- view the [documentation](#book-documentation)
90
+
- view the [documentation](#documentation)
91
91
- browse the [API](https://quest-kit.github.io/QuEST/group__api.html)
92
92
- read the [whitepaper](https://www.nature.com/articles/s41598-019-47174-9), which featured in Scientific Report's [Top 100 in Physics](https://www.nature.com/collections/ecehgdfcba/):trophy:
93
93
@@ -187,9 +187,10 @@ QuEST supports:
187
187
> QuEST v4's documentation is still under construction!
188
188
189
189
Visit the [docs](docs/) to:
190
-
- [see what's new in v4](docs/version4.md)
191
-
- [compile with cmake](docs/cmake.md)
190
+
- [see what's new in v4](docs/v4.md)
191
+
- [compile with cmake](docs/compile.md)
192
192
- [find compatible compilers](docs/compilers.md)
193
+
- [launch your simulations](docs/run.md)
193
194
- [view some examples](examples/)
194
195
195
196
The [API](https://quest-kit.github.io/QuEST/group__api.html) documentation is divided into the following groups:
Copy file name to clipboardExpand all lines: docs/cmake.md
+25-4Lines changed: 25 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,7 @@
2
2
Instructions for compiling QuEST with CMake
3
3
4
4
@author Oliver Thomson Brown
5
+
@author Tyson Jones (test variables)
5
6
-->
6
7
7
8
@@ -20,27 +21,47 @@ cd build
20
21
make
21
22
```
22
23
24
+
> [!NOTE]
23
25
> Windows or MSVC users should additionally supply `--config Release` during compilation to enable optimisations.
24
26
25
-
## QuEST CMake variables
27
+
28
+
29
+
------------------------
30
+
31
+
## QuEST variables
26
32
27
33
| Variable | (Default) Values | Notes |
28
34
| -------- | ---------------- | ----- |
29
35
|`LIB_NAME`| (`QuEST`), String | The QuEST library will be named `lib${LIB_NAME}.so`. Can be used to differentiate multiple versions of QuEST which have been compiled. |
30
36
|`VERBOSE_LIB_NAME`| (`OFF`), `ON`| When turned on `LIB_NAME` will be modified according to the other configuration options chosen. For example compiling QuEST with multithreading, distribution, and double precision with `VERBOSE_LIB_NAME` turned on creates `libQuEST-fp2+mt+mpi.so`. |
31
37
|`FLOAT_PRECISION`| (`2`), `1`, `4`| Determines which floating-point precision QuEST will use: double, single, or quad. *Note: Quad precision is not supported when also compiling for GPU.*|
32
38
|`BUILD_EXAMPLES`| (`OFF`), `ON`| Determines whether the example programs will be built alongside QuEST. Note that `min_example` is always built. |
33
-
|`ENABLE_TESTING`| (`ON`), `OFF`| Determines whether Catch2 tests will be built alongisde QuEST. If built, tests can be run from the build directory with `make test`. |
34
-
|`DOWNLOAD_CATCH2`| (`ON`), `OFF`| By default, if you don't have Catch2 installed (or CMake doesn't find it) it will be downloaded from Git and built for you. If you don't want that to happen, for example because you _do_ have Catch2 installed, set this to `OFF`. |
35
39
|`ENABLE_MULTITHREADING`| (`ON`), OFF | Determines whether QuEST will be built with support for parallelisation with OpenMP. |
36
40
|`ENABLE_DISTRIBUTION`| (`OFF`), ON | Determines whether QuEST will be built with support for parallelisation with MPI. |
37
41
|`ENABLE_CUDA`| (`OFF`), `ON`| Determines whether QuEST will be built with support for NVIDIA GPU acceleration. If turned on, `CMAKE_CUDA_ARCHITECTURES` should probably also be set. |
38
42
|`ENABLE_CUQUANTUM`| (`OFF`), `ON`| Determines whether QuEST will make use of the NVIDIA CuQuantum library. Cannot be turned on if `ENABLE_CUDA` is off. |
39
43
|`ENABLE_HIP`| (`OFF`), `ON`| Determines whether QuEST will be built with support for AMD GPU acceleration. If turned on, `CMAKE_HIP_ARCHITECTURES` should probably also be set. |
40
-
|`ENABLE_DEPRECATED_API`| (`OFF`), `ON`| Determines whether QuEST will be built with support for the deprecated (v3) API. *Note: will generate compiler warnings, and not supported by GCC.`|
44
+
|`ENABLE_DEPRECATED_API`| (`OFF`), `ON`| Determines whether QuEST will be built with support for the deprecated (v3) API. ***Note**: this will generate compiler warnings and is not supported by MSVC.*|
41
45
|`USER_SOURCE`| (Undefined), String | The source file for a user program which will be compiled alongside QuEST. `OUTPUT_EXE`*must* also be defined. |
42
46
|`OUTPUT_EXE`| (Undefined), String | The name of the executable which will be created from the provided `USER_SOURCE`. `USER_SOURCE`*must* also be defined. |
43
47
48
+
49
+
--------------------------
50
+
51
+
## Test variables
52
+
53
+
| Variable | (Default) Values | Notes |
54
+
| -------- | ---------------- | ----- |
55
+
|`ENABLE_TESTING`| (`OFF`), `ON`| Determines whether to additionally build QuEST's unit and integration tests. If built, tests can be run from the `build` directory with `make test`, or `ctest`, or manually launched with `./tests/tests` which enables distribution (i.e. `mpirun -np 8 ./tests/tests`) |
56
+
| `ENABLE_DEPRECATED_API` | (`OFF`), `ON` | As described above. When enabled alongside testing, the `v3 deprecated` unit tests will additionally be compiled and can be run from within `build` via `cd tests/deprecated; ctest`, or manually launched with `./tests/deprecated/dep_tests` (enabling distribution, as above).
57
+
|`DOWNLOAD_CATCH2`| (`ON`), `OFF`| QuEST's tests require Catch2. By default, if you don't have Catch2 installed (or CMake doesn't find it) it will be downloaded from Github and built for you. If you don't want that to happen, for example because you _do_ have Catch2 installed, set this to `OFF`. |
58
+
|`TEST_MAX_NUM_QUBIT_PERMUTATIONS`| (`0`), Integer | Determines the maximum number of control and target qubit permutations with which to test each API function. Set to `0` to test all permutations, or to a positive integer (e.g. `50`) to accelerate the unit tests. |
59
+
|`TEST_MAX_NUM_SUPEROP_TARGETS`| (`4`), Integer | Determines the maximum number of superoperator targets in the unit tests (for functions `mixKrausMap` and `mixSuperOp`). Set to `0` to impose no maximum (which is extraordinarily slow), or a positive integer (e.g. `3`) to accelerate the unit tests. |
60
+
|`TEST_NUM_MIXED_DEPLOYMENT_REPETITIONS`| (`10`), Integer | Determines the number of times (minimum of `1`) to repeat the randomised unit tests of functions which accept multiple distinctly-deployed `Qureg`s. Set to a small, positive integer to accelerate mixed-deployment unit tests. |
61
+
|`TEST_ALL_DEPLOYMENTS`| (`ON`), `OFF`| Determines whether unit tests will be repeatedly run using all possible combinations of available `Qureg` deployments (i.e. `OpenMP` and/or `CUDA` and/or `MPI`), else only once using all available deployments simultaneously. Set to `OFF` to accelerate unit tests. |
0 commit comments