[R-gui] Interfaces between GUIs and R

Philippe Grosjean phgrosjean at sciviews.org
Fri Apr 4 15:24:01 MEST 2003


Thomas Baier wrote:
>Philippe,
>Byron,

>> -----Ursprüngliche Nachricht-----
>> Von: Philippe Grosjean [mailto:phgrosjean at sciviews.org]
>> Gesendet: Donnerstag, 03. April 2003 09:11
>> An: Byron Ellis
>> Cc: R-sig-gui at 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



More information about the R-SIG-GUI mailing list