Add blocksolve95 3.0, sofware for the efficient solution of large,

sparse linear systems.
This commit is contained in:
Thierry Thomas 2004-11-15 22:16:27 +00:00
parent cf67891e3f
commit 29e92be353
12 changed files with 330 additions and 0 deletions

View file

@ -21,6 +21,7 @@
SUBDIR += blacs
SUBDIR += blas
SUBDIR += blitz++
SUBDIR += blocksolve95
SUBDIR += calc
SUBDIR += calcoo
SUBDIR += calctool

View file

@ -0,0 +1,60 @@
# New ports collection makefile for: blocksolve95
# Date created: 03 October 2004
# Whom: Thierry Thomas <thierry@pompo.net>
#
# $FreeBSD$
#
PORTNAME= blocksolve95
PORTVERSION= 3.0
CATEGORIES= math parallel
MASTER_SITES= ftp://info.mcs.anl.gov/pub/BlockSolve95/ \
ftp://ftp.irisa.fr/pub/mirrors/BlockSolve95/
DISTNAME= BlockSolve95
EXTRACT_SUFX= .tar.Z
DIST_SUBDIR= ${PORTNAME}-${PORTVERSION}
MAINTAINER= ports@FreeBSD.org
COMMENT= Sofware for the efficient solution of large, sparse linear systems
LIB_DEPENDS= f77blas.1:${PORTSDIR}/math/atlas
BUILD_DEPENDS= ${MPIDIR}/lib/libmpich.a:${PORTSDIR}/net/mpich
RUN_DEPENDS= ${MPIDIR}/bin/mpirun:${PORTSDIR}/net/mpich
USE_XLIB= yes
USE_GMAKE= yes
MAKEFILE= makefile
MAKE_ARGS= GMAKE=${GMAKE} PETSC_ARCH=${PETSC_ARCH} BOPT=${BOPT}
MPIDIR= ${LOCALBASE}/mpich
PETSC_ARCH= freebsd
BOPT?= O
FFLAGS?= -O2
INCLUDES= BMmsg.h BSdepend.h BSlog.h BSmy_blas.h BSprivate.h BSsparse.h
PORTDOCS= manual.ps
.include <bsd.port.pre.mk>
do-install:
${INSTALL_DATA} ${WRKSRC}/lib/lib${BOPT}/${PETSC_ARCH}/libBS95.a \
${PREFIX}/lib
${INSTALL_DATA} ${INCLUDES:S|^|${WRKSRC}/include/|} ${PREFIX}/include
${INSTALL_MAN} ${MAN3:S|^|${WRKSRC}/doc/man/man3/|} ${MANPREFIX}/man/man3
.if !defined(NOPORTDOCS)
${MKDIR} ${DOCSDIR}
${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/doc/manual/|} ${DOCSDIR}
${MKDIR} ${EXAMPLESDIR}
${INSTALL_DATA} ${WRKSRC}/examples/* ${EXAMPLESDIR}
@${RM} ${EXAMPLESDIR}/makefile.orig
.endif
.if defined(MAINTAINER_MODE)
test: build
@(cd ${BUILD_WRKSRC}/examples; \
${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} bsrunexamples clean)
.endif
.include "${FILESDIR}/BSman3.inc"
.include <bsd.port.post.mk>

View file

@ -0,0 +1,2 @@
MD5 (blocksolve95-3.0/BlockSolve95.tar.Z) = 8b7cc41f0fe6e9a7b53ab0f4697b7cae
SIZE (blocksolve95-3.0/BlockSolve95.tar.Z) = 655906

View file

@ -0,0 +1,85 @@
MAN3= BSb_back_solve.3 \
BSb_backward.3 \
BSb_for_solve.3 \
BSb_forward.3 \
BSback_solve.3 \
BSback_solve1.3 \
BSbackward.3 \
BSbackward1.3 \
BSbjacobi.3 \
BScopy_nz.3 \
BScopy_par_mat.3 \
BScreate_ctx.3 \
BSctx_print.3 \
BSctx_set_cs.3 \
BSctx_set_ct.3 \
BSctx_set_err.3 \
BSctx_set_guess.3 \
BSctx_set_id.3 \
BSctx_set_is.3 \
BSctx_set_max_it.3 \
BSctx_set_method.3 \
BSctx_set_np.3 \
BSctx_set_num_rhs.3 \
BSctx_set_pr.3 \
BSctx_set_pre.3 \
BSctx_set_print_log.3 \
BSctx_set_ps.3 \
BSctx_set_restart.3 \
BSctx_set_rt.3 \
BSctx_set_scaling.3 \
BSctx_set_si.3 \
BSctx_set_tol.3 \
BSeasy_A.3 \
BSfactor.3 \
BSfinalize.3 \
BSfor_solve.3 \
BSfor_solve1.3 \
BSforward.3 \
BSforward1.3 \
BSfree_comm.3 \
BSfree_copy_par_mat.3 \
BSfree_ctx.3 \
BSfree_easymat.3 \
BSfree_off_map.3 \
BSfree_par_mat.3 \
BSfree_reperm.3 \
BSfree_spmat.3 \
BSfreeg2l.3 \
BSfreel2g.3 \
BSget_diag.3 \
BSglob2loc.3 \
BSglob2proc.3 \
BSglobal_flops.3 \
BSglobal_nnz.3 \
BSglobal_num_cliques.3 \
BSglobal_num_inodes.3 \
BSinit.3 \
BSinv_diag_block.3 \
BSloc2glob.3 \
BSlocal_flops.3 \
BSlocal_nnz.3 \
BSlocal_num_cliques.3 \
BSlocal_num_inodes.3 \
BSmain_perm.3 \
BSmain_reperm.3 \
BSmake_off_map.3 \
BSmat_subtract.3 \
BSnum_colors.3 \
BSoffset.3 \
BSpar_gmres.3 \
BSpar_isolve.3 \
BSpar_solve.3 \
BSpar_sym_solve.3 \
BSprint_log.3 \
BSsave_diag.3 \
BSscale_diag.3 \
BSset_diag.3 \
BSset_diagv.3 \
BSset_mat_icc_storage.3 \
BSset_mat_symmetric.3 \
BSsetup_block.3 \
BSsetup_factor.3 \
BSsetup_forward.3 \
BStri_mult.3 \
BStri_solve.3

View file

@ -0,0 +1,19 @@
--- bmake/common.orig Tue Jan 9 16:35:45 1996
+++ bmake/common Sun Oct 3 23:03:55 2004
@@ -161,13 +161,13 @@
#
# Builds library - fast version
libfast: chkpetsc_dir $(SOURCEC) $(SOURCEF)
- @-if [ "$(SOURCEC)" != "" ] ; then \
+ -if [ "$(SOURCEC)" != "" ] ; then \
$(CC) -c $(CFLAGS) $(BASEOPT) $(SOURCEC) ;\
fi
- @-if [ "$(SOURCEF)" != "" ] ; then \
+ -if [ "$(SOURCEF)" != "" ] ; then \
$(FC) -c $(FFLAGS) $(BASEOPTF) $(SOURCEF) ;\
fi
- @-if [ "$(OBJS)" != " " ] ; then \
+ -if [ "$(OBJS)" != " " ] ; then \
$(AR) cr $(LIBNAME) $(OBJS); \
$(RM) -f $(OBJS); \
fi

View file

@ -0,0 +1,37 @@
--- bmake/freebsd/freebsd.orig Tue Jan 9 16:40:08 1996
+++ bmake/freebsd/freebsd Sun Oct 3 18:12:06 2004
@@ -1,13 +1,13 @@
-CC = gcc -DPARCH_freebsd
-FC = f77
+CC += -DPARCH_freebsd
+#FC = f77
AR = ar
RM = rm -f *.c.*
-OMAKE = gnumake --no-print-directory
+OMAKE = $(GMAKE)
RANLIB = ranlib
SHELL = /bin/sh
-CLINKER = gcc $(BASEOPT)
-FLINKER = f77 $(BASEOPTF)
+CLINKER = $(CC) $(BASEOPT)
+FLINKER = $(FC) $(BASEOPTF)
CONF = -DHAVE_PWD_H -DHAVE_MALLOC_H -DHAVE_STRING_H \
-DHAVE_SWAPPED_BYTES -DHAVE_X11
SYS_LIB =
@@ -33,13 +33,13 @@
$(RM) $*.o
.F.o:
$(RM) $*.f
- cpp $(PETSC_INCLUDE) $*.F > $*.f
+ $(CPP) $(PETSC_INCLUDE) $*.F > $*.f
$(FC) -c $(FFLAGS) $(BASEOPTF) $*.f
$(RM) $*.f
.F.a:
$(RM) $*.f
- cpp $(PETSC_INCLUDE) $*.F > $*.f
+ $(CPP) $(PETSC_INCLUDE) $*.F > $*.f
$(FC) -c $(FFLAGS) $(BASEOPTF) $*.f
$(RM) $*.f
$(AR) cr $(LIBNAME) $*.o

View file

@ -0,0 +1,8 @@
--- bmake/freebsd/freebsd.O.orig Thu Dec 14 20:49:35 1995
+++ bmake/freebsd/freebsd.O Sun Oct 3 23:08:37 2004
@@ -1,3 +1,3 @@
-BASEOPT = -O -Wall -Wshadow -fomit-frame-pointer -DINLINE_FOR \
+BASEOPT = $(CFLAGS) -fomit-frame-pointer -DINLINE_FOR \
-DPETSC_LOG -DPETSC_DEBUG -Dlint -DPETSC_BOPT_O
-BASEOPTF = -O4
+BASEOPTF = $(FFLAGS)

View file

@ -0,0 +1,35 @@
--- ./bmake/freebsd/freebsd.site.orig Thu Feb 15 22:53:34 1996
+++ ./bmake/freebsd/freebsd.site Sun Oct 3 20:40:47 2004
@@ -15,24 +15,24 @@
# Location of BLAS and LAPACK. These libraries are available via Netlib,
# or see $(BS_DIR)/readme for information on retrieving a subset.
#
-BLAS_LIB = /home/bsmith/lapack/blas_freebsd.a $(FC_LIB)
-LAPACK_LIB = /home/bsmith/lapack/lapack_freebsd.a
+BLAS_LIB = -lf77blas -lcblas -latlas -lg2c -lm
+LAPACK_LIB = -L$(LOCALBASE)/lib -lalapack
#
# Location of X-windows software
#
-X11_INCLUDE =
+X11_INCLUDE = -I$(X11BASE)/include
X11_LIB = -lX11
#
# Location of MPI (Message Passing Interface) software
#
-MPI_LIB = /usr/local/mpi/lib/freebsd/ch_p4/libmpi.a
-MPI_INCLUDE = -I/usr/local/mpi/include
-MPIRUN = /usr/local/mpi/bin/mpirun
+MPI_LIB = $(LOCALBASE)/mpich/lib/libmpich.a
+MPI_INCLUDE = -I$(LOCALBASE)/mpich/include
+MPIRUN = $(LOCALBASE)/mpich/bin/mpirun
#
# Location of BlockSolve95
#
-BS_INCLUDE =
-BS_LIB =
+BS_INCLUDE = $(PETSC_INCLUDE)
+BS_LIB = $(BS_DIR)/lib/lib$(BOPT)/$(PETSC_ARCH)/libBS95.a
#
# PCONF - indicates which external packages are available at your site
#

View file

@ -0,0 +1,11 @@
--- examples/makefile.orig Thu Oct 17 22:15:08 1996
+++ examples/makefile Sun Oct 3 21:38:26 2004
@@ -19,7 +19,7 @@
$(MPI_LIB) $(FC_LIB) $(SYS_LIB) -lm
LINCLUDE = $(SOURCEH)
-bsrunexamples:
+bsrunexamples: $(EXAMPLES_1)
-@echo ">>>>>> Running examples in example directory <<<<<<"
-@$(MPIRUN) -np 4 grid0.$(PETSC_ARCH) 2 2 1 10 10 10
-@$(MPIRUN) -np 4 grid1.$(PETSC_ARCH) 2 2 1 10 10 10

View file

@ -0,0 +1,14 @@
--- include/BSdepend.h.orig Tue Jul 8 21:10:10 1997
+++ include/BSdepend.h Sun Oct 3 18:23:32 2004
@@ -16,6 +16,11 @@
#define MPI_Aint int
#include <stdio.h>
+
+#if defined(PARCH_freebsd)
+#include <stdlib.h>
+#endif
+
#if defined(PARCH_sun4) && !defined(__cplusplus) && defined(_Gnu_)
extern int fprintf(FILE*,const char*,...);
extern void sscanf(char *,...);

View file

@ -0,0 +1,15 @@
BlockSolve95 is a scalable parallel software library primarily intended for the
solution of sparse linear systems that arise from physical models, especially
problems involving multiple degrees of freedom at each node. For example, when
the finite element method is used to solve practical problems in structural
engineering, each node typically has two to five degrees of freedom;
BlockSolve95 is designed to take advantage of problems with this type of local
structure. BlockSolve95 is also reasonably efficient for problems that have
only one degree of freedom associated with each node, such as the three-
dimensional Poisson problem.
BlockSolve95 is general purpose; we do not require that the matrices have any
particular structure other than being sparse and being symmetric in structure
(but not necessarily in value).
WWW: http://www-unix.mcs.anl.gov/sumaa3d/BlockSolve/

View file

@ -0,0 +1,43 @@
include/BMmsg.h
include/BSdepend.h
include/BSlog.h
include/BSmy_blas.h
include/BSprivate.h
include/BSsparse.h
lib/libBS95.a
%%EXAMPLESDIR%%/README.examples
%%EXAMPLESDIR%%/free_grid.c
%%EXAMPLESDIR%%/get_mat.c
%%EXAMPLESDIR%%/get_mat3.c
%%EXAMPLESDIR%%/get_mat3d.c
%%EXAMPLESDIR%%/get_mat4.c
%%EXAMPLESDIR%%/makefile
%%EXAMPLESDIR%%/map3.c
%%EXAMPLESDIR%%/master0.c
%%EXAMPLESDIR%%/master1.c
%%EXAMPLESDIR%%/master2.c
%%EXAMPLESDIR%%/master3.c
%%EXAMPLESDIR%%/master4.c
%%EXAMPLESDIR%%/master5.c
%%EXAMPLESDIR%%/master6.c
%%EXAMPLESDIR%%/master7.c
%%EXAMPLESDIR%%/master8.c
%%EXAMPLESDIR%%/num_grid3d.c
%%EXAMPLESDIR%%/pargrid.h
%%EXAMPLESDIR%%/res.m
%%EXAMPLESDIR%%/res2.m
%%EXAMPLESDIR%%/run.paragon
%%EXAMPLESDIR%%/testm
%%EXAMPLESDIR%%/worker0.c
%%EXAMPLESDIR%%/worker1.c
%%EXAMPLESDIR%%/worker2.c
%%EXAMPLESDIR%%/worker3.c
%%EXAMPLESDIR%%/worker4.c
%%EXAMPLESDIR%%/worker5.c
%%EXAMPLESDIR%%/worker5.c.free
%%EXAMPLESDIR%%/worker5.c.nofree
%%EXAMPLESDIR%%/worker6.c
%%EXAMPLESDIR%%/worker7.c
%%EXAMPLESDIR%%/worker8.c
%%EXAMPLESDIR%%/write_mat_matlab.c
@dirrm %%EXAMPLESDIR%%