nojhan/paradiseo

Initial parallel `full` build uses excessive memory

lehnerpat opened this issue · 0 comments

I just cloned the repo and, following the INSTALL instructions, started doing a full-Type build, i.e. I did

mkdir build
cd build
cmake .. -DINSTALL_TYPE=full
make -j

Notice that I appended the -j switch to my make call in order to parallelize the build (if possible). This will use as the same number of make (compilation) threads as there are (logical) processors available. In my case, that is 4.

This works rather well initially, but I quickly noticed a massive increase in memory (RAM) usage. My system could cope for a while by swapping out some of the data, but at some point both physical memory and swap were completely full. The kernel was beginning to do out-of-memory process kills, but everything had slowed down so much that I just hard-reset my machine.

Now, a normal (non-parallel) build works fine, so this is nothing critical. And I also do not know if this is a problem with Cmake/Make in general or related specifically to the ParadisEO project layout.

I just wanted to make you aware that such an issue may arise on some systems, and might warrant some kind of investigation. For comparison, I'll attach my relevant system data below.

I will be able to provide test data from another system (specifically one with more RAM) next weekend.


  • CPU: Intel(R) Core(TM) i5-2557M CPU @ 1.70GHz (two physical cores with two "threads" each, i.e. 4 logical cores exposed; current kernel dynamically scales freq up to 2.7GHz)
  • Mem: 4GB physical RAM, 4GB swap partition
  • OS: Xubuntu 13.04 x64 (up-to-date) with Kernel 3.11.0-031100-generic #201309021735 SMP from the ubuntu-mainline kernel ppa
  • Tool versions:
    • cmake version 2.8.10.1
    • GNU Make 3.81
    • gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) (Thread model: posix)

If you'd like more data, please let me know.