[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