IdentifySecondaryPropagate crashes



there is a CPCluster issue I would like to ask you about.
Compiling and using CP on a cluster has never been a problem. However, after I started using the “propagate option” of IdentifySecondaryObjects some nodes of the cluster keep crashing, others not (I am using CP as downloaded in december 07, compiling uses Matlab 7.3 I believe).

please find below the outputfile which contains the CP output. It seem that on some nodes IdentifySecPropagateSubfunction.mexa64 is not a valid mex-file because of some library issue. In order to look into these library issues, we would need to know exactly what to look for. Do you have any specific suggestions?

Besides, is there a workaround which uses a Matlab algorithm which avoids the cpp propagate subfunction?

error message:
Warning: Unable to open display :0.0
, MATLAB is starting without a display.
You will not be able to display graphics on the screen.
??? Invalid MEX-file ‘/MYCLUSTERPATH/CPCluster_mcr/Modules/IdentifySecPropagateSubfunction.mexa64’: /usr/local/apli/matlab2006b/bin/glnxa64/…/…/sys/os/glnxa64/ version `GCC_4.2.0’ not found (required by /usr/lib64/

Error in ==> CPCluster at 33

Developer Notes
IdentifySecondary Error

I hope one of the other developers can assist you, but my naive guess is that you need to compile the Propagate subfunction itself on each type of computer architecture on your cluster - apparently some nodes are different than others (maybe 64-bit vs 32-bit?). Sometimes a cluster is set up so you can send your jobs to only one type of node by using a special queue, as a temporary workaround.

Propagate is a special algorithm we’ve written for cell images (Jones TR, Carpenter AE, Golland P (2005) Voronoi-based segmentation of cells on image manifolds - paper on so there is no corresponding MATLAB function. It’s something that makes CellProfiler unique, but it does require a little extra work when using unusual computer hardware!



We are not currently supporting Matlab 2007b, only Matlab 2007a for the present, for either CellProfiler or CPCluster. So that may be your problem, but it’s not totally clear to me. Tomorrow I’ll check to see if anybody in our group has tried compiling and running 2007b, but in any case I know we haven’t tested it fully. In the meantime, if you have access to matlab2007a on your cluster, give that a try.

Be sure to check the download page for the Matlab version that we’re currently supporting. We don’t have an ETA yet on our 2007b support.



To comment further on David’s note, we are not currently planning on upgrading to 2007b just yet. However, Matlab 7.3 refers to 2006b, which we also no longer support. In early May 2007, we upgraded to 2007a from 2006b. For CellProfiler users that download any the compiled versions, we specifically compile MEX files for the propagate subfunction for IdentifySecondary. Since this subfunction was compiled under 2007a, it will not be compatible with other versions. More over, you may be interested in reading about the upgrades to in 2007a here: … .html#List .

As a way for you to continue using CellProfiler, all you need to do is type:
cd (the directory where the Modules are stored on your computer)
mex -setup (then choose Microsoft Visual C++)
mex - IdentifySecPropagateSubfunction.cpp

The mex file should compile. When it is successful, go ahead and recompile CellProfiler (using the mcc command). Note: if your cluster is using a different OS than your desktop, you will need to recompile the IdentifySecPropagateSubfunction.cpp file, as well.



Indeed, I misread ‘2006b’ for ‘2007b’ in the error message.

Good luck,