Le 06/09/2012 09:56, Gabriele Fatigati a écrit :
Hi Brice, hi Jeff,
you add some printf inside hwloc_linux_set_area_membind() in
src/topology-linux.c to see if ENOMEM comes from the mbind
>syscall or not?
I added printf
inside that function, but ENOMEM does not come from there.
Not from hwloc_linux_set_area_membind()
at all? Or not from mbind?
>Have you run your application through valgrind or another
I tried with valgrind :
valgrind --track-origins=yes --log-file=output_valgrind
--leak-check=full --tool=memcheck --show-reachable=yes
==25687== Warning: set address range perms: large range
[0x39454040, 0x2218d4040) (undefined)
==25687== Valgrind's memory management: out of memory:
==25687== newSuperblock's request for 4194304 bytes
==25687== 34253180928 bytes have already been
==25687== Valgrind cannot continue. Sorry.
There's really somebody allocating way too much memory here.
You should reduce your array size so that it doesn't fail, and then
run valgrind again to check if somebody is allocated a lot of memory
without ever freeing it.
I attach the full output.
The code dies also using OpenMP pure code. Very misteriously.
2012/9/5 Jeff Squyres <email@example.com>
On Sep 5, 2012, at 2:36 PM, Gabriele
Mmm. Probably right.
> I don't think is a simply out of memory since NUMA
node has 48 GB, and I'm allocating just 8 GB.
Have you run your application through valgrind or another
I've seen cases of heap corruption lead to malloc
incorrectly failing with ENOMEM.
Ing. Gabriele Fatigati
SuperComputing Applications and Innovation Department
Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy
+39 051 6171722
g.fatigati [AT] cineca.it
hwloc-users mailing list