A method for computing interactions between bodies in a N-body system that is contained in a volume, said method comprising: - spatially partitioning the volume into a plurality of parallelepiped physical regions, defining a lattice that includes two or more axes, - assigning each parallelepiped region to a corresponding node in a plurality of nodes, wherein each node is a computation node, each of said nodes comprises a processor, the nodes are associated with lattice coordinates in the lattice, each node maintains data representing bodies, and as a result of having spatially partitioned the volume, each of the bodies is located in one of the parallelepiped regions that is assigned to one of the nodes; said method further comprising, for each node, executing a plurality of simulation time steps, wherein during each of said simulation time steps, said node carries out the steps of: - importing data to the node for the bodies which are in a spatial neighborhood (252, 254) that is adjacent to the parallelepiped region that corresponds to said node, wherein the spatial neighborhood that is adjacent to the parallelepiped region that corresponds to said node is formed by a first region and a second region, the first region being adjacent to the parallelepiped region that corresponds to said node, and said first region corresponding to a first set of nodes, the second region being also adjacent to the parallelepiped region that corresponds to said node, and said second region corresponding to a second set of nodes, and all the nodes in the first set share common lattice coordinates with said node in a first set of axes, and all the nodes in the second set share common lattice coordinates with said node in a second set of axes, - computing at least some data characterizing interactions between bodies, wherein the bodies include one body that is located in the parallelepiped region associated with said node and one body that is located in the spatial neighborhood adjacent to the parallelepiped region corresponding to said node, and - computing at least some data characterizing interactions between bodies, wherein the bodies include only one body that is located in the first region, one body that is located in the second region, and no bodies that are located in the parallelepiped region associated with said node, the first and second regions extend from faces of the parallelepiped region that corresponds to the node, the spatial neighborhood does not extend from corner points of the parallelepiped region, and said one body that is located in the region associated with said node comprises a planet, an atom or a particle that exerts forces. - spatially partitioning the volume into a plurality of parallelepiped physical regions, defining a lattice that includes two or more axes, - assigning each parallelepiped region to a corresponding node in a plurality of nodes, wherein each node is a computation node, each of said nodes comprises a processor, the nodes are associated with lattice coordinates in the lattice, each node maintains data representing bodies, and as a result of having spatially partitioned the volume, each of the bodies is located in one of the parallelepiped regions that is assigned to one of the nodes; - importing data to the node for the bodies which are in a spatial neighborhood (252, 254) that is adjacent to the parallelepiped region that corresponds to said node, wherein the spatial neighborhood that is adjacent to the parallelepiped region that corresponds to said node is formed by a first region and a second region, the first region being adjacent to the parallelepiped region that corresponds to said node, and said first region corresponding to a first set of nodes, the second region being also adjacent to the parallelepiped region that corresponds to said node, and said second region corresponding to a second set of nodes, and all the nodes in the first set share common lattice coordinates with said node in a first set of axes, and all the nodes in the second set share common lattice coordinates with said node in a second set of axes, - computing at least some data characterizing interactions between bodies, wherein the bodies include one body that is located in the parallelepiped region associated with said node and one body that is located in the spatial neighborhood adjacent to the parallelepiped region corresponding to said node, and - computing at least some data characterizing interactions between bodies, wherein the bodies include only one body that is located in the first region, one body that is located in the second region, and no bodies that are located in the parallelepiped region associated with said node,