Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

💥 Introducing ClusterComplete: Exact SiDB Logic Simulation with well over 50 DBs #390

Open
wants to merge 636 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 160 commits
Commits
Show all changes
636 commits
Select commit Hold shift + click to select a range
394ca8f
:green_heart: experimenting to fix the docs build
wlambooy Apr 24, 2024
cab1479
:green_heart: experimenting to fix the docs build
wlambooy Apr 24, 2024
1c24639
:green_heart: fix MACOS pypi
wlambooy Apr 24, 2024
6b7bbaf
:green_heart: missing `&&`
wlambooy Apr 24, 2024
7e8f1c4
:green_heart: Trying to figure out what part of the experiment made i…
wlambooy Apr 24, 2024
0c2c500
:green_heart: Add more `&&`
wlambooy Apr 24, 2024
3b04717
:green_heart: trailing whitespace
wlambooy Apr 24, 2024
90ba206
:green_heart: Fixing readthedocs build
wlambooy Apr 24, 2024
790dbd2
:green_heart: forgotten `&&`
wlambooy Apr 24, 2024
ffbe54e
:green_heart: readthedocs build works! (cleanup)
wlambooy Apr 24, 2024
bda1c51
:green_heart: try pypi fix
wlambooy Apr 24, 2024
f7c0e89
Revert ":green_heart: disable some CIs for quicker results"
wlambooy Apr 24, 2024
ccac845
:green_heart: retry
wlambooy Apr 24, 2024
ecb2b4f
Revert ":green_heart: retry"
wlambooy Apr 24, 2024
6c26c62
Update pyfiction-pypi-deployment.yml
wlambooy Apr 24, 2024
70e7acc
Update pyfiction-pypi-deployment.yml
wlambooy Apr 24, 2024
d53ea1c
Update pyproject.toml
wlambooy Apr 24, 2024
79a0489
:green_heart: explicitly disable ALGLIB for macOS
wlambooy Apr 25, 2024
8456302
:green_heart: removed copying artifact
wlambooy Apr 25, 2024
0619b94
:memo: Specified current state of PyPI ALGLIB support
wlambooy Apr 25, 2024
e2b8e28
Merge branch 'main' into clustercomplete
wlambooy Apr 29, 2024
390b1ba
:snake: Added the reset function to bindings
wlambooy Apr 29, 2024
4d2835f
:art: Remaining changes to CDS
wlambooy Apr 29, 2024
6fc82f9
:memo: Regen pybind11 mkdoc docstrings
wlambooy Apr 29, 2024
23878fe
:art: trailing whitespace
wlambooy Apr 29, 2024
7f60db6
Merge remote-tracking branch 'upstream/main' into clustercomplete
Drewniok May 7, 2024
1140aaf
:twisted_rightwards_arrows: solve merge conflict.
Drewniok May 7, 2024
8f3cb2a
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] May 7, 2024
b5ac159
:art: small fix.
Drewniok May 7, 2024
39333b4
:art: small fix.
Drewniok May 8, 2024
942d91a
Merge remote-tracking branch 'upstream/main' into clustercomplete
Drewniok May 11, 2024
dc8933e
Merge branch 'main' into clustercomplete
Drewniok May 12, 2024
ececc95
Merge remote-tracking branch 'origin/clustercomplete' into clustercom…
Drewniok May 31, 2024
bad2374
Merge remote-tracking branch 'upstream/main' into clustercomplete
Drewniok May 31, 2024
70aab40
Update test_critical_temperature.py (old use of simulation_engine::EX…
wlambooy Jun 3, 2024
0b2694f
curious to see if the CI passes
wlambooy Jun 11, 2024
c757023
void edit
wlambooy Jun 11, 2024
2cda581
Merge branch 'main' into clustercomplete
marcelwa Jul 5, 2024
29bbb50
:green_heart: Fix GitHub Actions script error
marcelwa Jul 5, 2024
e0bb957
Merge remote-tracking branch 'upstream/main' into clustercomplete
Drewniok Jul 23, 2024
40e278d
:twisted_rightwards_arrows: fix merge issue.
Drewniok Jul 23, 2024
9832413
Merge remote-tracking branch 'upstream/main' into clustercomplete
Drewniok Jul 25, 2024
51f7635
:art: small fix after merge.
Drewniok Jul 25, 2024
6318322
:art: small fix.
Drewniok Aug 6, 2024
401fe47
Merge remote-tracking branch 'upstream/main' into clustercomplete
Drewniok Aug 6, 2024
6a0428b
:memo: Update pyfiction docstrings
actions-user Aug 6, 2024
8277fcd
:art: small fix.
Drewniok Aug 6, 2024
1e69ce2
:art: small fix.
Drewniok Aug 6, 2024
e66b807
:art: fix bug after merge.
Drewniok Aug 6, 2024
513ca64
:art: bug fix in unit test.
Drewniok Aug 6, 2024
bdc4318
Merge remote-tracking branch 'upstream/main' into clustercomplete
Drewniok Aug 11, 2024
9693b9a
:memo: Update pyfiction docstrings
actions-user Aug 11, 2024
dfa9841
:art: Small consistency fixes
marcelwa Aug 22, 2024
40d8b8a
:art: Small consistency fixes
marcelwa Aug 22, 2024
273f366
:memo: Update pyfiction docstrings
actions-user Aug 22, 2024
123fdf9
:package: ALGLIB is now included as a static library!
wlambooy Oct 6, 2024
1d58c10
:alembic: disable pre-commit merge check for testing
wlambooy Oct 6, 2024
570454c
:bug: ClusterComplete CLI was logging QuickSim stats
wlambooy Oct 6, 2024
fcc4181
Revert ":alembic: disable pre-commit merge check for testing"
wlambooy Oct 6, 2024
33695bc
:art: fixed todo: CLI can report Ground State Space stats
wlambooy Oct 6, 2024
b539298
:bug: Python bindings for `SIDB_CHARGE_STATES_BASE_b` are now consist…
wlambooy Oct 6, 2024
b7be02b
:sparkles: Added a global function for string to SiDB simulation engine
wlambooy Oct 6, 2024
0ee189c
:memo: Added docstrings for the bindings for `ground_state_space_repo…
wlambooy Oct 6, 2024
f062afe
:art: Used the new global name to simulation engine function where po…
wlambooy Oct 6, 2024
f5ae548
:fire: Removed resolved TODO
wlambooy Oct 6, 2024
c7bf2e6
:memo: add docstrings for bound direction enum class members `LOWER` …
wlambooy Oct 6, 2024
593f885
:adhesive_bandage: Forgotten import
wlambooy Oct 6, 2024
4b1d14b
:adhesive_bandage: Make sure tests pass also with the `DEBUG_SIDB_CLU…
wlambooy Oct 7, 2024
2f0b793
:bug: ClusterComplete did not call `charge_distribution_to_index` for…
wlambooy Oct 7, 2024
10a9433
:zap: improve runtimes on tiny layouts by skipping the multithreading…
wlambooy Oct 7, 2024
058a7fc
:bug: Revert validity checking logic to the original version that is …
wlambooy Oct 7, 2024
f07b125
:bug: `std::numeric_limits::epsilon` is too strict for double equalit…
wlambooy Oct 7, 2024
4cc91f7
:memo: Added docstrings everywhere to Ground State Space
wlambooy Oct 9, 2024
3b958b2
:memo: tiny change
wlambooy Oct 9, 2024
8b13463
:memo: forgotten `@return`
wlambooy Oct 9, 2024
987a581
:memo: Added docstrings for the lower/upper bound identifiers
wlambooy Oct 9, 2024
2ca5980
:memo: Added docstrings everywhere in the ClusterComplete code
wlambooy Oct 9, 2024
dda9dfc
:art: Moved the `ccsim` shortcut to `shortcuts.fs`
wlambooy Oct 9, 2024
6d86570
:white_check_mark: Change the tests that marked a difference between …
wlambooy Oct 9, 2024
84eedb7
:alembic: Included ClusterComplete in the equivalence checking, and a…
wlambooy Oct 9, 2024
46b86b9
Merge branch 'main' into clustercomplete
wlambooy Oct 9, 2024
120affe
:twisted_rightwards_arrows: Merged with main
wlambooy Oct 9, 2024
31e12bd
:art: Reformat
wlambooy Oct 9, 2024
5b3753a
:memo: Update pyfiction docstrings
actions-user Oct 9, 2024
257f1f2
Merge branch 'main' into clustercomplete
wlambooy Oct 9, 2024
173998d
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Oct 9, 2024
becfeba
:bindings: double declaration of `exact_sidb_simulation_engine`
wlambooy Oct 9, 2024
a5de418
Merge remote-tracking branch 'fork/clustercomplete' into clustercomplete
wlambooy Oct 9, 2024
d61eb2c
:apple: Make mac CI happy
wlambooy Oct 9, 2024
0435836
:art: Trying locally generated ClangTidy suggested
wlambooy Oct 9, 2024
4647c9f
:memo: Trying to fix the link to ClusterComplete
wlambooy Oct 9, 2024
d3c6d09
:green_heart: Undo make copy constructor explicit (Clang-Tidy suggest…
wlambooy Oct 9, 2024
661169b
:art: Revert more insecure Clang-Tidy suggestions
wlambooy Oct 9, 2024
3f55598
Merge branch 'main' into clustercomplete
wlambooy Oct 10, 2024
1ba5e74
:green_heart: Trying without ClusterComplete in `is_operational.cpp`
wlambooy Oct 10, 2024
be3539e
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Oct 10, 2024
d376247
:green_heart: Testing hanging Windows CI by commenting ClusterComplet…
wlambooy Oct 10, 2024
c7b030d
Merge remote-tracking branch 'fork/clustercomplete' into clustercomplete
wlambooy Oct 10, 2024
75124d5
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Oct 10, 2024
876c0ec
:package: Use ALGLIB as submodule
wlambooy Oct 10, 2024
1945282
Merge remote-tracking branch 'fork/clustercomplete' into clustercomplete
wlambooy Oct 10, 2024
1ab6992
:package: add `.git` to the URL
wlambooy Oct 10, 2024
f06b90e
:package: add submodule folder to `libs`
wlambooy Oct 10, 2024
3c96a17
Delete libs/alglib directory
wlambooy Oct 10, 2024
1166d2f
:package: Manage concurrent cmake builds: one downloads while the oth…
wlambooy Oct 10, 2024
65a0b6e
Merge remote-tracking branch 'fork/clustercomplete' into clustercomplete
wlambooy Oct 10, 2024
8b2bec0
:package: update submodule
wlambooy Oct 10, 2024
2a94c28
:rotating_light: Write less type-safe code to make Clang-Tidy happy
wlambooy Oct 10, 2024
93c2020
:rotating_light: Write type-safe, but ugly code to make Clang-Tidy happy
wlambooy Oct 10, 2024
39fa474
:rotating_light: Fix unnecessary cast warning
wlambooy Oct 10, 2024
7898200
:package: Rolled back to ALGLIB 3.14 because the Windows compiler doe…
wlambooy Oct 10, 2024
2004dbd
:package: Rolled back to ALGLIB 3.14 because the Windows compiler doe…
wlambooy Oct 10, 2024
d1df350
:package: Rolled back to ALGLIB 3.14 because the Windows compiler doe…
wlambooy Oct 10, 2024
1bfab57
:package: Make ALGLIB an optional dependency again and enable it on a…
wlambooy Oct 10, 2024
c3bdd77
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Oct 10, 2024
8acd69f
:adhesive_bandage: Fixing a small mess-up
wlambooy Oct 10, 2024
a72e38e
Merge remote-tracking branch 'fork/clustercomplete' into clustercomplete
wlambooy Oct 10, 2024
8f1ab00
:art: Some Clang-Tidy suggestions
wlambooy Oct 11, 2024
2a77ef4
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Oct 11, 2024
e256c4c
:art: Some Clang-Tidy suggestions
wlambooy Oct 11, 2024
770e99a
:art: reformat
wlambooy Oct 11, 2024
a9caf9d
:package: cmake rebuild now works when ALGLIB is already unpacked
wlambooy Oct 11, 2024
eee3bd1
:green_heart: Trying a `pywin32` update
wlambooy Oct 11, 2024
e52c803
:green_heart: Trying a `pywin32` update
wlambooy Oct 11, 2024
efd32b0
:green_heart: Trying ALGLIB disabled for Windows pybindings
wlambooy Oct 11, 2024
d02ddc8
:green_heart: Trying to specify a directory for ALGLIB for windows py…
wlambooy Oct 11, 2024
d97219f
:art: Clang-Tidy suggestion: remove redundant `inline`s
wlambooy Oct 11, 2024
5cdf1d3
:art: Clang-Tidy suggestion: remove initialiser
wlambooy Oct 11, 2024
2acb9c7
:art: Clang-Tidy suggestion: remove initialiser
wlambooy Oct 11, 2024
08c1d54
Merge branch 'main' into clustercomplete
wlambooy Oct 11, 2024
ff90dd8
:green_heart: Turn ALGLIB back on for the Windows pybindings
wlambooy Oct 11, 2024
b4c4f9f
Revert ":art: Clang-Tidy suggestion: remove initialiser"
wlambooy Oct 11, 2024
8e16eac
:package: Adding installation
wlambooy Oct 11, 2024
83a64e9
:art: More Clang-Tidy suggestions
wlambooy Oct 11, 2024
db0fd5e
:package: Set "/Ox" on Windows only for Release
wlambooy Oct 11, 2024
c97f1e9
:art: Missing import
wlambooy Oct 11, 2024
a835dd8
:pencil1: typo
wlambooy Oct 16, 2024
a751ddc
:zap: Small Ground State Space optimisation that omits useless charge…
wlambooy Oct 17, 2024
7eeee97
:alembic: add clustercomplete to runtime experiment.
Drewniok Nov 6, 2024
a34edeb
:alembic: SAVE
wlambooy Nov 12, 2024
a14276b
:alembic: attempt 1
wlambooy Nov 26, 2024
ecaa2e9
:alembic: attempt 2
wlambooy Dec 2, 2024
5c955ae
:alembic: attempt 2
wlambooy Dec 2, 2024
e0591d8
:alembic: attempt 3 (beginning)
wlambooy Dec 2, 2024
bce7cee
:alembic: attempt 3 (beginning)
wlambooy Dec 2, 2024
d89b308
:alembic: attempt 3 (mid)
wlambooy Dec 4, 2024
fc2e88d
:alembic: attempt 3 (mid)
wlambooy Dec 4, 2024
fbbcaae
:alembic: attempt 3 (weakened) [works!]
wlambooy Dec 5, 2024
19aee87
:art: improve clustering state usability
wlambooy Dec 9, 2024
3d35074
:art: alter potential bounds store interface to avoid confusion
wlambooy Dec 9, 2024
d7f1a78
:white_check_mark: contain test in the correct compilation guard branch
wlambooy Dec 9, 2024
27294c1
:alembic: full multithreading setup: single core works (with debug pr…
wlambooy Dec 9, 2024
30db275
:alembic: full multithreading setup: single core works (without debug…
wlambooy Dec 9, 2024
fc9b103
:alembic: full multithreading: dual core works (with debug prints)
wlambooy Dec 16, 2024
4c29a0b
:alembic: full multithreading: multi core almost works (without debug…
wlambooy Dec 17, 2024
c8ebf6c
:zap: full multithreading: multi core works (towards finalising)
wlambooy Dec 19, 2024
3fd6504
:memo: Update pyfiction docstrings
actions-user Dec 19, 2024
9f896a4
:zap: full multithreading: multi core works (towards finalising)
wlambooy Dec 20, 2024
fa294f6
:memo: Update pyfiction docstrings
actions-user Dec 20, 2024
3add72d
:zap: full multithreading: multi core works (towards finalising)
wlambooy Dec 20, 2024
517ec57
:zap: full multithreading: multi core works (towards finalising)
wlambooy Dec 20, 2024
3f79e75
:memo: Update pyfiction docstrings
actions-user Dec 20, 2024
6221071
:art: Docstrings + code simplifications & stabilizations
wlambooy Jan 8, 2025
e4c897f
Merge remote-tracking branch 'fork/clustercomplete_full_multithreadin…
wlambooy Jan 8, 2025
2fa362c
:memo: Update pyfiction docstrings
actions-user Jan 8, 2025
9670166
Merge remote-tracking branch 'fork/clustercomplete' into clustercomplete
wlambooy Jan 9, 2025
a8d9aa5
Merge branch 'clustercomplete_full_multithreading' into clustercomplete
wlambooy Jan 9, 2025
20c193c
:twisted_rightwards_arrows: merged full-multithreading
wlambooy Jan 9, 2025
aa8b66a
:memo: missing docstring
wlambooy Jan 9, 2025
71a02b9
:memo: Update pyfiction docstrings
actions-user Jan 9, 2025
d83d58c
Merge branch 'main' into clustercomplete
wlambooy Jan 9, 2025
d04886b
:twisted_rightwards_arrows: Merged with main
wlambooy Jan 9, 2025
fa94678
:twisted_rightwards_arrows: Merged with main
wlambooy Jan 9, 2025
e6233dd
Merge remote-tracking branch 'fork/clustercomplete' into clustercomplete
wlambooy Jan 9, 2025
3844fa8
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jan 9, 2025
cdac793
:memo: Update pyfiction docstrings
actions-user Jan 9, 2025
c1344ad
Merge branch 'main' into clustercomplete
wlambooy Jan 11, 2025
4fffb74
:adhesive_bandage: accidental include
wlambooy Jan 11, 2025
47886b6
:adhesive_bandage: unused import
wlambooy Jan 11, 2025
cb35f75
:art: Clang Tidy suggestion (unused import)
wlambooy Jan 11, 2025
0954130
:art: Use include guards
wlambooy Jan 11, 2025
41c839b
:snake: made imports explicit
wlambooy Jan 11, 2025
3632619
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jan 11, 2025
42716bf
:snake: conform to new bindings code
wlambooy Jan 12, 2025
cac3d3c
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jan 12, 2025
a08898f
:art: Removed print statement to stdout
wlambooy Jan 12, 2025
0ecef9c
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jan 12, 2025
e8683ad
:art: Missing import
wlambooy Jan 12, 2025
92ac1ef
Merge remote-tracking branch 'fork/clustercomplete' into clustercomplete
wlambooy Jan 12, 2025
a75900b
:adhesive_bandage: missing commas
wlambooy Jan 12, 2025
d80757d
:art: missing import
wlambooy Jan 12, 2025
b2eca62
:art: merging artifact
wlambooy Jan 12, 2025
a4547ae
Merge branch 'main' into clustercomplete
wlambooy Jan 12, 2025
0467bd6
:art: unused imports (Clang-Tidy suggestions)
wlambooy Jan 12, 2025
f94bae0
:art: unused import (Clang-Tidy suggestions)
wlambooy Jan 12, 2025
23bd64d
:art: unused import (Clang-Tidy suggestions)
wlambooy Jan 12, 2025
ac71c1c
:art: unused import (Clang-Tidy suggestions)
wlambooy Jan 12, 2025
07cce7e
:art: reduce enum type width to `uint8_t`
wlambooy Jan 12, 2025
3751381
:art: unused import (Clang-Tidy suggestions)
wlambooy Jan 12, 2025
b8b76cd
:art: Clang-Tidy suggestions
wlambooy Jan 12, 2025
0dc0e6e
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jan 12, 2025
1ef0117
:pencil1: typo
wlambooy Jan 12, 2025
fcb3c1b
:twisted_rightwards_arrows: merging artifact
wlambooy Jan 12, 2025
a860d92
:art: added `static_cast`
wlambooy Jan 12, 2025
a4e79a7
:white_check_mark: same UIDs for separate `sidb_cluster` instances ar…
wlambooy Jan 12, 2025
d60bb6b
:art: Clang-Tidy suggestions
wlambooy Jan 12, 2025
704fc42
:memo: Update pyfiction docstrings
actions-user Jan 12, 2025
bab265d
:green_heart: use tinyxml shared libs
wlambooy Jan 12, 2025
165041b
Merge remote-tracking branch 'fork/clustercomplete' into clustercomplete
wlambooy Jan 12, 2025
6146786
:art: Clang-Tidy suggestions
wlambooy Jan 13, 2025
c3085d1
Merge branch 'main' into clustercomplete
wlambooy Jan 13, 2025
8d5a0e1
:white_check_mark: `std::all_of` seems to be unstable
wlambooy Jan 13, 2025
db2faee
Revert ":green_heart: use tinyxml shared libs"
wlambooy Jan 13, 2025
9845f3d
:green_heart: try linking tinyxml before ALGLIB
wlambooy Jan 13, 2025
978fbc8
:rotating_light: trying to reduce compiler warnings
wlambooy Jan 13, 2025
229585a
:green_heart: trying dashed arguments for ALGLIB
wlambooy Jan 13, 2025
0880bf9
:art: Clang-Tidy suggestion
wlambooy Jan 13, 2025
60e7b81
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jan 13, 2025
e66f3e2
Merge branch 'main' into clustercomplete
wlambooy Jan 14, 2025
f480926
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jan 14, 2025
4837f35
:twisted_rightwards_arrows: merging artifact
wlambooy Jan 14, 2025
5298f75
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jan 14, 2025
3662f7a
:twisted_rightwards_arrows: merging artifact
wlambooy Jan 14, 2025
fb75f1d
:twisted_rightwards_arrows: merging artifact
wlambooy Jan 14, 2025
840a900
:green_heart: triggering docstring-generator
wlambooy Jan 14, 2025
bdd72f0
:green_heart: triggering docstring-generator
wlambooy Jan 14, 2025
6dd23a7
:memo: Update pyfiction docstrings
actions-user Jan 14, 2025
d6782eb
:art: missing import (Clang-Tidy suggestion)
wlambooy Jan 14, 2025
f267814
:art: artifact from aliased command (removed long ago)
wlambooy Jan 14, 2025
5a2f6f9
:art: added `assert` for when CC is selected as simulator but ALGLIB …
wlambooy Jan 14, 2025
76bac89
Revert ":green_heart: trying dashed arguments for ALGLIB"
wlambooy Jan 14, 2025
d727d41
:green_heart: reverting ALGLIB fix attempt
wlambooy Jan 14, 2025
445af28
:green_heart: added wrong import earlier
wlambooy Jan 14, 2025
9cfbf4f
:arrow_up: adjusted minimum required CMake version
wlambooy Jan 14, 2025
013cd19
:art: `phmap::flat_hash_set` may fail when used with `std::set_union`
wlambooy Jan 14, 2025
1a359a2
:adhesive_bandage: Fixed small inconsistency with STL vs phmap contai…
wlambooy Jan 14, 2025
2a8ad33
:green_heart: Only run determinism check in Release
wlambooy Jan 14, 2025
5e2ed7f
:green_heart: Trying to reduce memory consumption on the CI
wlambooy Jan 14, 2025
a6db707
:green_heart: Trying to reduce memory consumption on the CI
wlambooy Jan 14, 2025
a8576e5
:white_check_mark: Instead of disabling, in Debug builds the determin…
wlambooy Jan 14, 2025
305f67c
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jan 14, 2025
684b02b
:green_heart: Trying to reduce memory consumption on the CI
wlambooy Jan 14, 2025
058ec48
:art: Clang-Tidy suggestion
wlambooy Jan 14, 2025
20b647d
:adhesive_bandage: Removed dangling `#endif`
wlambooy Jan 14, 2025
311b94d
🎨 Incorporated pre-commit fixes
pre-commit-ci[bot] Jan 14, 2025
cad204c
:art: removed ` // NDEBUG`
wlambooy Jan 14, 2025
66f60e3
:green_heart: Undo adding global debug flags
wlambooy Jan 14, 2025
5b6b497
:construction_worker: Changed Ubuntu version for the C++20 runner to …
wlambooy Jan 14, 2025
64b481f
:construction_worker: Turned off experiment building for Ubuntu Debug…
wlambooy Jan 14, 2025
cf46f74
:construction_worker: trying to reduce memory consumption
wlambooy Jan 14, 2025
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
9 changes: 9 additions & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,15 @@ jobs:
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

- name: Setup ALGLIB
run: |
git clone https://github.com/S-Dafarra/alglib-cmake.git
cd alglib-cmake
mkdir build && cd build
cmake ..
make
sudo make install

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,15 @@ jobs:
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

- name: Setup ALGLIB
run: |
git clone https://github.com/S-Dafarra/alglib-cmake.git
cd alglib-cmake
mkdir build && cd build
cmake ..
make
sudo make install

- name: Create Build Environment
run: cmake -E make_directory ${{github.workspace}}/build

Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,15 @@ jobs:
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

- name: Setup ALGLIB
run: |
git clone https://github.com/S-Dafarra/alglib-cmake.git
cd alglib-cmake
mkdir build && cd build
cmake ..
make -j4
sudo make install

- name: Create Build Environment
run: cmake -E make_directory ${{github.workspace}}/build

Expand All @@ -121,6 +130,7 @@ jobs:
-DFICTION_BENCHMARK=OFF
-DFICTION_EXPERIMENTS=ON
-DFICTION_Z3=ON
-DFICTION_ALGLIB=ON
-DFICTION_PROGRESS_BARS=OFF
-DFICTION_WARNINGS_AS_ERRORS=OFF
-DMOCKTURTLE_EXAMPLES=OFF
Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,15 @@ jobs:
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

- name: Setup ALGLIB
run: |
git clone https://github.com/S-Dafarra/alglib-cmake.git
cd alglib-cmake
mkdir build && cd build
cmake ..
make -j4
sudo make install

- name: Create Build Environment
run: cmake -E make_directory ${{github.workspace}}/build

Expand All @@ -128,6 +137,7 @@ jobs:
-DFICTION_BENCHMARK=OFF
-DFICTION_EXPERIMENTS=ON
-DFICTION_Z3=ON
-DFICTION_ALGLIB=ON
-DFICTION_ENABLE_MUGEN=ON
-DFICTION_PROGRESS_BARS=OFF
-DFICTION_WARNINGS_AS_ERRORS=OFF
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,17 @@ jobs:
architecture: x64
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
#
# - name: Setup ALGLIB
# run: |
# git clone https://github.com/S-Dafarra/alglib-cmake.git
# cp alglib-cmake ${{github.workspace}}/libs/
# cd ${{github.workspace}}/libs/alglib-cmake
# (Get-Content CMakeLists.txt) -replace '/Ox', '' | Set-Content CMakeLists.txt
# mkdir build && cd build
# cmake .. -G "${{matrix.env}}" -A x64 -T ${{matrix.toolset}}
# cmake --build . --target ALL_BUILD --config ${{matrix.build_type}} -j4
# cmake --build . --target INSTALL --config ${{matrix.build_type}}
wlambooy marked this conversation as resolved.
Show resolved Hide resolved

- name: Create Build Environment
run: cmake -E make_directory ${{github.workspace}}\build
Expand All @@ -92,6 +103,7 @@ jobs:
-DFICTION_BENCHMARK=OFF
-DFICTION_EXPERIMENTS=ON
-DFICTION_Z3=ON
# -DFICTION_ALGLIB=ON
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
-DFICTION_WARNINGS_AS_ERRORS=OFF
-DMOCKTURTLE_EXAMPLES=OFF

Expand Down
11 changes: 11 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,16 @@ RUN apt-get -y update && apt-get -y upgrade && apt-get -y install \
# Setup Z3
RUN pip3 install z3-solver==4.10.0

# Setup ALGLIB
RUN git clone https://github.com/S-Dafarra/alglib-cmake.git && \
cd alglib-cmake && \
mkdir build && \
cd build && \
cmake .. && \
make && \
make install && \
cd ../..

# Clone fiction's repository including submodules
# RUN git clone --recursive https://github.com/cda-tum/fiction.git
COPY . fiction/
Expand All @@ -23,6 +33,7 @@ RUN cmake -S fiction -B fiction/build \
-DFICTION_TEST=OFF \
-DFICTION_EXPERIMENTS=OFF \
-DFICTION_Z3=ON \
-DFICTION_ALGLIB=ON \
-DFICTION_ENABLE_MUGEN=OFF \
-DFICTION_PROGRESS_BARS=ON \
-DFICTION_WARNINGS_AS_ERRORS=OFF \
Expand Down
202 changes: 202 additions & 0 deletions cli/cmd/simulation/clustercomplete.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
//
// Created by Willem Lambooy on 07/03/2024.
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
//

#ifndef FICTION_CMD_CLUSTERCOMPLETE_HPP
#define FICTION_CMD_CLUSTERCOMPLETE_HPP

#if (FICTION_ALGLIB_ENABLED)

#include <fiction/algorithms/simulation/sidb/clustercomplete.hpp>
#include <fiction/algorithms/simulation/sidb/minimum_energy.hpp>
#include <fiction/algorithms/simulation/sidb/sidb_simulation_result.hpp>
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
#include <fiction/traits.hpp>
#include <fiction/types.hpp>
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
#include <fiction/utils/name_utils.hpp>
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved

#include <alice/alice.hpp>
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
#include <nlohmann/json.hpp>

wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
#include <any>
#include <cstdint>
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
#include <iostream>
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
#include <limits>
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
#include <memory>
#include <string>
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
#include <type_traits>
#include <variant>
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved

namespace alice
{
/**
*
*/
class clustercomplete_command : public command
{
public:
/**
* Standard constructor. Adds descriptive information, options, and flags.
*
* @param e alice::environment that specifies stores etc.
*/
explicit clustercomplete_command(const environment::ptr& e) :
command(
e,
"ClusterComplete is a proof of concept of the more general idea of state space pruning in a cluster "
"hierarchy. In the application on SiDB layouts, it is able to simulate SiDB logic in base 3 for well "
"over 50 DBs, thereby redefining what was thought to be possible in the exact SiDB simulation domain.")
{
add_option("--epsilon_r,-e", physical_params.epsilon_r, "Electric permittivity of the substrate (unit-less)",
true);
add_option("--lambda_tf,-l", physical_params.lambda_tf, "Thomas-Fermi screening distance (unit: nm)", true);
add_option("--mu_minus,-m", physical_params.mu_minus, "Energy transition level (0/-) (unit: eV)", true);
add_option("--witness_partitioning_limit,-w", params.validity_witness_partitioning_max_cluster_size_gss,
"The limit on the cluster size before Ground State Space omits the check for which it solves the "
"validity witness partitioning NP-complete sub-problem; values above 15 severely impact the runtime",
true);
}

protected:
/**
* Function to perform the simulation call.
*/
void execute() override
{
// reset sim result
sim_result = {};
min_energy = std::numeric_limits<double>::infinity();

if (physical_params.epsilon_r <= 0)
{
env->out() << "[e] epsilon_r must be positive" << std::endl;
reset_params();
return;
}
if (physical_params.lambda_tf <= 0)
{
env->out() << "[e] lambda_tf must be positive" << std::endl;
reset_params();
return;
}

auto& s = store<fiction::cell_layout_t>();

// error case: empty cell layout store
if (s.empty())
{
env->out() << "[w] no cell layout in store" << std::endl;
reset_params();
return;
}

const auto get_name = [](auto&& lyt_ptr) -> std::string { return fiction::get_name(*lyt_ptr); };

const auto clustercomplete = [this, &get_name](auto&& lyt_ptr)
{
using Lyt = typename std::decay_t<decltype(lyt_ptr)>::element_type;

if constexpr (fiction::has_sidb_technology_v<Lyt>)
{
if constexpr (fiction::is_charge_distribution_surface_v<Lyt>)
{
env->out() << fmt::format(
"[w] {} already possesses a charge distribution; no simulation is conducted",
get_name(lyt_ptr))
<< std::endl;
}
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
else
{
params.physical_parameters = physical_params;

sim_result = fiction::clustercomplete(*lyt_ptr, params);

if (sim_result.charge_distributions.empty())
{
env->out() << fmt::format("[e] ground state of {} could not be determined", get_name(lyt_ptr))
<< std::endl;
}
else
{
const auto min_energy_distr = fiction::minimum_energy_distribution(
sim_result.charge_distributions.cbegin(), sim_result.charge_distributions.cend());

min_energy = min_energy_distr->get_system_energy();

store<fiction::cell_layout_t>().extend() =
std::make_shared<fiction::cds_sidb_cell_clk_lyt>(*min_energy_distr);
}
}
}
else
{
env->out() << fmt::format("[e] {} is not an SiDB layout", get_name(lyt_ptr)) << std::endl;
}
};

std::visit(clustercomplete, s.current());

reset_params();
}

private:
/**
* Physical parameters for the simulation.
*/
fiction::sidb_simulation_parameters physical_params{2, -0.32, 5.6, 5.0};
/**
* ClusterComplete parameters.
*/
fiction::clustercomplete_params params{};
/**
* Simulation result.
*/
fiction::sidb_simulation_result<fiction::sidb_cell_clk_lyt> sim_result{};
/**
* Minimum energy.
*/
double min_energy{std::numeric_limits<double>::infinity()};
/**
* Logs the resulting information in a log file.
*
* @return JSON object containing details about the simulation.
*/
[[nodiscard]] nlohmann::json log() const override
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
{
try
{
return nlohmann::json{{"Algorithm name", sim_result.algorithm_name},
{"Simulation runtime", sim_result.simulation_runtime.count()},
{{"Simulation parameters",
{"Physical parameters",
{{"base", sim_result.physical_parameters.base},
{"epsilon_r", sim_result.physical_parameters.epsilon_r},
{"lambda_tf", sim_result.physical_parameters.lambda_tf},
{"mu_minus", sim_result.physical_parameters.mu_minus}}},
{"validity witness partitioning limit",
std::any_cast<uint64_t>(sim_result.additional_simulation_parameters.at(
"validity_witness_partitioning_limit"))}}},
{"Ground state energy (eV)", min_energy},
{"Number of stable states", sim_result.charge_distributions.size()}};
}
catch (...)
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
{
return nlohmann::json{};
}
}
/**
* Resets the parameters to their default values.
*/
void reset_params()
{
physical_params = fiction::sidb_simulation_parameters{3, -0.32, 5.6, 5.0};
params = {};
}
};

ALICE_ADD_COMMAND(clustercomplete, "Simulation")
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved

} // namespace alice

#endif // FICTION_ALGLIB_ENABLED

#endif // FICTION_CMD_CLUSTERCOMPLETE_HPP
1 change: 1 addition & 0 deletions cli/commands.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@

// physical simulation commands
#ifdef FICTION_SIMULATION_FLOW
#include "cmd/simulation/clustercomplete.hpp"
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
#include "cmd/simulation/opdom.hpp"
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
wlambooy marked this conversation as resolved.
Show resolved Hide resolved
#include "cmd/simulation/quickexact.hpp"
#include "cmd/simulation/quicksim.hpp"
Expand Down
5 changes: 3 additions & 2 deletions docs/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -2384,8 +2384,9 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

PREDEFINED = "FICTION_Z3_SOLVER=1," \
MUGEN=1
PREDEFINED = FICTION_Z3_SOLVER=1, \
MUGEN=1, \
FICTION_ALGLIB_ENABLED=1

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
Expand Down
21 changes: 20 additions & 1 deletion docs/algorithms/sidb_simulation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,14 @@ Exhaustive Ground State Simulation
:members:
.. doxygenfunction:: fiction::quickexact

.. _clustercomplete:

**Header:** ``fiction/algorithms/simulation/sidb/clustercomplete.hpp``

.. doxygenstruct:: fiction::clustercomplete_params
:members:
.. doxygenfunction:: fiction::clustercomplete

**Header:** ``fiction/algorithms/simulation/sidb/exhaustive_ground_state_simulation.hpp``

.. doxygenfunction:: fiction::exhaustive_ground_state_simulation
Expand All @@ -60,7 +68,6 @@ Engine Selectors
.. doxygenenum:: fiction::sidb_simulation_engine
.. doxygenenum:: fiction::exhaustive_sidb_simulation_engine


Energy Calculation
##################

Expand Down Expand Up @@ -119,6 +126,18 @@ Maximum Defect Influence Distance
.. doxygenfunction:: fiction::maximum_defect_influence_position_and_distance


Ground State Space Construction
###############################

.. _ground_state_space:

**Header:** ``fiction/algorithms/simulation/sidb/ground_state_space.hpp``

.. doxygenstruct:: fiction::ground_state_space_result
:members:
.. doxygenfunction:: fiction::ground_state_space


Time-to-Solution (TTS) Statistics
#################################

Expand Down
Loading
Loading