[DFTB-Plus-User] Extremely slow MD

Abdullah Bin Faheem abdullahbinfaheem at hotmail.com
Wed Apr 28 18:45:00 CEST 2021


Dear Bálint,

After compiling DFTB 20.2 and comparing the time taken for MD with the precompiled version using a box of water molecules and running the tests available in the source code, I confirmed that it is not a compilation problem. I also tried using a lower number threads (or MPI processes), but the system consisting of CaF2, graphene, and water takes too much time (a day for a few md steps).  Is there perhaps something wrong with the input file? Any idea on how long a single md step should take (for 882 atoms, 3344 electrons), would be highly appreciated.

Thank you for your time.

Best Regard,
Abdullah

________________________________
From: DFTB-Plus-User <dftb-plus-user-bounces at mailman.zfn.uni-bremen.de> on behalf of Bálint Aradi <aradi at uni-bremen.de>
Sent: Saturday, April 24, 2021 3:05 AM
To: dftb-plus-user at mailman.zfn.uni-bremen.de <dftb-plus-user at mailman.zfn.uni-bremen.de>
Subject: Re: [DFTB-Plus-User] Extremely slow MD

Dear Abdullah,

Even with the precompiled binary, check for the scaling. Your system is
of a moderate size, so 30 threads (or 30 MPI-processes with your
compilation) may be beyond the optimal scaling point. Start with a low
number and increase the nr. of threads / nr. of MPI-processes as long as
you experience wall-clock time benefits.

Best regards,

Bálint

