Hello,
I've been trying to run a yambo calculation and and I think the needed parallelisation schemes are now beyond the standard ones that I was using. I was initially trying to concentrate the parallelisation on "c,v" and I ran a couple of systems just fine. Now although I was able to calculate the dipoles, I can't get past the dynamic dielectric matrix part. I tried increasing the number of cores and parallelise more and I also tried assigned two cores per task in order to have double memory. Currently easy core here has 1.8GB of RAM. But even so the calculation drops out of memory. So I suppose I'm not doing it with the best possible combination. Can anyone give me some tips? I'm attaching one of the log files as reference, the input, the r- output and also the standard error message of the cluster indicating the memory issue.
Best regards,
Paralellization Tips
Moderators: Davide Sangalli, andrea.ferretti, myrta gruning, andrea marini, Daniele Varsano, Conor Hogan
-
- Posts: 72
- Joined: Tue Dec 08, 2020 11:16 am
Paralellization Tips
You do not have the required permissions to view the files attached to this post.
MSc. Bruno Cucco
PhD Candidate
CNRS Institut des Sciences Chimiques de Rennes, France
Université de Rennes 1
https://iscr.univ-rennes1.fr
PhD Candidate
CNRS Institut des Sciences Chimiques de Rennes, France
Université de Rennes 1
https://iscr.univ-rennes1.fr
- Daniele Varsano
- Posts: 4209
- Joined: Tue Mar 17, 2009 2:23 pm
- Contact:
Re: Paralellization Tips
Dear Bruno,
the parallelisation over "c","v" and "g" are the most efficient with respect memory distribution so I would stick on that.
When parallelizing in "cv" try to balance them in a way such that Nc/core_c ~ Nv/core_v, so something like:
Most probably 1.8Gb are not enough, so you can use less CPU's maintaining the same number of nodes, in order to have more memory per core.
In order to have an idea of the memory needed per CPU you can compile the code using the following instruction in the configure:
In this way yambo will print the memory allocated in the node before crashing and you can have an idea on how ask for resources (core x node).
Best,
Daniele
the parallelisation over "c","v" and "g" are the most efficient with respect memory distribution so I would stick on that.
When parallelizing in "cv" try to balance them in a way such that Nc/core_c ~ Nv/core_v, so something like:
Code: Select all
X_and_IO_CPU= "1 1 1 64 4" # [PARALLEL] CPUs for each role
X_and_IO_ROLEs= "q g k c v"
In order to have an idea of the memory needed per CPU you can compile the code using the following instruction in the configure:
Code: Select all
--enable-memory-profile
Best,
Daniele
Dr. Daniele Varsano
S3-CNR Institute of Nanoscience and MaX Center, Italy
MaX - Materials design at the Exascale
http://www.nano.cnr.it
http://www.max-centre.eu/
S3-CNR Institute of Nanoscience and MaX Center, Italy
MaX - Materials design at the Exascale
http://www.nano.cnr.it
http://www.max-centre.eu/