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

Optimizations / SMP #26

Open
beltiras opened this issue Aug 13, 2016 · 5 comments
Open

Optimizations / SMP #26

beltiras opened this issue Aug 13, 2016 · 5 comments

Comments

@beltiras
Copy link

I just observed an election using this library where the calculation took about an hour to run. We had 105 candidates and rougly 1000 ballots. I'm willing to start to dig into the code to find ways of optimizing. I have experience with using Celery to fork workloads. Is anyone else following the project that has started something similar? Calling for collaboration.

@bradbeattie
Copy link
Owner

Which algorithm were you using? I'm aware of performance issues with SchulzeSTV and SchulzePR. If so, it's not the number of ballots that's causing the slowdown; It's the number of candidates.

My planned first steps were conversion into Python3 and looking at optimization from there. If I recall correctly, both stand to gain a fair amount from parallelization. Pull requests welcome!

@beltiras
Copy link
Author

Understood. I didn't want to do duplication of effort, didn't see a roadmap. Does the Celery plan appeal to you?

@bradbeattie
Copy link
Owner

I'd far prefer not to have external dependencies if at all possible, but if you want to fork a celery branch and work on that, I have no complains. :)

@beltiras
Copy link
Author

Any SMP at all will require at least one dependency. I'd rather use a library you are comfortable with.

@beltiras
Copy link
Author

The algorithm was SchulzePR btw, to answer that question. Run took around 40 minutes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants