Hi all
I've been reading the manual in order know how to speed up the simulation. If I increase the number of processors to running the simulation I'll be able to reduce the pair time. is it the best solution to achieve my aim?
Can anybody tell me the steps that I have to follow?
best.
cstoltz | Thu, 04/11/2013 - 21:38
Increasing the number of
Increasing the number of cores used will generally speed up a simulation up to a point. You need to pay attention to how the cores are being distributed around the physical space of your simulation and how balanced the load is across your cores. If you have a highly unbalanced system, just throwing more cores at it may not help at all and may actually degrade performance. If you have some idea as to the best way to spatially decompose the problem, use the 'processors' command to force LIGGGHTS to distribute the processors more effectively. Also, keep in mind that communication between the cores will become more of an issue as you keep expanding the degree of parallelization.
There are other tricks for speeding up simulations like ensuring that your domain isn't any larger than needed, changing physical properties (esp modulus) to enable larger time steps, and playing w/ the neighbor distance.
Regards,
Chris
g.garate | Thu, 04/11/2013 - 22:24
Thanks Chris, the information
Thanks Chris, the information you've just give me is very useful. So far today I have only used the smallest required domain , from now I'll consider the other tricks that you've mentioned.
Regards
g.garate | Fri, 04/12/2013 - 15:41
Chris, I've got a problem
Chris, I've got a problem with "processors command". First I tried to run "insert_stream" example without any change, it worked well. After that, I uncommented the processor command line and the following error appeared:
ERROR: Specified processors != physical processors (comm.cpp:1571)
here is the input script:
atom_style granular
atom_modify map array
boundary m m m
newton off
communicate single vel yes
processors 2 1 1
I also tried with: processors 2 2 1, but it didn't work
I have 4 processors:
gonzalo@ubuntu:~/LIGGGHTS/LIGGGHTS-PUBLIC/examples/LIGGGHTS/Tutorials_public/insert_stream$ cat /proc/cpuinfo | grep processor | wc -l
4
Thanks in advance
cstoltz | Fri, 04/12/2013 - 16:51
Sounds like you're running in
Sounds like you're running in serial. When you comment the line out, look at the text output. It should say how many processors are being used. Guessing that will be 1 by 1 by 1. If you're going to use the 'processors' command, you need to make sure that you submit with the correct number of processors.
Regards,
Chris
pipegaldames | Fri, 04/12/2013 - 21:11
I have the same problem. When
I have the same problem. When I use the "processors" command shows up an error:
"ERROR: Specified processors != physical processors (comm.cpp:1571)"
The text output doesn't say how many processors are being used, but when I use "processors 1 1 1" it does.
I have 4 processors. the following is the input script. please have a look.
atom_style granular
atom_modify map array
boundary m m m
newton off
communicate single vel yes
processors 2 1 1
units si
region reg block -1 1 -1 1 -0.05 2.85 units box
create_box 1 reg
neighbor 0.01 bin
neigh_modify delay 0
#Material properties required for new pair styles
fix m1 all property/global youngsModulus peratomtype 5.e6
fix m2 all property/global poissonsRatio peratomtype 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.9
fix m4 all property/global coefficientFriction peratomtypepair 1 0.05
fix m5 all property/global characteristicVelocity scalar 2.
fix m6 all property/global cohesionEnergyDensity peratomtypepair 1 500
#New pair style
pair_style gran/hertz/history #Hertzian without cohesion
pair_coeff * *
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#particle distributions
fix pts1 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.015
fix pts2 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.025
fix pdd1 all particledistribution/discrete 1. 2 pts1 0.3 pts2 0.7
#region and insertion
fix ins_mesh all mesh/surface file face.stl type 1 scale 0.005
group nve_group region reg
fix ins nve_group insert/stream seed 100001 distributiontemplate pdd1 nparticles 5000 &
vel constant 0. -0.5 -2. particlerate 1000 &
overlapcheck yes insertion_face ins_mesh extrude_length 0.6
#apply nve integration to all particles that are inserted as single particles
fix integr nve_group nve/sphere
#output settings, include total thermal energy
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles so that dump is not empty
run 1
dump dmp all custom 800 post/dump*.stream id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
#insert particles
run 100000
Regards
cstoltz | Sat, 04/13/2013 - 03:27
To take advantage of multiple
To take advantage of multiple processors, you need to specifically submit the job using mpi. See the following page for instructions.
http://lammps.sandia.gov/doc/Section_start.html#start_6
Regards,
Chris