X-Git-Url: https://git.auder.net/?p=valse.git;a=blobdiff_plain;f=pkg%2FR%2FselectVariables.R;h=4e9b374c26e950aa560d2faa12cf7eac2717c0c8;hp=b4fc0abbcc02e8634671cadfb7591777904d8926;hb=b9b0b72a2c8f7f0d1a3216528aefcec0a92c6c99;hpb=4e8267487c83c27273305b1379e44bc7abebf4b5 diff --git a/pkg/R/selectVariables.R b/pkg/R/selectVariables.R index b4fc0ab..4e9b374 100644 --- a/pkg/R/selectVariables.R +++ b/pkg/R/selectVariables.R @@ -14,6 +14,7 @@ #' @param Y matrix of responses #' @param thres threshold to consider a coefficient to be equal to 0 #' @param tau threshold to say that EM algorithm has converged +#' @param ncores Number or cores for parallel execution (1 to disable) #' #' @return a list of outputs, for each lambda in grid: selected,Rho,Pi #' @@ -22,18 +23,18 @@ #' @export #' selectVariables = function(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,glambda, - X,Y,thresh,tau, ncores=1) #ncores==1 ==> no // + X,Y,thresh,tau, ncores=3) { if (ncores > 1) { - cl = parallel::makeCluster(ncores) + cl = parallel::makeCluster(ncores, outfile='') parallel::clusterExport(cl=cl, varlist=c("phiInit","rhoInit","gamInit","mini","maxi","glambda","X","Y","thresh","tau"), envir=environment()) } # Calcul pour un lambda - computeCoefs <-function(lambda) + computeCoefs <- function(lambda) { params = EMGLLF(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,lambda,X,Y,tau) @@ -54,7 +55,8 @@ selectVariables = function(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,glambd out <- if (ncores > 1) parLapply(cl, glambda, computeCoefs) - else lapply(glambda, computeCoefs) + else + lapply(glambda, computeCoefs) if (ncores > 1) parallel::stopCluster(cl)