-
Notifications
You must be signed in to change notification settings - Fork 8
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
readBufferPopTimeout error #104
Comments
I don't really understand how this could be correct. If the concurrency style is created with only that timeout value, and nothing else, it would not be doing any concurrency, and would not be using that part of the code (I think). Is that really all you gave to ConcurrencyStyle? Are you passing that controls object to the apply() function? |
@juan-guerschman can you try running outside of Jupiter? |
yes, sorry, it's all new to me.
what should I try first? Setting concurrency correctly (I'm not sure what else to do). Or try outside of jupyter? |
sorry, actually I do something else, from a code I've seen elsewhere:
I get the error:
but I suspect it's being fixed and done properly? |
Ah, OK, at least this now makes sense. Because of the use of the deprecated setNumThreads & setJobManagerType, it is ignoring the extra ConcurrencyStyle setting. You can't be doing both, so switch to the new one. Delete the controls.setNumThreads and controls.setJobManagerType, and replace with the following
This will do a reasonable job of concurrency, and you will be able to play with the number of read and compute workers to get the optimal performance. When you used the old approach, it made a guess at some parameters, but not a very good guess, which then caused the timeout problem, which you were unable to address because it was ignoring the new concurrency style object. Let me know how that goes. |
@juan-guerschman what are you actually doing? The |
Yes, I agree with all that @gillins says. I had assumed you were using an existing program, but if this is a new program, you should first run it without any concurrency, then, if necessary, slowly work out how to use concurrency to speed it up. |
ok, thanks.
trying with no concurrency would simply be all the same without passing |
Just don't call setConcurrencyStyle at all. The default is no concurrency. Thanks :-) |
Ah yes sklearn is a good example where might conceivably improve with multiple compute workers... Still not sure about multiple read workers. Anyway, see how long it takes without anything. Might be worth printing the report (https://www.rioshome.org/en/latest/concurrency.html#quick-start) so we have something to guide us... |
a small test area, with concurrency:
without:
I'll use concurrency and send my big area |
Thanks @juan-guerschman |
and this is the same process on a larger area:
|
Thanks. I can't really tell anything definite from just these numbers by themselves. As discussed in the doc page, there are so many interactions that the best approach to finding the optimal concurrency parameters is to play with different combinations and see which runs the fastest. From your initial runs without concurrency, it does appear that the compute time is probably more important than the reading time, so I would suggest focusing on that. Given that the files are on a local disk, the operating system will be doing lots of good work with disk cache and so on, and will itself require some CPU time to do its work, so don't have the total number of workers greater than the number of CPU cores on your machine. That can be useful when there is a lot of latency in the input device, but probably not in this situation. Try varying the balance between read and compute workers. Given that the compute time seems large, you may benefit by having more compute workers than read workers, but you will still need some read workers to be able to keep up with the compute. So, try a few different combinations around where you have started, and see what helps. It is always good to have a baseline to compare with, so also do a full run with no concurrency, so you know how long that takes. If you do a run which takes longer than that, then you are heading in the wrong direction. I will close this Issue off now, as I think you are well on the way to understanding how to work with RIOS's new concurrency features. Up to you now to explore what works for this particular problem, on this particular hardware. |
awesome, thanks Neil |
hey, relatively new to rios here.
I am running a process, all files read locally in my laptop.
I set
but I still get the following error:
what could be the problem or how could I fix?
The text was updated successfully, but these errors were encountered: