parfor results core dump

3 visualizaciones (últimos 30 días)
Zoltán Csáti
Zoltán Csáti el 7 de Nov. de 2017
Comentada: Zoltán Csáti el 18 de Nov. de 2017
MATLAB R2015b crashes on 64 bit Linux. I managed to track the cause of failure to this chunk of code
values = cell(1, nElement);
parfor i = 1:nElement
values{i} = element(i).stiffnessMatrix;
end
where element is an object array and I call the stiffnessMatrix method on all of the objects. In practice nElement is very big. The segfault comes from libtbbmalloc.so.2 (now I know that parfor wraps TBB).
Reading on forums, I preloaded the problematic libraries:
export LD_PRELOAD=/usr/local/MATLAB/R2015b/bin/glnxa64/libtbb.so.2:/usr/local/MATLAB/R2015b/bin/glnxa64/libtbbmalloc.so.2
In vain. The same error persists. It seem that TBB cannot allocate memory (for smaller problem, parfor works). Why does it work for the simple for loop and not for the parfor loop? Just before the program crashed, I saw that I have 11 GB of free memory (more than 4 times more than used by the whole operating system).
I tested it on Windows, and it still fails with the same error. Then I tried with a simple for loop, not a parfor loop on both Linux and Windows. On Linux, the error persists but on Windows the for loop version works.
Thanks in advance.
  10 comentarios
OCDER
OCDER el 17 de Nov. de 2017
This does sound like one of the worst case scenario for debugging codes. You might have to contact the authors of the 3rd party MEX codes to find the memory allocation bug. Without looking at all the codes, it'll be hard to pinpoint the issue. This might help with debugging strategies:
Zoltán Csáti
Zoltán Csáti el 18 de Nov. de 2017
Thank you. I may use valgrind/callgrid to profile the mex file. If you write an answer I will accept it. Although my problem persists (it's too vague to be solved immediately), you gave me good advices.

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by