Hi Tomas,

That's fine for me, and you're right about simplicity. Moreover, the current wrapper is already working that way, meaning no additional work (for that part) ;)
Note: I made some fixes related to the issue you submitted earlier.

https://sourceforge.net/p/mzmine/code/HEAD/tree/branches/gboaglio-experimental/target/MZmine-2.11-EEE-release-20141210.zip

Cheers
Gauthier



On 12/10/2014 02:18 PM, Tomas Pluskal wrote:
Hi Gauthier,

I would prefer to keep things simple and always instantiate Rserve when the task is started. I understand that will cause some delay, but honestly I think the delay of a few seconds does not matter so much. The task processing itself probably takes much longer time, so the initial delay will not make much difference.

Cheers,

Tomas



On Wed, Dec 10, 2014 at 8:04 PM, Gauthier Boaglio <gauthier.boag...@gmail.com <mailto:gauthier.boag...@gmail.com>> wrote:

    Hi Tomas,

    Thanks for the feedback. The screen below, I think, results from
    attempting to kill a WAITING task. In windows case, the instance
    is net yet started (contrarily to its RSessionWrapper related
    object) when canceling, so killing it won't work (we even don't
    have its PID yet). Presumably easy to fix.

    One last thing I was wondering about: Have you noticed a 'too
    long' starting lag, while running many task at once under Windows?
    If this is the case, don't you think, one could - in Windows case
    only - warmup a certain amount of asleep instances that could be
    reused (never closed again) when R requests are thrown? That would
    speed up significantly processing the request. The drawback would
    be having N Rserve instances/processes (even if they are sleeping)
    remaining open all along the life time of the MZmine instance
    itself. So the question is: Is this acceptable to have those (lets
    say nbCores or nbCores/2) child processes alive on the machine,
    all along? Or shall we preferably deal with the possibly 'quite
    long' instantiation time, each time we ask for a new R depending
    Task (since the current implementation closes the Rserve instance
    related to a given Task, once the Task is done)?

    Implementation would become:
    * One 'RSessionWrapper' object per task, and dying with the Task.
    * Several (pooling system) 'Rsession' objects / Rserve asleep
    process - from 'Rsession' library, kept alive and registered for
    later call (that is: re-linkable with a new 'RSessionWrapper').

    Note: Personally, I'm not a big fan of spawning many system
    processes that way (threads are OK, but processes...), but may be
    this is a common acceptable practice (I don't know much about that).

    Hope I made myself clear enough.

    Thanks for your lights and advices.
    Cheers
    Gauthier




    On 12/10/2014 02:40 AM, Tomas Pluskal wrote:
    Hi Gauthier,

    First, I'd like to have feedback about the behavior of this new
    Rserve wrapper under Windows, since it is the part that bugged
    me mostly. As mentioned in a previous message, on this system,
    forking processes is not a native behavior, so 'emulating' such
    a feature under Windows is a bit tricky, and, as a consequence,
    throwing a task requiring Rserve (AKA Rserve) in combo (so
    several tasks, on several files) needs some sort of
    synchronization and can be slow and (may be) not so thread safe
    (normally I made it safe, but still need more feedback, just to
    make sure). Same thing when canceling several tasks at once.
    So thanks very much for testing it (the baseline module
    actually), having the above in mind.


    I noticed some error messages when canceling tasks:
    (note it says pid '-1', and also Failed loading package 'ptw',
    although this package is installed and working fine.


    I agree providing the R services to other modules via a
    specialized module is the right way to do. I would suggest, even
    more, to create an MZmine*R*Module, the modules requiring the R
    services would inherit from. This way would provide an easy way
    to distinguish those modules among the others (which would
    certainly ease the development at some point). What do you think
    about this approach?

    Sure, why not.


    Testing 'R_HOME' detection at startup is good idea too. I would
    suggest, in case MZmine couldn't find R_HOME right away by
    itself, to make it open the preference window on the fly and ask
    the user to give a correct setting for it, or preferably, may
    be, warn him that R_HOME ain't OK and give him a chance to fix
    it (YES/NO warning dialog which would open the preferences setup
    dialog if YES was pressed). Would you be fine with the latter
    approach?

    That is fine, but this dialog should be shown only when the user
    attempts to run a method that requires R (not at MZmine startup).


    As said in the very beginning of this text, Windows does not
    really start Rserve just once and then fork the main instance
    when an R request has to be evaluated. It starts a new fresh
    Rserve (master instance) every time (well, once per Task,
    actually). That is to say, starting Rserve at MZmine
    startup/warmup is the elegant and efficient way of doing under
    *nix, but it will slow down the whole application startup,
    especially under Windows. Does it sounds acceptable to you? (I
    don't have a predefined personal opinion about that particular
    point. But this can be a drawback for those who do not have a
    war machine as a computer).

    OK then, it is not necessary to start Rserve on MZmine startup,
    we can start it separately for each task.


    [Tomas]: I am not sure about my understanding of your latest
    suggestion: "Eventually, we can change the existing modules that
    use R to take advantage of this new module, and finally we can
    remove the JRI interface".
    Did you mean to do things step by step like:
    1/ implement the said new module and startup checking
    2/ make the targeted modules use it (keeping JRI as a fallback
    feature)
    3/ later remove JRI
    Or, did you mean:
    1/ implement the said new module and startup checking
    2/ make the targeted modules use it and remove JRI in the meantime
    ?

    I meant the second option. I would like to have only one R
    backend in MZmine.

    Cheers,

    Tomas


    ===============================================
    Tomas Pluskal
    G0 Cell Unit, Okinawa Institute of Science and Technology
    Graduate University
    1919-1 Tancha, Onna-son, Okinawa 904-0495, Japan
    WWW: https://groups.oist.jp/g0
    TEL: +81-98-966-8684 <tel:%2B81-98-966-8684>
    Fax: +81-98-966-2890 <tel:%2B81-98-966-2890>



    
------------------------------------------------------------------------------
    Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
    from Actuate! Instantly Supercharge Your Business Reports and Dashboards
    with Interactivity, Sharing, Native Excel Exports, App Integration & more
    Get technology previously reserved for billion-dollar corporations, FREE
    http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk


    _______________________________________________
    Mzmine-devel mailing list
    Mzmine-devel@lists.sourceforge.net  
<mailto:Mzmine-devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/mzmine-devel


-- Gauthier BOAGLIO
    CEFE - UMR 5175
    1919 route de Mende
    F-34293 Montpellier cedex 5

    Tel:+33/0 4 67 61 32 15  <tel:%2B33%2F0%204%2067%2061%2032%2015>
    Fax:+33/0 4 67 61 33 36  <tel:%2B33%2F0%204%2067%2061%2033%2036>

    email:gauthier.boag...@cefe.cnrs.fr  <mailto:gauthier.boag...@cefe.cnrs.fr>
    
www:http://www.cefe.cnrs.fr/en/evolutionary-ecology-and-epidemiology/gauthier-boaglio
            http://www.evolepid.org/people.php?name=boaglio




------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk


_______________________________________________
Mzmine-devel mailing list
Mzmine-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mzmine-devel


--
Gauthier BOAGLIO
CEFE - UMR 5175
1919 route de Mende
F-34293 Montpellier cedex 5

Tel: +33/0 4 67 61 32 15
Fax: +33/0 4 67 61 33 36

email: gauthier.boag...@cefe.cnrs.fr
www:   
http://www.cefe.cnrs.fr/en/evolutionary-ecology-and-epidemiology/gauthier-boaglio
       http://www.evolepid.org/people.php?name=boaglio

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
Mzmine-devel mailing list
Mzmine-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mzmine-devel

Reply via email to