• Stars
    star
    125
  • Rank 286,335 (Top 6 %)
  • Language
    C
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Intel(R) MPI Benchmarks

Common Public License Version 1.0 v2021.3


Contents

  • Introduction
  • Product Directories
  • What's New
  • Command-Line Control
  • Building Instructions for Linux* OS
  • Building Instructions for Windows* OS
  • Copyright and License Information
  • Legal Information

Introduction

Intel(R) MPI Benchmarks provides a set of elementary benchmarks that conform to MPI-1, MPI-2, and MPI-3 standard. You can run all of the supported benchmarks, or a subset specified in the command line using one executable file. Use command-line parameters to specify various settings, such as time measurement, message lengths, and selection of communicators. For details, see the Intel(R) MPI Benchmarks User's Guide located at: https://software.intel.com/en-us/imb-user-guide.

By default, Intel(R) MPI Benchmarks is installed at:

  • C:\Program Files (x86)\IntelSWTools\imb on Windows* OS
  • /opt/intel/imb on Linux* OS

Before using the Intel(R) MPI Benchmarks, please read the license agreements located in the imb/license directory.


Product Directories

After a successful installation of Intel(R) MPI Benchmarks, the following files and folders appear on your system:

+-- \imb            Intel(R) MPI Benchmarks product directory
     |
     +-- \src_c             Product source "C" code and Makefiles.
     |
     +-- \license           Product license files.
     |    |              
     |    +--license.txt    Source code license granted to you.
     |    |                             
     |    +--use-of-trademark-license.txt    License file describing the 
     |                                       use of the Intel(R) MPI 
     |                                       Benchmarks name and trademark.
     |
     +-- \src_cpp              Product source "CPP" code and Makefiles. 
     |
     +-- \WINDOWS              Microsoft* Visual Studio* project files. 
     |
     +-- Readme_IMB.txt        Readme file providing the basic information
                               about the product (this file).

What's New

New in Intel(R) MPI Benchmarks 2021.3

  • Change default value for mem_alloc_type to device
  • License update
  • Bug fixes.

New in Intel(R) MPI Benchmarks 2021.2

  • New IMB-MPI1-GPU benchmarks (Technical Preview). The benchmarks implement the GPU version of the IMB-MPI1
  • Added -msg_pause option.
  • Changed default window_size 64 -> 256
  • Bug fixes.

New in Intel(R) MPI Benchmarks 2021.1

  • Added -window_size option for IMB-MPI1
  • Added copyrights for *.exe
  • Bug fixes.

New in Intel(R) MPI Benchmarks 2019 Update 6

  • New IMB-P2P Stencil2D and Stencil3D benchmarks.
  • Bug fixes.

New in Intel(R) MPI Benchmarks 2019 Update 5

  • Added Visual Studio projects for IMB-P2P
  • Bug fixes.

New in Intel(R) MPI Benchmarks 2019 Update 4

  • Bug fixes.

New in Intel(R) MPI Benchmarks 2019 Update 3

  • Added the warm_up option that enabled additional cycles before running benchmark(for all size.)
  • Added a new benchmark Reduce_local for IMB-MPI1.
  • Bug fixes.

New in Intel(R) MPI Benchmarks 2019 Update 2

  • New IMB-P2P benchmarks.
  • Added the Reduce_local benchmark for IMB-MPI1.
  • Deleted the alignment option (-alignment).
  • Bug fixes.
  • Code cleanup.

New in Intel(R) MPI Benchmarks 2019 Update 1

  • Added the Reduce_scatter_block benchmark for IMB-MPI1.
  • Added the aggregate_mode option that specifies the mode for IMB-IO, IMB-EXT and IMB-RMA.
  • Added the alignment option that controls buffer alignment.
  • Updated the following options:
    • -data_type now supports double.
    • -red_data_type now supports double.

