get processor box sizes for maintaining parallelization within fixes

Hi,

I am working on writing code for performing a kernel function computation within AtC. This code, when run in parallel, does the following:

iterate over all “nodes” // finite element nodes;
// can consider these
// “points in the domain”
// if not familiar with FEM)

iterate over all pairs of atoms on this processor
perform a computation with the current node and pairs
if the computation does not return a zero result,
do some more math and sum the result into a matrix

Currently, all the nodes are being iterated over for all processors, even though the only ones that are relevant are ones where the atoms on that processor are within some “kernel distance” of them.

I would like to get the min and max double values for individual processors (processor boxes) so that I can perform this check and skip the nodes that are not relevant entirely.

Please let me know what the preferred method is to get this information, or if it is stored in LAMMPS at all. If not, I can get the processor atom locations and find the min and max location in each dimension by hand, but this might be slow to do. Otherwise, I can use our internal processor partition scheme and MPI to parallelize this computation, but I believe that using the native LAMMPS partitioning scheme would be faster and cleaner in general.

Thanks,
Sean

Hi,

I am working on writing code for performing a kernel function computation within AtC. This code, when run in parallel, does the following:

iterate over all “nodes” // finite element nodes;
// can consider these
// “points in the domain”
// if not familiar with FEM)

iterate over all pairs of atoms on this processor
perform a computation with the current node and pairs
if the computation does not return a zero result,
do some more math and sum the result into a matrix

Currently, all the nodes are being iterated over for all processors, even though the only ones that are relevant are ones where the atoms on that processor are within some “kernel distance” of them.

I would like to get the min and max double values for individual processors (processor boxes) so that I can perform this check and skip the nodes that are not relevant entirely.

Please let me know what the preferred method is to get this information, or if it is stored in LAMMPS at all. If not, I can get the processor atom locations and find the min and max location in each dimension by hand, but this might be slow to do. Otherwise, I can use our internal processor partition scheme and MPI to parallelize this computation, but I believe that using the native LAMMPS partitioning scheme would be faster and cleaner in general.

Thanks,
Sean

See src/domain.h and the sublo/subhi variables.

I presume you are coordinating your effort with the AtC
package folks? They can advise you if what you are doing
is a workable idea or not ...

Steve