IMPORTANT UPDATE: Cogent Core now has an improved version of empi in its mpi and tensormpi packages. This version will not be further maintained or developed. The v1 version is still needed for the v1 version of emergent.
eMPI contains Go wrappers around the MPI message passing interface for distributed memory computation, in the empi/mpi
package. This has no other dependencies and uses code generation to provide support for all Go types.
You must set the mpi
build tag to actually have it build using the mpi library -- the default is to build a dummy version that has 1 proc of rank 0 always, and nop versions of all the methods.
$ go build -tags mpi
The empi/empi
package has methods to support use of MPI in emergent simulations:
-
Gathering
etable.Table
andetensor.Tensor
data across processors. -
AllocN
allocates n items to process across mpi processors.
After updating any of the template files, you need to update the generated go files like so:
cd mpi
go install github.com/apache/arrow/go/arrow/_tools/tmpl
make generate