[R-gui] Interfaces between GUIs and R
Thomas Baier wrote:
Philippe, Byron,
-----Ursprüngliche Nachricht----- Von: Philippe Grosjean [mailto:phgrosjean@sciviews.org] Gesendet: Donnerstag, 03. April 2003 09:11 An: Byron Ellis Cc: R-sig-gui@stat.math.ethz.ch Betreff: RE: [R-gui] Interfaces between GUIs and R R COM Server SciViews R Plug communication synchronous asynchronous client implementation easy (5 methods) more difficult (callbacks,...) speed of execution ++ + interruptible calc no yes friezes the client(*) yes no concurrent kernels(**) no yes (*) A single threaded client must wait for the completion of the calculation with synchronous evaluation, while it can process other code during evaluation with an asynchronous evaluation (**) As a consequence, an asynchronous evaluation allows simultaneous evaluation in different kernels (some kind of parallelization), while with a synchronous evaluation one can connect to several kernels, but must serialize evaluations in these different kernels.
Please let me add some clarifications: 1. Concurrent kernels are also supported by R COM Server. 2. Concurrent evaluation of different expressions in different kernels is also supported, but one has to do the asynchronous processing by using different threads/processes in the application program. While on expression is evaluated, the COM server blocks. But the COM server does not restrict your client application to a single thread. 3. Different kernels on the same or on different machines can be utilized the same time by the COM server. I assume, this also holds true for SciViews.
We both agree. It is why I wrote "(*) A single threaded client..." There are two different options for parallelization: in the client, or in the server. It is nice to have both options available with: - R COM server: if you want parallelization, you need to program it yourself in your multithreaded client, and - SciViews R Plug: everything is already coded in the server, you can use single threaded client and still get parallelization, interruptible evaluation, etc... but the interface with the server is necessarily more complex. * snip * Best, Philippe