New in Intel(R) MPI Benchmarks 2019

  • New IMB-MT benchmarks. The benchmarks implement the multi-threaded version of IMB-MPI1 benchmarks using the OpenMP* paradigm.
  • New benchmarks infrastructure for easier benchmarks extension is implemented in C++ (See the guide: https://software.intel.com/en-us/articles/creating-custom-benchmarks-for-imb-2019). The IMB-MPI1, IMB-RMA, IMB-NBC, IMB-EXT, IMB-IO, and IMB-MT implementation is now based on the new C++ infrastructure. The legacy infrastructure is preserved in the src_c subdirectory.
  • Syntax changes for the -include and -exclude options. Benchmarks to include and exclude now must be separated by a comma rather than a space. Benchmarks to launch can be separated by a comma or a space.
  • Iteration policy can no longer be set with the -iter option. Use the -iter_policy instead.
  • Added a new benchmark BarrierMT for IMB-MT.
  • Added new options:
    • -noheader for IMB-MT disables printing of benchmark headers.
    • -data_type for IMB-MPI1 specifies the type to be used for communication.
    • -red_data_type for IMB-MPI1 specifies the type to be used for reduction.
    • -contig_type for IMB-MPI1 specifies the type to be used.
    • -zero_size for IMB-MPI1 disable runs with message size 0.
  • Bug fixes.
  • Code cleanup.

New in Intel(R) MPI Benchmarks 2018 Update 1

  • Support for the Microsoft* Visual Studio* 2017. Microsoft* Visual Studio* 2012 support is removed.

New in Intel(R) MPI Benchmarks 2018

New in Intel(R) MPI Benchmarks 2017 Update 1

  • Added a new option -imb_barrier.
  • The PingPong and PingPing benchmarks are now equivalent to PingPongSpecificSource and PingPingSpecificSource, respectively. Their old behavior (with MPI_ANY_SOURCE) is available in PingPongAnySource and PingPingAnySource.

New in Intel(R) MPI Benchmarks 2017

  • Changed default values for the -sync and -root_shift options.
  • Support for the Microsoft* Visual Studio* 2015. Microsoft* Visual Studio* 2010 support is removed.
  • Bug fixes.

New in Intel(R) MPI Benchmarks 4.1 Update 1

  • Bug fixes.

New in Intel(R) MPI Benchmarks 4.1

  • Introduced two new benchmarks: uniband and biband.
  • Introduced two new command-line options for collective benchmarks: -sync and -root_shift.

New in Intel(R) MPI Benchmarks 4.0 Update 2

  • Fix of a bug where benchmarking was failing on certain message lengths with -DCHECK.

New in Intel(R) MPI Benchmarks 4.0 Update 1

  • Fix of a bug where benchmarking could continue after the time limit is exceeded.

New in Intel(R) MPI Benchmarks 4.0

  • Introduced new components IMB-NBC and IMB-RMA that conform to the MPI-3.0 standard. Note: These components can only be built and used with MPI libraries that conform to the MPI-3 standard.
  • Added new targets to the Linux* OS Makefiles:
    • NBC for building IMB-NBC
    • RMA for building IMB-RMA
  • Updated Microsoft* Visual Studio* solutions to include the IMB-NBC and IMB-RMA targets.
  • Consolidated all first-use documents in ReadMe_IMB.txt to improve usability.
  • Introduced a new feature to set the appropriate algorithm for automatic calculation of iterations. The algorithm can be set through the -iter and -iter_policy options.
  • Support for the Microsoft* Visual Studio* 2013. Microsoft* Visual Studio* 2008 support is removed.

Command-Line Control

You can get help on the Intel(R) MPI Benchmarks from the command line using the component name and the -help parameter. For example, for the IMB-MPI1 component, run: IMB-MPI1 -help

You can see the Intel(R) MPI Benchmarks User's Guide for details on the command-line parameters.


Building Instructions for Linux* OS

  1. Set the CC variable to point to the appropriate compiler wrapper, mpiicc or mpicc.

  2. Run one or more Makefile commands below:

    make clean - remove legacy binary object files and executable files make IMB-MPI1 - build the executable file for the IMB-MPI1 component make IMB-EXT - build the executable file for one-sided communications benchmarks make IMB-IO - build the executable file for I/O benchmarks make IMB-NBC - build the executable file for IMB-NBC benchmarks make IMB-RMA - build the executable file for IMB-RMA benchmarks make all - build all executable files available

  3. Run the benchmarks as follows:

    mpirun -n <number_of_processes> IMB- [arguments]

    where is one of the make targets above. For details, refer to the Intel(R) MPI Benchmarks User's Guide at: https://software.intel.com/en-us/imb-user-guide


Building Instructions for Windows* OS

Use the enclosed solution files located in the component-specific subdirectories under the imb/WINDOWS directory. Click on the respective ".vcproj" or ".vcxproj" project file and use the Microsoft* Visual Studio* menu to run the associated benchmark application.

Building "x64" Executable Files

  1. Check that the Include, Lib, and Path environment variables are set as follows: %I_MPI_ROOT%\intel64\include %I_MPI_ROOT%\intel64\lib %I_MPI_ROOT%\mpi\intel64\bin The %I_MPI_ROOT% environment variable is set to the Intel(R) MPI Library installation directory.

  2. Open the ".vcproj" or ".vcxproj" file for the component you would like to build. From the Visual Studio Project panel: a) Change the "Solution Platforms" dialog box to "x64". b) Change the "Solution Configurations" dialog box to "Release". c) Check other settings as required, for example: General > Project Defaults - Set "Character Set" to "Use Multi-Byte Character Set" C/C++ > General - Set "Additional Include Directories" to "$(I_MPI_ROOT)\intel64\include" - Set "Warning Level" to "Level 1 (/W1)" C/C++ > Preprocessor - For the "Preprocessor definitions" within the Visual Studio projects, add the conditional compilation macros WIN_IMB and _CRT_SECURE_NO_DEPRECATE. Depending on the components you intend to use, add one or more of the following macros: MPI1, EXT, MPIIO, NBC, RMA. Linker > Input - Set "Additional Dependencies" to "$(I_MPI_ROOT)\intel64\lib\impi.lib". Make sure to add quotes.

  3. Use F7 or Build > Build Solution to create an executable.

    For details, refer to the Intel(R) MPI Benchmarks User's Guide at: https://software.intel.com/en-us/imb-user-guide


