-
Notifications
You must be signed in to change notification settings - Fork 1.4k
TMVA MultiProcessing #858
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
TMVA MultiProcessing #858
Conversation
|
Can one of the admins verify this patch? |
|
@phsft-bot build |
|
Starting build on |
|
Hi Mammad, Can you please update your Pull request with the fixes for the formatting (clang-format) and also Thank you Lorenzo |
150aaf6 to
bc679f6
Compare
bc679f6 to
691f6cd
Compare
|
@phsft-bot build |
|
Starting build on |
ashlaban
left a comment
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.
Hi, Thanks for your hard work Mammad! I include some general comments on how to improve the code and better integrate it into TMVA.
I didn't go through every line, so some comments might be applicable to more places than I indicated :)
| }; | ||
| vector<map<TString,Double_t>> res; | ||
| auto nWorkers = TMVA::gConfig().NWorkers(); | ||
| cout << "Number of Workers : " << TMVA::gConfig().NWorkers() << endl; |
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.
These seem like debug print outs, please use Log() << kDEBUG << ... << Endl; for these kind of messages.
| fFomType("Separation"), | ||
| fFitType("Minuit"), | ||
| fNumFolds(5), | ||
| fNumFolds(4), |
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.
Prefer to change as little as possible (makes it easier to merge with other people's work!). I'd keep this as the old value unless there is a good motivation for this change. (This principle applies to more places)
tmva/tmva/inc/LinkDef4.h
Outdated
| #pragma link C++ function TMVA::CreateVariableTransform; | ||
| #pragma link C++ function TMVA::DataLoaderCopy; | ||
|
|
||
| #pragma link C++ function TMVA::DataLoaderCopy; |
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.
Should we also export the DataLoaderMP copy here?
tmva/tmva/src/CrossValidation.cxx
Outdated
| res = workers.Map(workItem, ROOT::TSeqI(fNumFolds)); | ||
| } | ||
|
|
||
| else { |
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.
Use the structure
if () {
...
} else {
...
}
| des->AddBackgroundTree((*treeinfo).GetTree(), (*treeinfo).GetWeight(),(*treeinfo).GetTreeType()); | ||
| } | ||
| } | ||
| std::vector<std::shared_ptr<TFile>> TMVA::DataLoaderCopyMP(TMVA::DataLoader *des, TMVA::DataLoader *src) |
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.
Add some documentation on what the method does, information about assumptions if there are any etc.
tmva/tmva/src/DataLoader.cxx
Outdated
| des->AddBackgroundTree(backgTree); | ||
| vec_files.push_back(sfile); | ||
| vec_files.push_back(bfile); |
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.
Can these commented out lines be removed?
| ClassDef(DataLoader,3); | ||
| }; | ||
| void DataLoaderCopy(TMVA::DataLoader* des, TMVA::DataLoader* src); | ||
| std::vector<std::shared_ptr<TFile>> DataLoaderCopyMP(TMVA::DataLoader *des, TMVA::DataLoader *src); |
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.
Do these need to be public? Would it be better to use private with Envelope as a friend? I think the intention is that only the Envelope should be able to use it. I would then propose that we enforce this. We can always open the interface up later, but not the other way around.
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.
@mammadhajili could you answer the comments of @ashlaban please?
|
@phsft-bot build! |
|
Starting build on |
|
@phsft-bot build! |
|
Starting build on |
|
@phsft-bot build! |
|
You might want to squash or fixup your clang-format commits. |
8ae1c1e to
d34f639
Compare
|
@phsft-bot build |
|
Starting build on |
|
Build failed on ubuntu14/native. Failing tests: |
|
@phsft-bot build |
|
Starting build on |
|
@lmoneta can you take care of this (or close it) |
|
Sorry for the late response. Yes, we'll make sure to follow up on this PR. |
1 similar comment
|
Cross validation has been integrated through a different PR. Remaining are the Hyper param opt and variable importance. It is my understanding however that if we integrate them we do it through new PR’s, indicating that this PR can be closed. I will make sure to update the PR after discussion with Lorenzo during next week. |
|
These changes will be implemented in separate PR's. |
Mulltiprocessing of Hyper Parameter Optimisation, Cross Validation and Variable Importance