Home

Awesome

CI

GoMPI: Message Passing Interface for Parallel Computing

The gompi package is a lightweight wrapper to the OpenMPI C++ library designed to develop algorithms for parallel computing.

GoMPI is a fork of the gosl MPI library with additional methods.

Installation

  1. install OpenMPI for your system
  2. ensure golang.org/x/tools/cmd/stringer is installed (go get if not)
  3. run make install

(Other make options include test, build, and clean.)

Performance

The latency benchmarks are as follows (note: the Go benchmark does not test a message size of zero bytes):

message size (bytes)GoMPI (µs)OSU MPI Latency Test v5.8 (µs)
0n/a0.36
10.450.33
20.450.32
40.420.31
80.450.30
160.430.32
320.430.32
640.430.32
1280.450.35
2560.470.37
5120.600.41
10240.660.34
20480.740.45
40962.011.51
81922.751.82
163843.612.36
327684.833.32
655369.244.96
13107217.1510.53
26214431.0923.07
52428857.0143.78
1048576117.7284.43
2097152235.34220.47
4194304599.43619.64

Benchmark code may be found in cmd/latency.go.