Running R as a server or in a cluster
Ryan Sheftel wrote:
"There are also many methods available to make R run as a server process listening on a socket or on a cluster. It would be incorrect to simply classify R as a single-threaded application. There is, as Ryan points out, programming effort involved to work in a clustered or multi-core environment, and wrapping R/DCOM with an event-based language is one approach to achieving this, but not the only one." Can you share your favorite method? I would be interested to learn as this is a problem we are facing. If it is proprietary of involved I understand.
I believe in sharing "generally useful" approaches (and code). Trading models are, of course, proprietary. ;) Several groups I know make extensive use of the Rserve package http://cran.r-project.org/src/contrib/Descriptions/Rserve.html The Rserve model fits in well with integration to some other programming language that would drive the interactions and fire off requests to some large server. There is also R.rsp for ASP/JSP like programming: http://cran.r-project.org/src/contrib/Descriptions/R.rsp.html One of the simplest approaches to clustering is to use the snow library: http://cran.r-project.org/src/contrib/Descriptions/snow.html Since this doesn't require a formal cluster. Dirk's Quantian project installs the Mosix cluster and R by default. For true grid/cluster integration, the most advanced set of features I'm aware of is offered by the various Parallel-R libraries, which are used extensively in scientific computing clusters: http://rss.acs.unt.edu/Rdoc/library/taskPR/html/00Index.html Perhaps others on the list will fill us in on approaches I've missed. Regards, - Brian