Add OpenMPI support

PR:             105474
Submitted by:   trasz <trasz@pin.if.uz.zgora.pl>
This commit is contained in:
Maho Nakata
2006-11-18 23:42:24 +00:00
parent f2841be73a
commit 58dc95b9cc
4 changed files with 102 additions and 4 deletions

View File

@@ -7,7 +7,7 @@
PORTNAME= blacs
PORTVERSION= 1.7
PORTREVISION= 2
PORTREVISION= 3
CATEGORIES= math
MASTER_SITES= ftp://ftp.netlib.org/blacs/
DISTNAME= BLACS
@@ -22,14 +22,21 @@ EXTRACT_ONLY= mpiblacs.tgz blacstester.tgz mpiblacs-patch03.tgz
MAINTAINER= maho@FreeBSD.org
COMMENT= The BLACS (Basic Linear Algebra Communication Subprograms)
BUILD_DEPENDS= ${LOCALBASE}/mpich2/lib/libmpich.a:${PORTSDIR}/net/mpich2
RUN_DEPENDS= ${LOCALBASE}/mpich2/bin/mpirun:${PORTSDIR}/net/mpich2
PKGMESSAGE= ${WRKDIR}/pkg-message
SUB_FILES= pkg-message
.include <bsd.port.pre.mk>
.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
EXTRA_PATCHES+= ${FILESDIR}/Bmake.inc-openmpi.diff
.else
BUILD_DEPENDS= ${LOCALBASE}/mpich2/lib/libmpich.a:${PORTSDIR}/net/mpich2
RUN_DEPENDS= ${LOCALBASE}/mpich2/bin/mpirun:${PORTSDIR}/net/mpich2
EXTRA_PATCHES+= ${FILESDIR}/Bmake.inc-mpich.diff
.endif
pre-fetch:
@${ECHO} "If you want to use compiler other than f77,"
@${ECHO} "plase set NO_GNUF77=yes"

View File

@@ -0,0 +1,84 @@
--- Bmake.inc.orig Mon Nov 13 14:17:35 2006
+++ Bmake.inc Mon Nov 13 14:19:18 2006
@@ -13,7 +13,7 @@
# -----------------------------
# The top level BLACS directory
# -----------------------------
- BTOPdir = $(HOME)/BLACS
+ BTOPdir = @WRKSRC@
# ---------------------------------------------------------------------------
# The communication library your BLACS have been written for.
@@ -32,14 +32,14 @@
# -------------------------------------------------------------
# The platform identifier to suffix to the end of library names
# -------------------------------------------------------------
- PLAT = LINUX
+ PLAT = FreeBSD
# ----------------------------------------------------------
# Name and location of the BLACS library. See section 2 for
# details on BLACS debug level (BLACSDBGLVL).
# ----------------------------------------------------------
BLACSdir = $(BTOPdir)/LIB
- BLACSDBGLVL = 0
+ BLACSDBGLVL = @DEBUG_LEVEL@
BLACSFINIT = $(BLACSdir)/blacsF77init_$(COMMLIB)-$(PLAT)-$(BLACSDBGLVL).a
BLACSCINIT = $(BLACSdir)/blacsCinit_$(COMMLIB)-$(PLAT)-$(BLACSDBGLVL).a
BLACSLIB = $(BLACSdir)/blacs_$(COMMLIB)-$(PLAT)-$(BLACSDBGLVL).a
@@ -47,10 +47,10 @@
# -------------------------------------
# Name and location of the MPI library.
# -------------------------------------
- MPIdir = /usr/local/mpich
- MPILIBdir = $(MPIdir)/lib/
+ MPIdir = @LOCALBASE@/mpi/openmpi
+ MPILIBdir =
MPIINCdir = $(MPIdir)/include
- MPILIB = $(MPILIBdir)/libmpich.a
+ MPILIB =
# -------------------------------------
# All libraries required by the tester.
@@ -86,7 +86,7 @@
# The directory to find the required communication library include files,
# if they are required by your system.
# -----------------------------------------------------------------------
- SYSINC = -I$(MPIINCdir)
+ SYSINC =
# ---------------------------------------------------------------------------
# The Fortran 77 to C interface to be used. If you are unsure of the correct
@@ -140,7 +140,7 @@
# If you know that your MPI uses the same handles for fortran and C
# communicators, you can replace the empty macro definition below with
# the macro definition on the following line.
- TRANSCOMM = -DCSameF77
+ TRANSCOMM = -DUseMpi2
# -----------------------------------------------------------------------
# TRANSCOMM =
@@ -195,16 +195,15 @@
# optimization. This is the F77NO_OPTFLAG. The usage of the remaining
# macros should be obvious from the names.
#=============================================================================
- F77 = g77
- F77NO_OPTFLAGS =
- F77FLAGS = $(F77NO_OPTFLAGS) -O
- F77LOADER = $(F77)
+ F77 = @LOCALBASE@/mpi/openmpi/bin/mpif77
+ F77NO_OPTFLAGS = @F77EXTRAFLAGS@
+ F77FLAGS = @FFLAGS@
+ F77LOADER = @LOCALBASE@/mpi/openmpi/bin/mpif77
F77LOADFLAGS =
- CC = gcc
- CCFLAGS = -O4
- CCLOADER = $(CC)
+ CC = @LOCALBASE@/mpi/openmpi/bin/mpicc
+ CCFLAGS = @CFLAGS@
+ CCLOADER = @LOCALBASE@/mpi/openmpi/bin/mpicc
CCLOADFLAGS =
-
# --------------------------------------------------------------------------
# The archiver and the flag(s) to use when building an archive (library).
# Also the ranlib routine. If your system has no ranlib, set RANLIB = echo.

View File

@@ -9,6 +9,13 @@
% %%LOCALBASE%%/mpich2/bin/mpirun -np 4 ./xFbtest_MPI-FreeBSD
% %%LOCALBASE%%/mpich2/bin/mpdallexit
Or, if you're using OpenMPI:
% cd %%PREFIX%%/share/BLACS/TESTING
% LD_LIBRARY_PATH=%%LOCALBASE%%/mpi/openmpi/lib/ export LD_LIBRARY_PATH
% PATH=$PATH:%%LOCALBASE%%/mpi/openmpi/bin/ export PATH
% mpirun -np 4 ./xCbtest_MPI-FreeBSD
% mpirun -np 4 ./xFbtest_MPI-FreeBSD
You can change -np 4 to any number to meet your local environment.
See files at %%DOCSDIR%% for detail.
*********************************************************************