-
Notifications
You must be signed in to change notification settings - Fork 0
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
Adding lock to control experiment creation during multiprocessing #36
Conversation
Since this PR introduces locks, I am wondering what the impact might be on the parallelization of the machine learning tasks it is tracking. Is it possible that by stealing control, MLJFlow.jl essentially prevents otherwise parallel threads from actually executing simultaneously? Be great to see a benchmark showing this is not likely (e.g., using this MLJTuning branch. Can provide guidance with that. |
517b505
to
70c458b
Compare
In this branch, I implemented a |
Great to see some progress there. Does this exploration mean the current PR indeed "locks out" the parallelization? I still wonder if it's more natural to implement the buffering at MLFlowClient.jl, as suggested in my POC. Sorry I haven't had time to flush that out to full blown PR. |
I don't agree with adding this thread-safe "tweaks" into BenchmarksChannel-oriented approach:
Mutex-oriented approach:
|
70c458b
to
4ce8725
Compare
Closing in favor of #41 |
This PR adds tests required by #25, but also solves the issue presented in JuliaAI/MLFlowClient.jl#40.
Using
julia --threads 5
, each thread will continue its own processing until reaches thelog_evaluation
function. In that step, alock
(mutex) will turn the entire process into a sync one ensuring thread-safeness.Feature diagram: