Hi,
Is anybody running ImageJ with multicore processors in linux? I have a quadcore machine running suse linux where the Convolver fails intermittently and gives errors. Has anybody else seen this? Wayne suggested that this may be a JIT compiler error (if run with the JIT compiler off, the error does not take place). Regards, Gabriel |
On Tuesday 21 August 2007, you wrote:
> Does the problem go away if you set "Parallel Threads for Stacks" in > Edit>Options>Memory & Threads to 1? What are the error messages you get > when the Convolver fails? testing with today's latest build (1.39d) in Java 1.5.0_12, no it does not go away: running the convolver directly gives: java.lang.ArrayIndexOutOfBoundsException run("Lena (68K)"); run("Convolve...", "text1=[0 -1 0\n-1 4 -1\n0 -1 0\n] normalize"); a few times gave this: java.lang.ArrayIndexOutOfBoundsException: 9 at ij.plugin.filter.Convolver.convolveFloat(Convolver.java:232) at ij.plugin.filter.Convolver.convolve(Convolver.java:173) at ij.plugin.filter.Convolver.run(Convolver.java:55) at ij.plugin.filter.PlugInFilterRunner.processOneImage(PlugInFilterRunner.java:231) at ij.plugin.filter.PlugInFilterRunner.<init>(PlugInFilterRunner.java:102) at ij.IJ.runPlugIn(IJ.java:133) at ij.Executer.runCommand(Executer.java:95) at ij.Executer.run(Executer.java:49) at java.lang.Thread.run(Thread.java:595) Sometimes, the convolver works fine, but once it starts giving errors, it does not work anymore. Wayne suggested switch off the JIT compiler with the option -Xint and this avoids the problem (at the expense of a significant drop in processing speed). Today 1.6.0 seems fine but a couple of weeks ago I got errors in 1.6.0 too. I just came across a jdk 1.7 http://download.java.net/jdk7/binaries/ Has anybody tried this? Regards, Gabriel |
Using ImageJ 1.39d on SuSE 10.2 with an Intel Core Duo and I don't
seem to have any problem with the convolver. I ran the macro you provided about 10 times and nothing happened. How often do you see the error? Justin 8/21/07, Gabriel Landini <[hidden email]> wrote: > On Tuesday 21 August 2007, you wrote: > > Does the problem go away if you set "Parallel Threads for Stacks" in > > Edit>Options>Memory & Threads to 1? What are the error messages you get > > when the Convolver fails? > > testing with today's latest build (1.39d) > in Java 1.5.0_12, no it does not go away: > > running the convolver directly gives: > > java.lang.ArrayIndexOutOfBoundsException > > run("Lena (68K)"); > run("Convolve...", "text1=[0 -1 0\n-1 4 -1\n0 -1 0\n] normalize"); > > a few times gave this: > > java.lang.ArrayIndexOutOfBoundsException: 9 > at ij.plugin.filter.Convolver.convolveFloat(Convolver.java:232) > at ij.plugin.filter.Convolver.convolve(Convolver.java:173) > at ij.plugin.filter.Convolver.run(Convolver.java:55) > at > ij.plugin.filter.PlugInFilterRunner.processOneImage(PlugInFilterRunner.java:231) > at > ij.plugin.filter.PlugInFilterRunner.<init>(PlugInFilterRunner.java:102) > at ij.IJ.runPlugIn(IJ.java:133) > at ij.Executer.runCommand(Executer.java:95) > at ij.Executer.run(Executer.java:49) > at java.lang.Thread.run(Thread.java:595) > > Sometimes, the convolver works fine, but once it starts giving errors, it does > not work anymore. > > Wayne suggested switch off the JIT compiler with the option -Xint > and this avoids the problem (at the expense of a significant drop in > processing speed). > > Today 1.6.0 seems fine but a couple of weeks ago I got errors in 1.6.0 too. > > I just came across a jdk 1.7 http://download.java.net/jdk7/binaries/ > Has anybody tried this? > > Regards, > > Gabriel > |
On Friday 24 August 2007, Justin McGrath wrote:
> Using ImageJ 1.39d on SuSE 10.2 with an Intel Core Duo and I don't > seem to have any problem with the convolver. I ran the macro you > provided about 10 times and nothing happened. How often do you see > the error? Hi Justin, Very often, after running the macro 2 or 3 times. However version 1.39d (the one you are using now) includes a strange hack that prevents the code to give the error. More specifically the new code (1 line) just checks whether the indexes of the kernel values are larger than the expected value when processing the borders of the image: if (i>=kernel.length) IJ.log("filter kernel index error: "+i); I do not know why this prevents the error, but my guess is that it may change the execution sequence in the JIT compiler. (BTW the error message is never printed to the log window). Thanks for checking! Gabriel |
Free forum by Nabble | Edit this page |