The idea of IMB is to provide a concise set of elementary MPI

benchmark kernels. With one executable, all of the supported
benchmarks, or a subset specified by the command line, can be run.
The rules, such as time measurement (including a repetitive call
of the kernels for better clock synchronization), message lengths,
selection of communicators to run a particular benchmark (inside
the group of all started processes) are program parameters.

WWW: http://www.intel.com/cd/software/products/asmo-na/eng/cluster/mpi/219848.htm

PR:		ports/105665
Submitted by:	trasz <trasz at pin.if.uz.zgora.pl>
This commit is contained in:
Martin Wilke 2006-11-20 21:26:53 +00:00
parent f298e44adb
commit 9942a5389f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=177693
7 changed files with 111 additions and 0 deletions

View file

@ -16,6 +16,7 @@
SUBDIR += himenobench
SUBDIR += hpl
SUBDIR += httperf
SUBDIR += imb
SUBDIR += iozone
SUBDIR += iozone21
SUBDIR += iperf

63
benchmarks/imb/Makefile Normal file
View file

@ -0,0 +1,63 @@
# New ports collection makefile for: imb
# Date created: 2006-11-19
# Whom: trasz <trasz@pin.if.uz.zgora.pl>
#
# $FreeBSD$
#
PORTNAME= imb
PORTVERSION= 3.0
CATEGORIES= benchmarks parallel
MASTER_SITES= ${MASTER_SITE_LOCAL} \
http://cache-www.intel.com/cd/00/00/32/71/
MASTER_SITE_SUBDIR= itetcu
DISTNAME= 327191_327191
EXTRACT_SUFX= .gz
MAINTAINER= trasz@pin.if.uz.zgora.pl
COMMENT= Intel MPI Benchmark
WRKSRC= ${WRKDIR}/IMB_3.0/src/
USE_GMAKE= yes
MAKEFILE= make_mpich
ALL_TARGET= all
# Intel hardcodes -O3 in make_mpich. Replacing it with system defaults
# would make it impossible to compare benchmark results with other systems.
# By putting it here we make it easier for somebody to change it, if they
# _really_ want it.
CFLAGS= -O3
# Attention: -DCHECK results are not valid as real benchmark data! Don't
# forget to deactivate DCHECK and recompile in order to get proper results.
.if defined(CHECK_RESULTS)
CFLAGS+= -DCHECK
.endif
.include <bsd.port.pre.mk>
.if exists(${LOCALBASE}/mpi/openmpi/bin/mpirun)
WITH_OPENMPI= yes
.endif
.if defined(WITH_OPENMPI)
BUILD_DEPENDS= ${LOCALBASE}/mpi/openmpi/lib/libmpi.so:${PORTSDIR}/net/openmpi
RUN_DEPENDS= ${LOCALBASE}/mpi/openmpi/bin/mpirun:${PORTSDIR}/net/openmpi
MAKE_ENV= MPI_HOME=${LOCALBASE}/mpi/openmpi
.else
BUILD_DEPENDS= ${LOCALBASE}/mpich2/bin/mpicc:${PORTSDIR}/net/mpich2
RUN_DEPENDS= ${LOCALBASE}/mpich2/bin/mpirun:${PORTSDIR}/net/mpich2
MAKE_ENV= MPI_HOME=${LOCALBASE}/mpich2
.endif
do-install:
.if !defined(NOPORTDOCS)
${MKDIR} ${DOCSDIR}
${INSTALL_MAN} ${WRKDIR}/IMB_3.0/doc/IMB_ug-3.0.pdf ${DOCSDIR}
${INSTALL_MAN} ${WRKDIR}/IMB_3.0/license/license.txt ${DOCSDIR}
${INSTALL_MAN} ${WRKDIR}/IMB_3.0/license/use-of-trademark-license.txt ${DOCSDIR}
.endif
${INSTALL_PROGRAM} ${WRKSRC}/IMB-EXT ${PREFIX}/bin
${INSTALL_PROGRAM} ${WRKSRC}/IMB-IO ${PREFIX}/bin
${INSTALL_PROGRAM} ${WRKSRC}/IMB-MPI1 ${PREFIX}/bin
.include <bsd.port.post.mk>

3
benchmarks/imb/distinfo Normal file
View file

@ -0,0 +1,3 @@
MD5 (327191_327191.gz) = 4e65d46aaf30d12cdeaf898df5693cdc
SHA256 (327191_327191.gz) = 5014ec12ae5dc05b1373b47b41d26fe518bc41fe5c77899eb400a25dd9c3ec53
SIZE (327191_327191.gz) = 464188

View file

@ -0,0 +1,10 @@
--- IMB_declare.h.orig Sun Nov 19 13:48:20 2006
+++ IMB_declare.h Sun Nov 19 13:48:36 2006
@@ -69,7 +69,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <malloc.h>
#include <stddef.h>
#include "IMB_appl_errors.h"
#include "IMB_err_check.h"

View file

@ -0,0 +1,18 @@
--- make_mpich.orig Thu Jun 22 09:43:10 2006
+++ make_mpich Sun Nov 19 14:11:11 2006
@@ -1,5 +1,5 @@
# Enter root directory of mpich install
-MPI_HOME=
+#MPI_HOME=
MPICC=$(shell find ${MPI_HOME} -name mpicc -print)
@@ -12,7 +12,7 @@
LIB_PATH =
LIBS =
CC = ${MPI_HOME}/bin/mpicc
-OPTFLAGS = -O3
+OPTFLAGS = ${CFLAGS}
CLINKER = ${CC}
LDFLAGS =
CPPFLAGS =

9
benchmarks/imb/pkg-descr Normal file
View file

@ -0,0 +1,9 @@
The idea of IMB is to provide a concise set of elementary MPI
benchmark kernels. With one executable, all of the supported
benchmarks, or a subset specified by the command line, can be run.
The rules, such as time measurement (including a repetitive call
of the kernels for better clock synchronization), message lengths,
selection of communicators to run a particular benchmark (inside
the group of all started processes) are program parameters.
WWW: http://www.intel.com/cd/software/products/asmo-na/eng/cluster/mpi/219848.htm

7
benchmarks/imb/pkg-plist Normal file
View file

@ -0,0 +1,7 @@
bin/IMB-EXT
bin/IMB-IO
bin/IMB-MPI1
%%PORTDOCS%%%%DOCSDIR%%/IMB_ug-3.0.pdf
%%PORTDOCS%%%%DOCSDIR%%/license.txt
%%PORTDOCS%%%%DOCSDIR%%/use-of-trademark-license.txt
%%PORTDOCS%%@dirrm %%DOCSDIR%%