BootstrapParallel error

3 replies [Last post]
neale's picture
Offline
Joined: 07/31/2009

Hi (Michael)

When I run models/nightly/BootstrapParallelNightly.R

I get:

> modelResults <- mxRun(topModel, silent=TRUE, suppressWarnings=F)
Error in checkForRemoteErrors(val) :
5000 nodes produced errors; first error: unused argument(s) (useOptimizer)

Has there been a change which affects this argument?

Cheers
Mike

mspiegel's picture
Offline
Joined: 07/31/2009
Umm, I'm not getting any

Umm, I'm not getting any errors when I run this on the latest OpenMx from the svn trunk. If you are running the script on a cluster, you will have to ensure that the OpenMx version on the interactive node of the cluster is the same as the OpenMx version on the compute nodes of the cluster.

neale's picture
Offline
Joined: 07/31/2009
I took the nuke option wrt

I took the nuke option wrt OpenMx:

mv OpenMx OpenMx.old
svn checkout --username me http://openmx.psyc.virginia.edu/svn OpenMx
cd OpenMx/trunk
sudo make install


run again

same errors (maybe warnings only?) - though it does seem to run ok:

Error in checkForRemoteErrors(val) :
1000 nodes produced errors; first error: unused argument(s) (useOptimizer)
>
> results <- t(omxSapply(modelResults@submodels, getStats))
>
> sfStop()

Stopping cluster

>
> # get rid of bad covergence results
> results2 <- data.frame(results[which(results[,1] <= 1),])
>
> # summarize the results
> means <- mean(results2)
> stdevs <- sd(results2)
> sumResults <- data.frame(matrix(dnr[pStrt:pEnd], 2*nVar, 1,
+ dimnames=list(NULL, "Parameter")))
> sumResults$mean <- means[pStrt:pEnd]
> sumResults$obsStDev <- stdevs[pStrt:pEnd]
> sumResults$meanHessEst <- means[hStrt:hEnd]
> sumResults$sqrt2meanHessEst <- sqrt(2) * sumResults$meanHessEst
>
> omxCheckCloseEnough(sumResults[1,'mean'], 0.8, 0.1)
sumResults[1, "mean"] and 0.8 are equal to within 0.1.
> omxCheckCloseEnough(sumResults[2,'mean'], 0.5, 0.1)
sumResults[2, "mean"] and 0.5 are equal to within 0.1.
> omxCheckCloseEnough(sumResults[3,'mean'], 0.7, 0.1)
sumResults[3, "mean"] and 0.7 are equal to within 0.1.
> omxCheckCloseEnough(sumResults[4,'mean'], 0.0, 0.1)
sumResults[4, "mean"] and 0 are equal to within 0.1.
> omxCheckCloseEnough(sumResults[5,'mean'], 1.00, 0.1)
sumResults[5, "mean"] and 1 are equal to within 0.1.
> omxCheckCloseEnough(sumResults[6,'mean'], 1.00, 0.1)
sumResults[6, "mean"] and 1 are equal to within 0.1.
> omxCheckCloseEnough(sumResults[7,'mean'], 1.00, 0.1)
sumResults[7, "mean"] and 1 are equal to within 0.1.
> omxCheckCloseEnough(sumResults[8,'mean'], 1.00, 0.1)
sumResults[8, "mean"] and 1 are equal to within 0.1.
>
> detach("package:snowfall")
> detach("package:snow")
> traceback()
8: stop(count, " nodes produced errors; first error: ", firstmsg)
7: checkForRemoteErrors(val)
6: dynamicClusterApply(cl, fun, length(x), argfun)
5: clusterApplyLB(sfGetCluster(), x, fun, ...)
4: sfClusterApplyLB(x, fun, ...)
3: omxLapply(independents, mxRun, intervals = intervals, silent = silent,
suppressWarnings = suppressWarnings, unsafe = unsafe, checkpoint = checkpoint,
useSocket = useSocket, onlyFrontend = onlyFrontend, useOptimizer = useOptimizer)
2: runHelper(model, frontendStart, intervals, silent, suppressWarnings,
unsafe, checkpoint, useSocket, onlyFrontend, useOptimizer)
1: mxRun(topModel, silent = TRUE, suppressWarnings = TRUE)

One thing that's a bit odd though. When it is running mxRun step, I only seem to see one R process. When it summarizes results it seems to use 4 (as desired on new Macbook Pro). I had to increase the nReps to some 100,000 to see this behavior. So it looks like

modelResults <- mxRun(topModel, silent=TRUE, suppressWarnings=TRUE)

Uses 1 processor, whereas

results <- t(omxSapply(modelResults@submodels, getStats))

uses 4.

rgore's picture
Offline
Joined: 01/27/2011
Hi Mike, That looks like

Hi Mike,
That looks like its related to an edit we made to the code last week. I'll look into it and get back to you soon. Thanks!

Ross