-
Notifications
You must be signed in to change notification settings - Fork 251
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
SCIPsolverConcurrent implementation from issue #229 #535
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
Thank you for your contribution!
It seems that the cython extensions need to be recompiled for the the new function in scip.pyx to be accessible. I don't think I have that ability, but happy to help however I can. |
Another fortunate side effect of your contribution was that we realized that our CI actions did not run on PRs. So, this is also fixed now (#536). You may have seen from the other PR #537 that concurrent optimization is only possible when compiling SCIP with a TPI (task processing interface) - this is not included in the default installer package. |
Thanks for your help fixing that PR. Is there any guide on how to compile SCIP with a TPI? I have attempted to compile SCIP (and then install pySCIPOpt from local source with the compile flag). However, I haven't seen any documentation on the TPI aspect. A second, potentially, more relevant question is: Is it feasible to create an extra with pySCIPOpt that includes a TPI? For example (using PIP instead of conda to more clearly show the [extra] aspect). pip install pySCIPOpt[TPI] I would be happy to help develop this, but I will need some guidance. |
@CGraczyk can you assist here, please? |
Regarding the installation of SCIP with TPI, there is a compile option (see bottom of the table here whereby tny stands for TinyCThread and omp for OpenMP. If you have more trouble with SCIP with TPI feel free to ask in the SCIP mailing list (have a look at this). Regarding the developement of an extra i am not sure, what would be the goal here when using this? Maybe i am missing the point here since i dont know enough about parallel processing. |
@CGraczyk Thank you for sharing those new resources. I will make sure I look into them. The purpose of developing an extra, in my opinion, would be to take advantage of the concurrent and parallel solving capability of SCIP (https://www.scipopt.org/doc-5.0.1/html/CONCSCIP.php). However, I don't know if an extra is the appropriate method for this. Specifically, I am looking into seeing if using the parallel/{max/min}nthreads parameter will help my MIP problem solve faster. I believe having the parallel and concurrent options available through an extra could be a way to make sure the current version of PySCIPOpt remains stable while still allowing for more "experimental" options for those interested. Happy to discuss this further and figure out what (if any) way is appropriate. |
Hello, I am encountering problem when calling model.solveConcurrent() leading to segmentation fault. I was trying to analyse where the problem is, but no success. |
Most of this code was thanks to @fserra from issue #229.
Hopefully, this will help support Concurrent pySCIPOpt