diff --git a/bench/README b/bench/README index a644e124b7..5d1a3bc057 100644 --- a/bench/README +++ b/bench/README @@ -71,33 +71,49 @@ integration ---------------------------------------------------------------------- +Here is a src/Make.py command which will perform a parallel build of a +LAMMPS executable "lmp_mpi" with all the packages needed by all the +examples. This assumes you have an MPI installed on your machine so +that "mpicxx" can be used as the wrapper compiler. It also assumes +you have an Intel compiler to use as the base compiler. You can leave +off the "-cc mpi wrap=icc" switch if that is not the case. You can +also leave off the "-fft fftw3" switch if you do not have the FFTW +(v3) installed as an FFT package, in which case the default KISS FFT +library will be used. + +cd src +Make.py -j 16 -p none molecule manybody kspace granular orig \ + -cc mpi wrap=icc -fft fftw3 -a file mpi + +---------------------------------------------------------------------- + Here is how to run each problem, assuming the LAMMPS executable is -named lmp_foo, and you are using the mpirun command to launch parallel +named lmp_mpi, and you are using the mpirun command to launch parallel runs: Serial (one processor runs): -lmp_foo < in.lj -lmp_foo < in.chain -lmp_foo < in.eam -lmp_foo < in.chute -lmp_foo < in.rhodo +lmp_mpi < in.lj +lmp_mpi < in.chain +lmp_mpi < in.eam +lmp_mpi < in.chute +lmp_mpi < in.rhodo Parallel fixed-size runs (on 8 procs in this case): -mpirun -np 8 lmp_foo < in.lj -mpirun -np 8 lmp_foo < in.chain -mpirun -np 8 lmp_foo < in.eam -mpirun -np 8 lmp_foo < in.chute -mpirun -np 8 lmp_foo < in.rhodo +mpirun -np 8 lmp_mpi < in.lj +mpirun -np 8 lmp_mpi < in.chain +mpirun -np 8 lmp_mpi < in.eam +mpirun -np 8 lmp_mpi < in.chute +mpirun -np 8 lmp_mpi < in.rhodo Parallel scaled-size runs (on 16 procs in this case): -mpirun -np 16 lmp_foo -var x 2 -var y 2 -var z 4 < in.lj -mpirun -np 16 lmp_foo -var x 2 -var y 2 -var z 4 < in.chain.scaled -mpirun -np 16 lmp_foo -var x 2 -var y 2 -var z 4 < in.eam -mpirun -np 16 lmp_foo -var x 4 -var y 4 < in.chute.scaled -mpirun -np 16 lmp_foo -var x 2 -var y 2 -var z 4 < in.rhodo.scaled +mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 < in.lj +mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 < in.chain.scaled +mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 < in.eam +mpirun -np 16 lmp_mpi -var x 4 -var y 4 < in.chute.scaled +mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 < in.rhodo.scaled For each of the scaled-size runs you must set 3 variables as -var command line switches. The variables x,y,z are used in the input diff --git a/examples/README b/examples/README index 43689dd27b..99c49a4476 100644 --- a/examples/README +++ b/examples/README @@ -97,13 +97,15 @@ snap: NVE dynamics for BCC tantalum crystal using SNAP potential tad: temperature-accelerated dynamics of vacancy diffusion in bulk Si voronoi: test of Voronoi tesselation in compute voronoi/atom -Here is a src/Make.py command which will build a LAMMPS executable -"lmp_mpi" with all the packages needed by all the examples, with the -exception of the accelerate example. See the accelerate/README for -Make.py commands suitable for its example scripts. +Here is a src/Make.py command which will perform a parallel build of a +LAMMPS executable "lmp_mpi" with all the packages needed by all the +examples, with the exception of the accelerate sub-directory. See the +accelerate/README for Make.py commands suitable for its example +scripts. cd src -Make.py -p none std no-lib reax meam poems reaxc orig lib-all mpi +Make.py -j 16 -p none std no-lib no-kokkos reax meam poems reaxc orig \ + lib-all mpi Here is how you might run and visualize one of the sample problems: diff --git a/src/Make.py b/src/Make.py index 8b81b97358..161c4dea97 100755 --- a/src/Make.py +++ b/src/Make.py @@ -709,18 +709,31 @@ class Packages: plist.append("yes-%s" % one) elif "user-"+one in user: plist.append("yes-user-%s" % one) - elif one == '^' and one[1:] in std: - plist.append("no-%s" % one[1:]) - elif one[0] == '^' and one[1:] in user: - plist.append("no-%s" % one[1:]) - elif one[0] == '^' and "user-"+one[1:] in user: - plist.append("no-user-%s" % one[1:]) elif one == "std" or one == "standard" or one == "user" or \ - one == "lib" or one == "all": - plist.append("yes-%s" % one) - elif one == "^std" or one == "^standard" or one == "^user" or \ - one == "^lib" or one == "^all": - plist.append("no-%s" % one[1:]) + one == "lib" or one == "all": plist.append("yes-%s" % one) + elif one.startswith("yes-"): + if one[4:] in std: plist.append("yes-%s" % one[4:]) + elif one[4:] in user: plist.append("yes-%s" % one[4:]) + elif "user-"+one[4:] in user: plist.append("yes-user-%s" % one[4:]) + elif one == "yes-std" or one == "yes-standard" or \ + one == "yes-user" or one == "yes-lib" or one == "yes-all": + plist.append("yes-%s" % one[4:]) + else: error("Invalid package name %s" % one) + elif one.startswith("no-"): + if one[3:] in std: plist.append("no-%s" % one[3:]) + elif one[3:] in user: plist.append("no-%s" % one[3:]) + elif "user-"+one[3:] in user: plist.append("no-user-%s" % one[3:]) + elif one == "no-std" or one == "no-standard" or one == "no-user" or \ + one == "no-lib" or one == "no-all": + plist.append("no-%s" % one[3:]) + else: error("Invalid package name %s" % one) + elif one.startswith('^'): + if one[1:] in std: plist.append("no-%s" % one[1:]) + elif one[1:] in user: plist.append("no-%s" % one[1:]) + elif "user-"+one[1:] in user: plist.append("no-user-%s" % one[1:]) + elif one == "^std" or one == "^standard" or one == "^user" or \ + one == "^lib" or one == "^all": plist.append("no-%s" % one[1:]) + else: error("Invalid package name %s" % one) elif one == "none": plist.append("no-all") elif one == "orig": plist.append(one) else: error("Invalid package name %s" % one)