Copyright and Licenses

See the license files in the imb/license directory.


Legal Information

No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.

Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.

This document contains information on products, services and/or processes in development. All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest forecast, schedule, specifications and roadmaps.

The products and services described may contain defects or errors known as errata which may cause deviations from published specifications. Current characterized errata are available on request.

Intel, Intel Core, Xeon, Xeon Phi and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.

  • Other names and brands may be claimed as the property of others.

(C) Intel Corporation.

More Repositories

1

hyperscan

High-performance regular expression matching library
C++
4,478
star
2

acat

Assistive Context-Aware Toolkit (ACAT)
C#
3,191
star
3

haxm

Intel® Hardware Accelerated Execution Manager (Intel® HAXM)
C
3,029
star
4

appframework

The definitive HTML5 mobile javascript framework
CSS
2,435
star
5

neural-compressor

SOTA low-bit LLM quantization (INT8/FP8/INT4/FP4/NF4) & sparsity; leading model compression techniques on TensorFlow, PyTorch, and ONNX Runtime
Python
2,182
star
6

intel-extension-for-transformers

⚡ Build your chatbot within minutes on your favorite device; offer SOTA compression techniques for LLMs; run LLMs efficiently on Intel Platforms⚡
Python
2,122
star
7

pcm

Intel® Performance Counter Monitor (Intel® PCM)
C++
2,083
star
8

intel-extension-for-pytorch

A Python package for extending the official PyTorch that can easily obtain performance on Intel platform
Python
1,203
star
9

linux-sgx

Intel SGX for Linux*
C++
1,180
star
10

scikit-learn-intelex

Intel(R) Extension for Scikit-learn is a seamless way to speed up your Scikit-learn application
Python
954
star
11

llvm

Intel staging area for llvm.org contribution. Home for Intel LLVM-based projects.
918
star
12

nemu

ARCHIVED: Modern Hypervisor for the Cloud. See https://github.com/cloud-hypervisor/cloud-hypervisor instead
C
915
star
13

compute-runtime

Intel® Graphics Compute Runtime for oneAPI Level Zero and OpenCL™ Driver
C++
912
star
14

caffe

This fork of BVLC/Caffe is dedicated to improving performance of this deep learning framework when running on CPU, in particular Intel® Xeon processors.
C++
850
star
15

isa-l

Intelligent Storage Acceleration Library
C
816
star
16

