memilio
memilio copied to clipboard
646 use graph model with abms v3
Changes and Information
Please briefly list the changes (main added features, changed items, or corrected bugs) made:
- add node property and edge property class for ABM graph simulation
- add model wrapper for abm that is used for ABM graph simulation and can handle persons that commute to other nodes
- add tests for new functionality
- add graph abm example
Merge Request - Guideline Checklist
Please check our git workflow. Use the draft feature if the Pull Request is not yet ready to review.
Checks by code author
- [x] Every addressed issue is linked (use the "Closes #ISSUE" keyword below)
- [x] New code adheres to coding guidelines
- [x] No large data files have been added (files should in sum not exceed 100 KB, avoid PDFs, Word docs, etc.)
- [x] Tests are added for new functionality and a local test run was successful (with and without OpenMP)
- [x] Appropriate documentation for new functionality has been added (Doxygen in the code and Markdown files if necessary)
- [x] Proper attention to licenses, especially no new third-party software with conflicting license has been added
- [x] (For ABM development) Checked benchmark results and ran and posted a local test above from before and after development to ensure performance is monitored.
Checks by code reviewer(s)
- [ ] Corresponding issue(s) is/are linked and addressed
- [ ] Code is clean of development artifacts (no deactivated or commented code lines, no debugging printouts, etc.)
- [ ] Appropriate unit tests have been added, CI passes, code coverage and performance is acceptable (did not decrease)
- [ ] No large data files added in the whole history of commits(files should in sum not exceed 100 KB, avoid PDFs, Word docs, etc.)
- [ ] On merge, add 2-5 lines with the changes (main added features, changed items, or corrected bugs) to the merge-commit-message. This can be taken from the briefly-list-the-changes above (best case) or the separate commit messages (worst case).
Codecov Report
Attention: Patch coverage is 97.76536% with 8 lines in your changes missing coverage. Please review.
Project coverage is 97.13%. Comparing base (
09ecf79) to head (f3632a7). Report is 1 commits behind head on main.
| Files with missing lines | Patch % | Lines |
|---|---|---|
| cpp/models/abm/model.cpp | 95.65% | 3 Missing :warning: |
| cpp/models/graph_abm/graph_abmodel.h | 96.51% | 3 Missing :warning: |
| cpp/models/abm/model.h | 96.87% | 2 Missing :warning: |
Additional details and impacted files
@@ Coverage Diff @@
## main #1085 +/- ##
========================================
Coverage 97.12% 97.13%
========================================
Files 148 149 +1
Lines 13797 13999 +202
========================================
+ Hits 13401 13598 +197
- Misses 396 401 +5
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Performance Measures: The following are the results of 1 execution of the abm benchmark for a single thread (OMP_NUM_THREADS=1)
Main:
---------------------------------------------------------------------------
Benchmark Time CPU Iterations
---------------------------------------------------------------------------
abm_benchmark/abm_benchmark_50k 3487 ms 3486 ms 1
abm_benchmark/abm_benchmark_100k 7698 ms 7695 ms 1
abm_benchmark/abm_benchmark_200k 15922 ms 15917 ms 1
Graph model v3 branch:
---------------------------------------------------------------------------
Benchmark Time CPU Iterations
---------------------------------------------------------------------------
abm_benchmark/abm_benchmark_50k 3720 ms 3718 ms 1
abm_benchmark/abm_benchmark_100k 7938 ms 7935 ms 1
abm_benchmark/abm_benchmark_200k 16320 ms 16315 ms 1