Skip to content

sbromberger/gompi

Folders and files

NameName
Last commit message
Last commit date
Dec 3, 2021
Nov 29, 2021
Oct 28, 2021
Oct 31, 2021
Dec 3, 2021
Dec 30, 2021
Nov 2, 2019
Oct 15, 2019
Dec 17, 2021
Dec 17, 2021
Feb 18, 2022
Dec 17, 2021
Nov 2, 2019

Repository files navigation

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.