Hi everyone,

A few (minor?) remarks about Tomas suggestions:

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 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?

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?

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).

[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
?

Just asking this because keeping JRI, in an early implementation, forces us to keep, AFAIK, all R related environment variables in the startup script...
Well, thanks for reading that far too long piece of text.

Regards
Gauthier


On 12/09/2014 05:53 AM, Tomas Pluskal wrote:
Hi Gauthier,

I briefly tested your new release and it works fine for me, without any effort spent on configuration. I think now would be a good time to replace the JRI interface with RServe in the trunk. My suggestion would be to create a new module (implementing MZmineModule) that would provide the R-related services to other modules.
This module can also start RServe during MZmine startup.
The R_HOME settings could be moved to the mzmine Preferences dialog (instead of the startMZmine script), with auto-detection by default. 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.

Please update your sources before committing any changes to the trunk, as there has been lots of changes lately.

Cheers,

Tomas

PS: I have not had the time to really test Renjin, but I think you are right that having the full power of R is an advantage for future development, so RServe might be better option in that sense


On Dec 9, 2014, at 11:53, Gauthier Boaglio <gauthier.boag...@gmail.com <mailto:gauthier.boag...@gmail.com>> wrote:

Hi all,

As promised, I released a first quite advanced (burn proof enough, just
hopping for now) for an 'Rserve wrapper'. Keeping it handy and with good
performances under Windows gave me quite a hard time, but I hope this
first attempt is a minimum satisfying. You'll tell me...

Rserve impl. change log:

-----------------------

[Still limited to the 'BaselineCorrectionModule' area - Backward compatibility with 'JRI' preserved]

* 'R_HOME' detection: If not found automatically, R_HOME must be set (from startMZmine script).

* Dedicated exception handling (R, Rserve or required package not found, mostly via the 'RSessionWrapperException').

* Fixed some windows specifics (multi-instance open(), close(), cancel(), bruteCancel()...).

* Cleaned console logging and GUI errors feedback.

* Cleanup everything related to 'Rserve' on MZmine exit.

* Cleaned up source code and comments.

* Removed completely RCaller stuffs.

* Still can choose preferred R engine among JRIengine and Rserve.


Release download location:

-------------------------

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

Thanks by advance for your feedback.
Cheers
Gauthier


--
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