QuantumATK Forum

QuantumATK => Installation and License Questions => Topic started by: bfazi on September 17, 2014, 20:21

Title: Parallelization problem
Post by: bfazi on September 17, 2014, 20:21
Hello

I have a strange problem with parallelization feature. I calculated a same example with dense k-points for DOS of a system, with and without parallelization feature.
when I calculated the example without parallelization feature, every things was OK and my laptop did not crash but when I calculated the example with parallelization feature, after DFT calculation my laptop crashed.

My laptop has a Intel Core-i7 processor and 8GB's of RAM.
I use Ubuntu OS and I used this command for parallelization:

mpiexec -n 8 /home/wise/QuantumWise/VNL-ATK-2014.0/bin/atkpython test.py > test.log
Title: Re: Parallelization problem
Post by: Shinji Usui on September 19, 2014, 02:16
Please check the memory usage of the calculation.
When the non-parallel calculation takes 2 GB, the 8-parallel calculation takes 16GB (2*8core).
Title: Re: Parallelization problem
Post by: Umberto Martinez on September 22, 2014, 10:00
well, I guess you have other stuff running on your laptop which are using some memory.

Try to monitor the memory usage the with
Code
$ free -m
command (or any other tool you like), before and while the job is running to see how much memory you are actually using.
Probably it is better if you start with 2-4 MPI processes.

Also,
you actually have 4 cores and 8 threads. You should achieve the best performance by disabling OpenMP threading and only using MPI parallelization with 4 cores.
Run:
Code
export MKL_NUM_THREADS=1
export MKL_DYNAMIC=FALSE
mpiexec -n 4 /home/wise/QuantumWise/VNL-ATK-2014.0/bin/atkpython test.py > test.log

Please, do some tests with different number of MPI processes and with and without OMP threading to find out the optimal set-up for your machine.

Check also the Parallel guide here http://quantumwise.com/support/manuals

EDIT: from ATK 2014 version also OMP should be disabled:
export OMP_NUM_THREADS=1
export OMP_DYNAMIC=FALSE