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

Multihreading instead of multiprocessing #18

Closed
DarioSimonato opened this issue Jul 21, 2022 · 1 comment
Closed

Multihreading instead of multiprocessing #18

DarioSimonato opened this issue Jul 21, 2022 · 1 comment

Comments

@DarioSimonato
Copy link

Hi there,
Will there ever be a multithreading support instead of the already implemented multiprocess version?
This may be very useful if multiple nodes share a child, and the bound() function makes use of all parents infos.

@ghackebeil
Copy link
Owner

ghackebeil commented Aug 16, 2022

Hi @DarioSimonato, sorry to get back to you so late. No, I haven't put much consideration into multi-threading support as I would expect the objective() and bound() function calls to be inherently CPU bound, which is exactly the type of multi-threaded computation that will not work well with Python (due to the GIL).

With that being said, the TSP examples highlight the use of the NestedSolver to perform additional nested branch-and-bound processing of each node received by a process. There could be some opportunity there to allow an additional level of parallelism at the local CPU-node level (presumably by setting up another MPI communicator heirarchy). However, the NestedSolver only supports serial processing at this time.

@ghackebeil ghackebeil closed this as not planned Won't fix, can't repro, duplicate, stale Nov 29, 2023
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