media-driver

C
783
star
17

cve-bin-tool

The CVE Binary Tool helps you determine if your system includes known vulnerabilities. You can scan binaries for over 200 common, vulnerable components (openssl, libpng, libxml2, expat and others), or if you know the components used, you can get a list of known vulnerabilities associated with an SBOM or a list of components and versions.
Python
721
star
18

intel-cmt-cat

User space software for Intel(R) Resource Director Technology
C
630
star
19

fastuidraw

C++
603
star
20

optimization-manual

Contains the source code examples described in the "Intel® 64 and IA-32 Architectures Optimization Reference Manual"
Assembly
602
star
21

libipt

libipt - an Intel(R) Processor Trace decoder library
C
594
star
22

libxcam

libXCam is a project for extended camera(not limited in camera) features and focus on image quality improvement and video analysis. There are lots features supported in image pre-processing, image post-processing and smart analysis. This library makes GPU/CPU/ISP working together to improve image quality. OpenCL is used to improve performance in different platforms.
C++
590
star
23

clDNN

Compute Library for Deep Neural Networks (clDNN)
C++
573
star
24

libva

Libva is an implementation for VA-API (Video Acceleration API)
C
558
star
25

intel-graphics-compiler

C++
503
star
26

wds

Wireless Display Software For Linux OS (WDS)
C++
496
star
27

thermal_daemon

Thermal daemon for IA
C++
485
star
28

x86-simd-sort

C++ header file library for high performance SIMD based sorting algorithms for primitive datatypes
C++
485
star
29

Intel-Linux-Processor-Microcode-Data-Files

466
star
30

gvt-linux

C
463
star
31

kernel-fuzzer-for-xen-project

Kernel Fuzzer for Xen Project (KF/x) - Hypervisor-based fuzzing using Xen VM forking, VMI & AFL
C
441
star
32

tinycbor

Concise Binary Object Representation (CBOR) Library
C
432
star
33

openfl

An open framework for Federated Learning.
Python
427
star
34

cc-oci-runtime

OCI (Open Containers Initiative) compatible runtime for Intel® Architecture
C
415
star
35

tinycrypt

tinycrypt is a library of cryptographic algorithms with a focus on small, simple implementation.
C
373
star
36

compile-time-init-build

C++ library for composing modular firmware at compile-time.
C++
372
star
37

ARM_NEON_2_x86_SSE

The platform independent header allowing to compile any C/C++ code containing ARM NEON intrinsic functions for x86 target systems using SIMD up to SSE4 intrinsic functions
C
369
star
38

yarpgen

Yet Another Random Program Generator
C++
357
star
39

intel-device-plugins-for-kubernetes

Collection of Intel device plugins for Kubernetes
Go
356
star
40

QAT_Engine

Intel QuickAssist Technology( QAT) OpenSSL Engine (an OpenSSL Plug-In Engine) which provides cryptographic acceleration for both hardware and optimized software using Intel QuickAssist Technology enabled Intel platforms. https://developer.intel.com/quickassist
C
356
star
41

linux-sgx-driver

Intel SGX Linux* Driver
C
334
star
42

safestringlib

C
328
star
43

xess

C
313
star
44

idlf

Intel® Deep Learning Framework
C++
311
star
45

ad-rss-lib

Library implementing the Responsibility Sensitive Safety model (RSS) for Autonomous Vehicles
C++
298
star
46

intel-vaapi-driver

VA-API user mode driver for Intel GEN Graphics family
C
289
star
47

ipp-crypto

C
269
star
48

rohd

The Rapid Open Hardware Development (ROHD) framework is a framework for describing and verifying hardware in the Dart programming language. ROHD enables you to build and traverse a graph of connectivity between module objects using unrestricted software.
Dart
256
star
49

opencl-intercept-layer

Intercept Layer for Debugging and Analyzing OpenCL Applications
C++
255
star
50

FSP

Intel(R) Firmware Support Package (FSP)
C
244
star
51

dffml

The easiest way to use Machine Learning. Mix and match underlying ML libraries and data set sources. Generate new datasets or modify existing ones with ease.
Python
244
star
52

userspace-cni-network-plugin

Go
242
star
53

intel-ipsec-mb