On 23.04.21 19:54, Abdullah Bin Faheem wrote:
> Dear Bálint,
>
> Thank you for your response. I think it might be a compilation problem.
> I will look into it. I used MPI (OMP_NUM_THREADS=1 miprun -np 30) as I
> believed it would give better performance. This is because I observed
> that when I compiled without MPI, and set the OMP_NUM_THREADS
> environment variable to say 20, only 8 threads would actually be used.
>
> By slow, I meant taking one day just for 10-15 MD steps. I don't think
> it's a ram issue as 120GB of ram was available.
>
> As per your suggestion, I also downloaded the precompiled executables of
> dftb+ 20.2.1 and 19.1 from the website compared them to the performance
> of dftb+ 19.1 (it was compiled with MPI) compiled on my machine. I used
> OpenMP for this purpose (OMP_NUM_THREADS=30 for all three) and used a
> simple simulation box of water molecules (792 atoms) and found that a
> single MD step takes more than 10 times longer when using the dftb+
> compiled on my machine. For example, the precompiled executables take 18
> to 20 seconds, while the one on my machine takes 300 seconds.
>
> Best regards,
> Abdullah
>
> ------------------------------------------------------------------------
> *From:* DFTB-Plus-User
> <dftb-plus-user-bounces at mailman.zfn.uni-bremen.de> on behalf of Bálint
> Aradi <aradi at uni-bremen.de>
> *Sent:* Friday, April 23, 2021 6:54 PM
> *To:* dftb-plus-user at mailman.zfn.uni-bremen.de
> <dftb-plus-user at mailman.zfn.uni-bremen.de>
> *Subject:* Re: [DFTB-Plus-User] Extremely slow MD
> Dear Abdullah,
>
> first of all, please use the most recent version. Download the binary
> directly from the website or install it via conda, to make sure, it is
> not a compilation problem.
>
> Otherwise, is hard to say. What do you mean by slow. Also, do you use
> parallelism? If yes, which one (OpenMP or MPI)? Does your machine has
> enough RAM? (Maybe the process is swapping?)
>
> Best regards,
>
> Bálint
>
> On 20.04.21 17:11, Abdullah Bin Faheem wrote:
>> Dear DFTB+ users,
>>
>> I am using DFTB+ 19.1 to run MD of a box of water molecules, with
>> graphene and CaF2 layers (882 atoms) and using the 3ob parameters for
>> DFTB3. However, it takes a very long time to finish even one MD step. I
>> have tried to use different Solvers (ELPA, NTPoly, OMM), but it does not
>> make a difference. I am using the MPI version of DFTB+ and have tried
>> out using 6, 12, 15, and 30 mpi processes, but it does not improve the
>> results. Changing the Mixer from Broyden to Anderson gives the same time
>> results.
>>
>> The input file is as follows:
>>
>> Geometry = GenFormat {
>> 882 S
>>   Ca F C O H
>>      1 1    0.7202443272E-01    0.7032980539E+01    0.4107560989E+01
>>      2 1    0.4004118083E+01    0.6999144781E+01    0.4161273297E+01
>>      3 1    0.7890550957E+01    0.7070604493E+01    0.4106813778E+01
>>      4 1    0.1168937823E+02    0.7005426600E+01    0.4039285473E+01
>>      5 1    0.9944288762E-01    0.2736434439E-01    0.4168457924E+01
>> .
>> .
>> .
>>    877 4    0.1421618759E+02    0.6309258063E+01    0.3225699778E+02
>>    878 5    0.1353106869E+02    0.6940379596E+01    0.3241309410E+02
>>    879 5    0.1509388546E+02    0.6646394136E+01    0.3226620183E+02
>>    880 4    0.7717108287E+00    0.7430108512E+01    0.4311866219E+02
>>    881 5    0.1500101168E+01    0.6928998668E+01    0.4275502506E+02
>>    882 5    0.4968721117E+00    0.7268172745E+01    0.4401107775E+02
>> 0.0000 0.0000 0.0000
>> 16.500 0.0000 0.0000
>> 0.0000 14.900 0.0000
>> 0.0000 0.0000 69.000
>> }
>> Driver = VelocityVerlet {
>>    MovedAtoms = 1:-1
>>    Steps = 1
>>    TimeStep [Femtosecond] = 0.5
>>    MDRestartFrequency = 1
>>    Thermostat = NoseHoover {
>>      Temperature [Kelvin] = 298.00
>> CouplingStrength [cm^-1] = 3200
>>    }
>>    OutputPrefix = "geo_end"
>> }
>>
>> Hamiltonian = DFTB {
>>    Solver = ELPA {
>>    Mode = 2
>>    }
>>    Mixer = Anderson {
>>    MixingParameter = 0.2
>>    }
>>    SCCTolerance = 1.000E-004
>>    ForceEvaluation = Dynamics
>>    SCC = Yes
>>    SlaterKosterFiles = Type2FileNames {
>>    Separator = "-"
>>    Suffix = ".skf"
>>    }
>>    Filling = Fermi {
>>    Temperature [Kelvin] = 298
>>    }
>>    MaxSCCIterations = 300
>>    ReadInitialCharges = No
>>    MaxAngularMomentum {
>>      O = "p"
>>      H = "s"
>>      C = "p"
>>      F = "p"
>>     Ca = "p"
>>    }
>>    ThirdOrder = Yes
>>    HubbardDerivs {
>>     O = -0.1575
>>     H = -0.1857
>>     C = -0.1492
>>     F = -0.1623
>>     Ca = -0.0340
>>    }
>>    Dispersion = DftD3 {
>>     Damping = BeckeJohnson {
>>      a1 = 0.746
>>      a2 = 4.191
>>    }
>>      s6 = 1.0
>>      s8 = 3.209
>>   }
>>    HCorrection = Damping {
>>    Exponent = 4.00
>>   }
>> KPointsAndWeights = {
>>      1 0 0
>>      0 1 0
>>      0 0 1
>>   0.5 0.5 0.5
>>    }
>> }
>> Options {
>>    WriteAutotestTag = Yes
>>    WriteChargesAsText = Yes
>> }
>> Parallel {
>>    UseOmpThreads = no
>>    Groups = 3
>>   }
>>
>> Is there perhaps something wrong with my approach? Any suggestions would
>> be greatly appreciated. Thank you for your time.
>>
>> Regards,
>> Abdullah
>>
>> _______________________________________________
>> DFTB-Plus-User mailing list
>> DFTB-Plus-User at mailman.zfn.uni-bremen.de
>> https://mailman.zfn.uni-bremen.de/cgi-bin/mailman/listinfo/dftb-plus-user <https://mailman.zfn.uni-bremen.de/cgi-bin/mailman/listinfo/dftb-plus-user>
>>
>
>
> --
> Dr. Bálint Aradi
> Bremen Center for Computational Materials Science, University of Bremen
> http://www.bccms.uni-bremen.de/cms/people/b-aradi/
> <http://www.bccms.uni-bremen.de/cms/people/b-aradi/>
>
>
>
> _______________________________________________
> DFTB-Plus-User mailing list
> DFTB-Plus-User at mailman.zfn.uni-bremen.de
> https://mailman.zfn.uni-bremen.de/cgi-bin/mailman/listinfo/dftb-plus-user
>


--
Dr. Bálint Aradi
Bremen Center for Computational Materials Science, University of Bremen
http://www.bccms.uni-bremen.de/cms/people/b-aradi/


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.zfn.uni-bremen.de/pipermail/dftb-plus-user/attachments/20210428/11032268/attachment.htm>


More information about the DFTB-Plus-User mailing list