You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I would instead take the approach of trying to determine the computer's host name, e.g., via Sys.info()["nodename"] (but I'm forgetting something about when this fails...), perhaps as part of a unique id, e.g., ipcid(Sys.info()["nodename"]). This would be useful if, for instance, there were both local and and non-local processes in a socket cluster.
I also sketched out a distributed lock using httpuv, where the 'server' would run in one process (e.g., on the host machine) and the 'client' in separate processes. It can be tested by sourcing the server in one R instance, and sourcing the client in another. It would not be hard to further wrap this so that the runServer() command was started in a forked (via mcparallel()) or spawned (by starting a SNOW cluster of size 1 and evaluating there) or maybe using the later paradigm from httpuv. The challenge here is that this would be difficult to make robust -- e.g., the server has to be able to listen on particular ports, and the clients need to talk over those ports, but maybe that robustness is required in at least some of the back-ends.
It can be helpful to know if the backend is single-machine (e.g., Bioconductor/DelayedArray#20 (comment)). From reading Section 4.1 'Single machine' of http://bioconductor.org/packages/devel/bioc/vignettes/BiocParallel/inst/doc/Introduction_To_BiocParallel.pdf, I derived the following:
I can't quite figure out the logic for DoparParam. Could something like this be added to BiocParallel?
The text was updated successfully, but these errors were encountered: