Skip to content

Latest commit

 

History

History
50 lines (39 loc) · 1.54 KB

README.md

File metadata and controls

50 lines (39 loc) · 1.54 KB

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)
0 n/a 0.36
1 0.45 0.33
2 0.45 0.32
4 0.42 0.31
8 0.45 0.30
16 0.43 0.32
32 0.43 0.32
64 0.43 0.32
128 0.45 0.35
256 0.47 0.37
512 0.60 0.41
1024 0.66 0.34
2048 0.74 0.45
4096 2.01 1.51
8192 2.75 1.82
16384 3.61 2.36
32768 4.83 3.32
65536 9.24 4.96
131072 17.15 10.53
262144 31.09 23.07
524288 57.01 43.78
1048576 117.72 84.43
2097152 235.34 220.47
4194304 599.43 619.64

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