Skip to content
This repository was archived by the owner on Jan 12, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
86b3451
Initial sparse simulator commit
sam-jaques Jul 5, 2021
dc11ee9
Updated copyright message
Jul 7, 2021
15345ac
Formatted readme.md
Jul 7, 2021
1d5be64
Formatted readme.md and fixed typo
Jul 7, 2021
42e8fc1
Removed #pragma once in .cpp files
Jul 8, 2021
949aa01
Collapsed nested namespace definitions using ::
Jul 8, 2021
5470276
Merge branch 'feature/sparse-simulator' into sjaques/sparse-simulator
bettinaheim Jul 9, 2021
809d9f3
Replaced defines with constexpr
Jul 10, 2021
fe83d37
Replaced tabs with spaces
Jul 10, 2021
4e5c032
Updated message and comment
Jul 10, 2021
40f0ed4
Rearranged headers, include path in tests
Jul 10, 2021
c583d85
Merge pull request #1 from sam-jaques/dmitryv/sparse-simulator-feedback
sam-jaques Jul 11, 2021
748672b
Marshall boolean C++ return to C#
sam-jaques Jul 11, 2021
a53cbb0
Rename parity function
sam-jaques Jul 11, 2021
94ecce9
Renamed reserved identifiers
Sep 7, 2021
64e84e7
Merge pull request #2 from sam-jaques/dmitryv/sparse-simulator-feedba…
sam-jaques Sep 7, 2021
3375a20
Renamed AND, hashmap comments, fix cmake
sam-jaques Sep 7, 2021
550ad53
Made unit tests work. Added comments
Sep 10, 2021
5667211
Updated SparseSimulator comment
Sep 10, 2021
cb645b6
Merge pull request #3 from sam-jaques/dmitryv/sparse-simulator-feedba…
sam-jaques Sep 13, 2021
a34d5c4
Some build fixes
Sep 14, 2021
59fa922
Merge pull request #4 from sam-jaques/dmitryv/sparse-simulator-feedba…
sam-jaques Sep 15, 2021
a8729e7
Changed amplitude probes to assertions, removed dependencies, used in…
sam-jaques Sep 16, 2021
955b947
Replacing flat_hash_map with std::unordered_map
Sep 21, 2021
7f87f68
Iterator dereference fix
sam-jaques Sep 21, 2021
1b34020
Merge pull request #7 from sam-jaques/sjaques/sparse-simulator-hashtable
DmitryVasilevsky Sep 21, 2021
5b84247
Removed parallel execution
Sep 22, 2021
2f191c6
Added C++17 standard missing in Release
Sep 23, 2021
2869d65
Removed unused files and references
Sep 23, 2021
d37d27f
Merge branch 'microsoft:main' into dmitryv/sparse-simulator-hashtable
DmitryVasilevsky Sep 26, 2021
df838ae
Apply suggestions from code review
DmitryVasilevsky Sep 27, 2021
eb6538e
Review feedback and exclusion from build
Sep 28, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/Simulation/Simulators/Microsoft.Quantum.Simulators.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,11 @@
</None>
</ItemGroup>

<ItemGroup>
<BondCodegen Remove="SparseSimulator\**" />
<Compile Remove="SparseSimulator\**" />
<EmbeddedResource Remove="SparseSimulator\**" />
<QSharpCompile Remove="SparseSimulator\**" />
</ItemGroup>

</Project>
37 changes: 37 additions & 0 deletions src/Simulation/Simulators/SparseSimulator/Native/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
cmake_minimum_required(VERSION 3.10)
project(SparseQuantumSimulator)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

set(CMAKE_MACOSX_RPATH 1)
# Main build files
add_library(SparseQuantumSimulator SHARED factory.cpp capi.cpp)

# Set OpenMP if it is available
find_package(OpenMP REQUIRED)
if(OpenMP_CXX_FOUND)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
if (OpenMP_CXX_VERSION_MAJOR GREATER_EQUAL 3)
target_compile_definitions(SparseQuantumSimulator PRIVATE DOMP_GE_V3=1)
endif()
endif()

# Windows adds a special dllexport command which must be defined
if (WIN32)
target_compile_options(SparseQuantumSimulator PUBLIC -fdeclspec)
target_compile_definitions(SparseQuantumSimulator PRIVATE BUILD_DLL=1)
endif()
# Try to optimize with gcc
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_compile_options(SparseQuantumSimulator PUBLIC -O3 -ftree-vectorize -mavx2 -mfma -fopenmp)
endif()

# Sets NDEBUG to true for all non-debug settings
if (NOT (CMAKE_BUILD_TYPE:STRING STREQUAL "Debug"))
target_compile_definitions(SparseQuantumSimulator PRIVATE NDEBUG=1)
endif()

message("Compiler flags: ${CMAKE_CXX_FLAGS_RELEASE}")
Loading