comodin19 / BayesVarSel

BayesVarSel: R package to calculate Bayes factors, model choice and variable selection in linear models
8 stars 5 forks source link

Problems with parallel #2

Closed gongardo closed 7 years ago

gongardo commented 7 years ago

Anabel reportó que el paralelo le cuesta mucho tiempo. Aquí está el código que le daba problemas (corrido en una mac de 64bits)

p27 <- read.table("./ReturnsSchooling.txt",header=FALSE,skip = 30)

p27 <- p27[,-8]

names(p27) <- c("y","Educ","Urban","Exp","Exp^2","NE","NC","S","Ability","Father_E","Mother_E","Married","I(E>=12)","I(E>=16)","E(E>=12)","E(E>=16)","E*A","A(E>=12)","A(E>=16)","E*F_E","E*M_E","E*NC","E*N","E*S","E*Urban","E*Unemp","Unemploy") 

object<- PBvs(formula="y~.", data=p27, prior.betas="gZellner", n.keep=10,time.test=F,prior.models = "Constant",n.nodes = 4)

ReturnsSchooling.txt

carlosvergara commented 7 years ago

Lo he probado en el servidor, tanto en la versión secuencial (BayesVarSel::Bvs()) como en paralelo con 40 núcleos (BayesVarSel::PBvs()), y todo parece correcto: la reducción de tiempo con la ejecución en paralelo entra dentro de lo razonable dada la cantidad de variables.

Concretamente, la versión secuencial (un núcleo) costó 10.81 horas, mientras que la versión en paralelo (cuarenta núcleos) se resolvió en 43 minutos. Las características del servidor son:

Aunque la mejora pueda parecer pequeña (unas 15 veces más rápido y no 40), creo que es lo que cabría esperar como consecuencia de los overheads de comunicación entre nodos.