yambo-code / yambo

This is the official GPL repository of the yambo code
http://www.yambo-code.eu/
GNU General Public License v2.0
98 stars 38 forks source link

Slepc with large systems #88

Open sangallidavide opened 4 months ago

sangallidavide commented 4 months ago

Increasing the system size I get:

[15]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[15]PETSC ERROR: No support for this operation for this object type
[15]PETSC ERROR: Product of two integers 12501 180000 overflow, either you have an invalidly large integer error in your code or you must ./configure PETSc with --with-64-bit-indices for the case you are running

12500 is the number of requested eigenvalues (BSSNEig=12500), and 180000 is the BSK matrix size. @nicspalla tried to recompile with --with-64-bit-indices without succes.

By @imarri

joseeroman commented 4 months ago

The first comment is that in version 3.20 we made a change that is probably relevant for this: we changed the default BV type from BVSVEC to BVMAT. The latter avoids the reported problem in some cases. Maybe the installed version of SLEPc is older than 3.20. In that case I would suggest to upgrade.

joseeroman commented 4 months ago

Another comment is that when computing such a large number of eigenvalues, one must be careful how to choose de dimension parameters, in particular it is highly recommended to specify an appropriate value of mpd in the call to EPSSetDimensions(), e.g., 500 in this case would be ok. This is explained in section 2.6.5 of the SLEPc users manual "Computing a Large Portion of the Spectrum". However, if I am now wrong, yambo's interface does not have support for this parameter.

sangallidavide commented 4 months ago

Ok, we can easily add control for the mpd variable.

@imarri do you know which version of Slepc is presently linked ?

imarri commented 4 months ago

Dear all, Currently I’m using a version of Yambo (5.2.0) linked with the Slepc 3.18.1

Sincerely Ivan

On 16 May 2024, at 13:42, Davide Sangalli @.***> wrote:

Ok, we can easily add control for the mpd variable.

@imarri https://www.google.com/url?q=https://github.com/imarri&source=gmail-imap&ust=1716464576000000&usg=AOvVaw0WHFTLgC47NCSKivqjd9N6 do you know which version of Slepc is presently linked ?

— Reply to this email directly, view it on GitHub https://www.google.com/url?q=https://github.com/yambo-code/yambo/issues/88%23issuecomment-2115004836&source=gmail-imap&ust=1716464576000000&usg=AOvVaw1VJGok3EaZhSz7dC6sY5PO, or unsubscribe https://www.google.com/url?q=https://github.com/notifications/unsubscribe-auth/AGJQZKISQ4AGHJVYFCPSEMTZCSLT5AVCNFSM6AAAAABHZ2BZ7CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJVGAYDIOBTGY&source=gmail-imap&ust=1716464576000000&usg=AOvVaw2dvcTGgHaOutgyCPAmvWC4. You are receiving this because you were mentioned.

nicspalla commented 4 months ago

In the software available on Leonardo there is also the v5.2.3 of Yambo that links PETSc v3.20.1 and SLEPc v 3.20.0.

[nspallan@login07 ~]$ module load profile/chem-phys 
[nspallan@login07 ~]$ module show yambo/5.2.3--openmpi--4.1.6--nvhpc--23.11 
-------------------------------------------------------------------
/leonardo/prod/opt/modulefiles/chem-phys/applications/yambo/5.2.3--openmpi--4.1.6--nvhpc--23.11:

module-whatis   {YAMBO is an open-source code released within the GPL licence.}
module          load fftw/3.3.10--openmpi--4.1.6--nvhpc--23.11
module          load hdf5/1.14.3--openmpi--4.1.6--nvhpc--23.11
module          load libxc/5.2.3--nvhpc--23.11-bwqd5we
module          load netcdf-c/4.9.2--openmpi--4.1.6--nvhpc--23.11
module          load netcdf-fortran/4.6.1--openmpi--4.1.6--nvhpc--23.11
module          load netlib-scalapack/2.2.0--openmpi--4.1.6--nvhpc--23.11
module          load openblas/0.3.24--nvhpc--23.11
module          load openmpi/4.1.6--nvhpc--23.11
module          load petsc/3.20.1--openmpi--4.1.6--nvhpc--23.11-complex-6q7sfss
module          load slepc/3.20.0--openmpi--4.1.6--nvhpc--23.11-lqtaegm
conflict        yambo
prepend-path    PATH /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/nvhpc-23.11/yambo-5.2.3-7sf76hoc4w2vpegvb57n2a5wjh2iaqng/bin
prepend-path    CMAKE_PREFIX_PATH /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/nvhpc-23.11/yambo-5.2.3-7sf76hoc4w2vpegvb57n2a5wjh2iaqng/.
setenv          YAMBO_HOME /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/nvhpc-23.11/yambo-5.2.3-7sf76hoc4w2vpegvb57n2a5wjh2iaqng

However, if I remember well, @imarri you already tried it with the same problem, it's right?

sangallidavide commented 4 months ago

The control on the MPD variable was added with commit 2581d6b in the bug-fixes branch (gpl repo).

You can compile it and try to run setting BSSSlepcMPD=500 in the input file as suggested by Jose.

nicspalla commented 4 months ago

Branch bug-fixes installed on Leonardo