Skip to content
Prev 7951 / 21312 Next

[Bioc-devel] timeout on perceval server macos snow leopard

Hi Valerie,

thanks for useful advice. I applied the modifications you suggested, exposing BPPARAM and removing parallel options section. The same change was applied to an internal method of function allPfamAnalysis called lfmSingleSequence so that there are no nested parallel part anymore. I also changed the name of the internal variable allPfamAnalysis so that has not the same name of the function. Finally, I reduced all the parallelizations in vignette and example to a maximum of 2 cores.

The only doubt I have is with this apply:

This is how I wrote it (lines 130-141):
singleSequence <- lapply(allPfamsLM , function(object) {
		if(Sys.info()[['sysname']] == 'Windows') library(LowMACA)
		if(!verbose)
			suppressMessages(lfmSingleSequence(object, metric='qvalue', threshold=.05
				, conservation=conservation , mail=NULL , perlCommand="perl" , BPPARAM=BPPARAM))
		else
			lfmSingleSequence(object, metric='qvalue', threshold=.05
				, conservation=conservation , mail=NULL , perlCommand="perl" , BPPARAM=BPPARAM
				, verbose=TRUE)
		})

In this case the parallelization is inside the lapply and is destined to the lfmSingleSequence method that inherit BPPARAM from the allPfamAnalysis function (e.g. BPPARAM=MulticoreParam(2) ).

I also tried this second version, with external parallelization and forced serialization inside, but since it was slower I dropped it (in my little experience, it is generally faster to parallelize the external layer, but apparently this is not the case):

singleSequence <- bplapply(allPfamsLM , function(object) {
		if(Sys.info()[['sysname']] == 'Windows') library(LowMACA)
		if(!verbose)
			suppressMessages(lfmSingleSequence(object, metric='qvalue', threshold=.05
				, conservation=conservation , mail=NULL , perlCommand="perl" , BPPARAM=bpparam("SerialParam"))
		else
			lfmSingleSequence(object, metric='qvalue', threshold=.05
				, conservation=conservation , mail=NULL , perlCommand="perl" , BPPARAM=bpparam("SerialParam")
				, verbose=TRUE)
		} , BPPARAM=BPPARAM)

A part from speed, what is the best option?


thanks again,

Giorgio
On Sep 4, 2015, at 6:52 PM, Obenchain, Valerie wrote: