Date: Mon, 13 Nov 2006 14:37:42 +0100 (CET) From: trasz <trasz@pin.if.uz.zgora.pl> To: FreeBSD-gnats-submit@FreeBSD.org Cc: maho@FreeBSD.org Subject: ports/105474: [PATCH] math/blacs: add OpenMPI support Message-ID: <20061113133742.207413A3EB@pin.if.uz.zgora.pl> Resent-Message-ID: <200611131340.kADDe2Ud010911@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 105474 >Category: ports >Synopsis: [PATCH] math/blacs: add OpenMPI support >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Nov 13 13:40:02 GMT 2006 >Closed-Date: >Last-Modified: >Originator: trasz >Release: FreeBSD 6.1-RELEASE i386 >Organization: >Environment: System: FreeBSD pin.if.uz.zgora.pl 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Sat Jun 3 01:12:10 CEST >Description: Add OpenMPI support. Added file(s): - files/Bmake.inc-mpich.diff - files/Bmake.inc-openmpi.diff Removed file(s): - files/patch-Bmake.inc Port maintainer (maho@FreeBSD.org) is cc'd. Generated with FreeBSD Port Tools 0.77 >How-To-Repeat: >Fix: --- blacs-1.7_3.patch begins here --- diff -ruN --exclude=CVS /usr/ports/math/blacs/Makefile /home/trasz/blacs/Makefile --- /usr/ports/math/blacs/Makefile Tue Aug 22 05:47:49 2006 +++ /home/trasz/blacs/Makefile Mon Nov 13 14:36:49 2006 @@ -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,13 +22,24 @@ 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 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 +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," diff -ruN --exclude=CVS /usr/ports/math/blacs/files/Bmake.inc-mpich.diff /home/trasz/blacs/files/Bmake.inc-mpich.diff --- /usr/ports/math/blacs/files/Bmake.inc-mpich.diff Thu Jan 1 01:00:00 1970 +++ /home/trasz/blacs/files/Bmake.inc-mpich.diff Mon Nov 13 14:36:48 2006 @@ -0,0 +1,64 @@ +--- Bmake.inc.orig Mon May 5 10:53:00 2003 ++++ Bmake.inc Mon May 5 10:58:38 2003 +@@ -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 ++ MPIdir = @LOCALBASE@/mpich2 + MPILIBdir = $(MPIdir)/lib/ + MPIINCdir = $(MPIdir)/include +- MPILIB = $(MPILIBdir)/libmpich.a ++ MPILIB = $(MPILIBdir)/libmpich.a + + # ------------------------------------- + # All libraries required by the tester. +@@ -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 = @F77@ ++ F77NO_OPTFLAGS = @F77EXTRAFLAGS@ ++ F77FLAGS = @FFLAGS@ ++ F77LOADER = @F77@ + F77LOADFLAGS = +- CC = gcc +- CCFLAGS = -O4 ++ CC = @CC@ ++ CCFLAGS = @CFLAGS@ + CCLOADER = $(CC) + 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. diff -ruN --exclude=CVS /usr/ports/math/blacs/files/Bmake.inc-openmpi.diff /home/trasz/blacs/files/Bmake.inc-openmpi.diff --- /usr/ports/math/blacs/files/Bmake.inc-openmpi.diff Thu Jan 1 01:00:00 1970 +++ /home/trasz/blacs/files/Bmake.inc-openmpi.diff Mon Nov 13 14:36:48 2006 @@ -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 = + # ----------------------------------------------------------------------- + # 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 = mpif77 ++ F77NO_OPTFLAGS = @F77EXTRAFLAGS@ ++ F77FLAGS = @FFLAGS@ ++ F77LOADER = mpif77 + F77LOADFLAGS = +- CC = gcc +- CCFLAGS = -O4 +- CCLOADER = $(CC) ++ CC = mpicc ++ CCFLAGS = @CFLAGS@ ++ CCLOADER = 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. diff -ruN --exclude=CVS /usr/ports/math/blacs/files/patch-Bmake.inc /home/trasz/blacs/files/patch-Bmake.inc --- /usr/ports/math/blacs/files/patch-Bmake.inc Mon Jul 24 03:42:21 2006 +++ /home/trasz/blacs/files/patch-Bmake.inc Thu Jan 1 01:00:00 1970 @@ -1,64 +0,0 @@ ---- Bmake.inc.orig Mon May 5 10:53:00 2003 -+++ Bmake.inc Mon May 5 10:58:38 2003 -@@ -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 -+ MPIdir = @LOCALBASE@/mpich2 - MPILIBdir = $(MPIdir)/lib/ - MPIINCdir = $(MPIdir)/include -- MPILIB = $(MPILIBdir)/libmpich.a -+ MPILIB = $(MPILIBdir)/libmpich.a - - # ------------------------------------- - # All libraries required by the tester. -@@ -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 = @F77@ -+ F77NO_OPTFLAGS = @F77EXTRAFLAGS@ -+ F77FLAGS = @FFLAGS@ -+ F77LOADER = @F77@ - F77LOADFLAGS = -- CC = gcc -- CCFLAGS = -O4 -+ CC = @CC@ -+ CCFLAGS = @CFLAGS@ - CCLOADER = $(CC) - 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. diff -ruN --exclude=CVS /usr/ports/math/blacs/files/pkg-message.in /home/trasz/blacs/files/pkg-message.in --- /usr/ports/math/blacs/files/pkg-message.in Mon Jul 24 03:42:21 2006 +++ /home/trasz/blacs/files/pkg-message.in Mon Nov 13 14:36:48 2006 @@ -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. ********************************************************************* --- blacs-1.7_3.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061113133742.207413A3EB>