Intel(R) Multi-Buffer Crypto for IPSec
C
238
star
54

isa-l_crypto

Assembly
232
star
55

confidential-computing-zoo

Confidential Computing Zoo provides confidential computing solutions based on Intel SGX, TDX, HEXL, etc. technologies.
CMake
229
star
56

bmap-tools

BMAP Tools
Python
227
star
57

intel-extension-for-tensorflow

Intel® Extension for TensorFlow*
C++
226
star
58

ozone-wayland

Wayland implementation for Chromium Ozone classes
C++
214
star
59

intel-qs

High-performance simulator of quantum circuits
C++
202
star
60

SGXDataCenterAttestationPrimitives

C++
202
star
61

intel-sgx-ssl

Intel® Software Guard Extensions SSL
C
197
star
62

msr-tools

C
195
star
63

depth-camera-web-demo

JavaScript
194
star
64

rmd

Go
189
star
65

CPU-Manager-for-Kubernetes

Kubernetes Core Manager for NFV workloads
Python
187
star
66

asynch_mode_nginx

C
186
star
67

hexl

Intel®️ Homomorphic Encryption Acceleration Library accelerates modular arithmetic operations used in homomorphic encryption
C++
181
star
68

ros_object_analytics

C++
177
star
69

zephyr.js

JavaScript* Runtime for Zephyr* OS
C
176
star
70

generic-sensor-demos

HTML
175
star
71

ipmctl

C
172
star
72

sgx-ra-sample

C++
171
star
73

lmbench

C
171
star
74

cri-resource-manager

Kubernetes Container Runtime Interface proxy service with hardware resource aware workload placement policies
Go
170
star
75

platform-aware-scheduling

Enabling Kubernetes to make pod placement decisions with platform intelligence.
Go
165
star
76

virtual-storage-manager

Python
165
star
77

PerfSpect

System performance characterization tool based on linux perf
Python
164
star
78

he-transformer

nGraph-HE: Deep learning with Homomorphic Encryption (HE) through Intel nGraph
C++
163
star
79

systemc-compiler

This tool translates synthesizable SystemC code to synthesizable SystemVerilog.
C++
155
star
80

webml-polyfill

Deprecated, the Web Neural Network Polyfill project has been moved to https://github.com/webmachinelearning/webnn-polyfill
Python
153
star
81

pmem-csi

Persistent Memory Container Storage Interface Driver
Go
151
star
82

libyami

Yet Another Media Infrastructure. it is core part of media codec with hardware acceleration, it is yummy to your video experience on Linux like platform.
C++
148
star
83

ros_openvino_toolkit

C++
147
star
84

rib

Rapid Interface Builder (RIB) is a browser-based design tool for quickly prototyping and creating the user interface for web applications. Layout your UI by dropping widgets onto a canvas. Run the UI in an interactive "Preview mode". Export the generated HTML and Javascript. It's that simple!
JavaScript
147
star
85

ideep

Intel® Optimization for Chainer*, a Chainer module providing numpy like API and DNN acceleration using MKL-DNN.
C++
145
star
86

libva-utils

Libva-utils is a collection of tests for VA-API (VIdeo Acceleration API)
C
144
star
87

gmmlib

C++
141
star
88

numatop

NumaTOP is an observation tool for runtime memory locality characterization and analysis of processes and threads running on a NUMA system.
C
139
star
89

ros2_grasp_library

C++
138
star
90

XBB

C++
133
star
91

tdx-tools

Cloud Stack and Tools for Intel TDX (Trust Domain Extension)
C
131
star
92

ros2_intel_realsense

This project is deprecated and no more maintained. Please visit https://github.com/IntelRealSense/realsense-ros for ROS2 wrapper.
C++
131
star
93

linux-intel-lts

C
131
star
94

CeTune

Python
130
star
95

cm-compiler

C++
130
star
96

pti-gpu

Profiling Tools Interfaces for GPU (PTI for GPU) is a set of Getting Started Documentation and Tools Library to start performance analysis on Intel(R) Processor Graphics easily
C++
129
star
97

fMBT

Free Model Based tool
Python
129
star
98

zlib

C
128
star
99

ros_intel_movidius_ncs

C++
126
star
100

mOS

C
124
star