-
Notifications
You must be signed in to change notification settings - Fork 18
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
Dadac integration alt #107
base: main
Are you sure you want to change the base?
Conversation
Wow!! |
Goodafternoon, I think that ideally the codebase of dadac should be included but when I tried to perform that kind of integration it was not easy to deal with the inclusion of the .so file needed for dadac to run. In the next future moreover, I think I will also ship dadac as a proper package with precompiled binaries. Thank you! |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #107 +/- ##
==========================================
+ Coverage 81.07% 81.17% +0.10%
==========================================
Files 17 17
Lines 3006 3034 +28
==========================================
+ Hits 2437 2463 +26
- Misses 569 571 +2 ☔ View full report in Codecov by Sentry. |
Proposed changes
Optimization of ADP procedure and explicit parallelization of many tasks through openmp.
Types of changes
In the last year (or so) I have been working on my implementation of ADP due to the fact the original one, provided in dadapy was not able to scale well for my use case. Together with the help of @alexdepremia and @lucatornatore I developed a very small library in C (dadaC) which implemented the ADP procedure with the following optimizations:
The implementation has been tested against the one in dadapy and preserves a 1 to 1 match of the results in terms of cluster labels, border indices and densities. A detailed discussion, tests, and benchmarks can be found in the repository of my implementation https://github.com/lykos98/dadaC .
Integration in the library requires minimal modifications of the code to allow the implementation in C to interface with yours, actually it requires to add dadaC as dependency, since dadaC requires to build a small .so file that is then used by an interface in python built with ctypes. I kindly ask you if this can be in line with your development, and I am open to modify my implementation to comply with your conventions if needed.
Thank you for your attention,
let me know your opinion.
F