mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 01:39:16 -04:00
Update math/superlu_mt to version 3.1, along with some cleanups.
PR: 219265 Submitted by: pfg
This commit is contained in:
parent
5fd41657b0
commit
f4547b0bb1
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=443735
10 changed files with 92 additions and 147 deletions
|
@ -2,12 +2,11 @@
|
||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
PORTNAME= superlu_mt
|
PORTNAME= superlu_mt
|
||||||
PORTVERSION= 2.0.20080115
|
PORTVERSION= 3.1.20160319
|
||||||
PORTREVISION= 9
|
|
||||||
CATEGORIES= math
|
CATEGORIES= math
|
||||||
MASTER_SITES= http://crd.lbl.gov/~xiaoye/SuperLU/ \
|
MASTER_SITES= http://crd.lbl.gov/~xiaoye/SuperLU/ \
|
||||||
http://crd.lbl.gov/~xiaoye/:doc
|
http://crd.lbl.gov/~xiaoye/:doc
|
||||||
DISTNAME= ${PORTNAME}_2.0
|
DISTNAME= ${PORTNAME}_3.1
|
||||||
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} simax97.ps.gz:doc
|
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} simax97.ps.gz:doc
|
||||||
DIST_SUBDIR= superlu2
|
DIST_SUBDIR= superlu2
|
||||||
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
|
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
|
||||||
|
@ -15,7 +14,11 @@ EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
|
||||||
MAINTAINER= ports@FreeBSD.org
|
MAINTAINER= ports@FreeBSD.org
|
||||||
COMMENT= Routines for performing multithreaded sparse factorization
|
COMMENT= Routines for performing multithreaded sparse factorization
|
||||||
|
|
||||||
|
LICENSE= BSD3CLAUSE
|
||||||
|
LICENSE_FILE= ${WRKSRC}/License.txt
|
||||||
|
|
||||||
BROKEN_aarch64= fails to build: undefined reference to sbrk
|
BROKEN_aarch64= fails to build: undefined reference to sbrk
|
||||||
|
BROKEN_sparc64= Does not link on sparc64
|
||||||
|
|
||||||
USES= fortran gmake
|
USES= fortran gmake
|
||||||
|
|
||||||
|
@ -49,21 +52,16 @@ FPIC= -fPIC
|
||||||
FPIC= -fpic
|
FPIC= -fpic
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if ${ARCH} == "sparc64"
|
|
||||||
BROKEN= Does not link on sparc64
|
|
||||||
.endif
|
|
||||||
|
|
||||||
USE_LDCONFIG= yes
|
USE_LDCONFIG= yes
|
||||||
WRKSRC= ${WRKDIR}/SuperLU_MT_2.0
|
WRKSRC= ${WRKDIR}/SuperLU_MT_3.1
|
||||||
WRKSRC_SHARED= ${WRKDIR}/SuperLU_MT_2.0_shared
|
WRKSRC_SHARED= ${WRKDIR}/SuperLU_MT_3.1_shared
|
||||||
ALL_TARGET= lib
|
ALL_TARGET= lib
|
||||||
SVERSION= 1
|
SVERSION= 3
|
||||||
|
|
||||||
ARCH2FIX= CBLAS/Makefile MAKE_INC/make.openmp MAKE_INC/make.exemplar \
|
ARCH2FIX= CBLAS/Makefile MAKE_INC/make.openmp MAKE_INC/make.exemplar \
|
||||||
MAKE_INC/make.pthreads TESTING/MATGEN/Makefile \
|
make.inc SRC/Makefile TESTING/MATGEN/Makefile
|
||||||
make.inc SRC/Makefile
|
|
||||||
|
|
||||||
post-patch:
|
do-configure:
|
||||||
.for fmk in ${ARCH2FIX}
|
.for fmk in ${ARCH2FIX}
|
||||||
@${REINPLACE_CMD} -e 's|^ARCH *.= ar|ARCMD = ar| ; \
|
@${REINPLACE_CMD} -e 's|^ARCH *.= ar|ARCMD = ar| ; \
|
||||||
s|\$$(ARCH)|$$(ARCMD)|' ${WRKSRC}/${fmk}
|
s|\$$(ARCH)|$$(ARCMD)|' ${WRKSRC}/${fmk}
|
||||||
|
@ -106,20 +104,24 @@ do-build:
|
||||||
done
|
done
|
||||||
|
|
||||||
do-install:
|
do-install:
|
||||||
${INSTALL_DATA} ${WRKDIR}/tmp_static/libsuperlu_mt.a ${STAGEDIR}${PREFIX}/lib
|
${INSTALL_DATA} ${WRKDIR}/tmp_static/libsuperlu_mt_*.a ${STAGEDIR}${PREFIX}/lib
|
||||||
${INSTALL_LIB} ${WRKDIR}/tmp_shared/libsuperlu_mt.so.${SVERSION} ${STAGEDIR}${PREFIX}/lib
|
${INSTALL_LIB} ${WRKDIR}/tmp_shared/libsuperlu_mt_*.so.${SVERSION} ${STAGEDIR}${PREFIX}/lib
|
||||||
cd ${STAGEDIR}${PREFIX}/lib && ${LN} -s -f libsuperlu_mt.so.${SVERSION} libsuperlu_mt.so
|
${RLN} ${STAGEDIR}${PREFIX}/lib/libsuperlu_mt_PTHREAD.so.${SVERSION} \
|
||||||
|
${STAGEDIR}${PREFIX}/lib/libsuperlu_mt_PTHREAD.so
|
||||||
|
${RLN} ${STAGEDIR}${PREFIX}/lib/libsuperlu_mt_PTHREAD.so.${SVERSION} \
|
||||||
|
${STAGEDIR}${PREFIX}/lib/libsuperlu_mt.so
|
||||||
${MKDIR} ${STAGEDIR}${PREFIX}/include/${PORTNAME}
|
${MKDIR} ${STAGEDIR}${PREFIX}/include/${PORTNAME}
|
||||||
${INSTALL_DATA} ${WRKSRC}/SRC/*.h ${STAGEDIR}${PREFIX}/include/${PORTNAME}
|
${INSTALL_DATA} ${WRKSRC}/SRC/*.h ${STAGEDIR}${PREFIX}/include/${PORTNAME}
|
||||||
.if ${PORT_OPTIONS:MDOCS}
|
.if ${PORT_OPTIONS:MDOCS}
|
||||||
@${MKDIR} ${STAGEDIR}${DOCSDIR}
|
@${MKDIR} ${STAGEDIR}${DOCSDIR}
|
||||||
# ${INSTALL_DATA} ${WRKSRC}/INSTALL/*.ps ${STAGEDIR}${DOCSDIR}
|
${INSTALL_DATA} ${WRKSRC}/DOC/*.pdf ${STAGEDIR}${DOCSDIR}
|
||||||
# ${GZIP_CMD} ${STAGEDIR}${DOCSDIR}/*.ps
|
|
||||||
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/simax97.ps.gz ${STAGEDIR}${DOCSDIR}
|
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/simax97.ps.gz ${STAGEDIR}${DOCSDIR}
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
.ifdef MAINTAINER_MODE
|
||||||
regression-test: do-build
|
regression-test: do-build
|
||||||
@(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} testing)
|
@(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} testing)
|
||||||
@(cd ${WRKSRC_SHARED} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} testing)
|
@(cd ${WRKSRC_SHARED} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} testing)
|
||||||
|
.endif
|
||||||
|
|
||||||
.include <bsd.port.post.mk>
|
.include <bsd.port.post.mk>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
SHA256 (superlu2/superlu_mt_2.0.tar.gz) = 76f54f332db22313316798c3983b7bb704c159ce5a404ddda1f04d0fa477aab1
|
TIMESTAMP = 1494706587
|
||||||
SIZE (superlu2/superlu_mt_2.0.tar.gz) = 1332773
|
SHA256 (superlu2/superlu_mt_3.1.tar.gz) = 407b544b9a92b2ed536b1e713e80f986824cf3016657a4bfc2f3e7d2a76ecab6
|
||||||
|
SIZE (superlu2/superlu_mt_3.1.tar.gz) = 1824440
|
||||||
SHA256 (superlu2/simax97.ps.gz) = 8f8ae10e28dfdeda2fed58b0bcec1bf96f10fa7b1d055aff160d77d7aeb8a983
|
SHA256 (superlu2/simax97.ps.gz) = 8f8ae10e28dfdeda2fed58b0bcec1bf96f10fa7b1d055aff160d77d7aeb8a983
|
||||||
SIZE (superlu2/simax97.ps.gz) = 158724
|
SIZE (superlu2/simax97.ps.gz) = 158724
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- INSTALL/Makefile.orig 2013-11-16 19:14:28.000000000 +0100
|
--- INSTALL/Makefile.orig 2013-03-19 22:10:40 UTC
|
||||||
+++ INSTALL/Makefile 2013-11-16 19:14:58.000000000 +0100
|
+++ INSTALL/Makefile
|
||||||
@@ -17,7 +17,7 @@
|
@@ -17,7 +17,7 @@ install.out:
|
||||||
|
|
||||||
slamch.o: slamch.c ; $(CC) $(NOOPTS) -c $<
|
slamch.o: slamch.c ; $(CC) $(NOOPTS) -c $<
|
||||||
dlamch.o: dlamch.c ; $(CC) $(NOOPTS) -c $<
|
dlamch.o: dlamch.c ; $(CC) $(NOOPTS) -c $<
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
--- SRC/slu_mt_util.h~ 2008-01-09 08:28:56.000000000 +0900
|
|
||||||
+++ SRC/slu_mt_util.h 2008-07-02 09:54:31.000000000 +0900
|
|
||||||
@@ -12,6 +12,7 @@
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
+#include <pthread.h>
|
|
||||||
|
|
||||||
/* Macros */
|
|
||||||
#ifndef USER_ABORT
|
|
|
@ -1,14 +0,0 @@
|
||||||
--- TESTING/pddrive.c.orig 2008-06-18 22:06:40.000000000 -0500
|
|
||||||
+++ TESTING/pddrive.c 2008-06-18 22:08:38.000000000 -0500
|
|
||||||
@@ -9,6 +9,11 @@
|
|
||||||
#define FMT2 "%10s:fact=%d, trans=%d, refact=%d, equed=%d, n=%d, imat=%d, test(%d)=%12.5g\n"
|
|
||||||
#define FMT3 "%10s:info=%d, izero=%d, n=%d, nrhs=%d, imat=%d, nfail=%d\n"
|
|
||||||
|
|
||||||
+/* SuperLU compatibility */
|
|
||||||
+#define DN SLU_DN
|
|
||||||
+#define _D SLU_D
|
|
||||||
+#define GE SLU_GE
|
|
||||||
+#define NC SLU_NC
|
|
||||||
|
|
||||||
main(int argc, char *argv[])
|
|
||||||
{
|
|
|
@ -1,16 +0,0 @@
|
||||||
--- TESTING/pdgssv.c.orig 2008-06-18 22:09:01.000000000 -0500
|
|
||||||
+++ TESTING/pdgssv.c 2008-06-18 22:10:18.000000000 -0500
|
|
||||||
@@ -1,6 +1,13 @@
|
|
||||||
#include "pdsp_defs.h"
|
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
+/* SuperLU compatibility */
|
|
||||||
+#define DN SLU_DN
|
|
||||||
+#define _D SLU_D
|
|
||||||
+#define GE SLU_GE
|
|
||||||
+#define NC SLU_NC
|
|
||||||
+#define NR SLU_NR
|
|
||||||
+
|
|
||||||
void
|
|
||||||
pdgssv(int nprocs, SuperMatrix *A, int *perm_c, int *perm_r,
|
|
||||||
SuperMatrix *L, SuperMatrix *U, SuperMatrix *B, int *info )
|
|
|
@ -1,16 +0,0 @@
|
||||||
--- TESTING/pdgssvx.c.orig 2008-06-18 22:10:35.000000000 -0500
|
|
||||||
+++ TESTING/pdgssvx.c 2008-06-18 22:11:10.000000000 -0500
|
|
||||||
@@ -1,6 +1,13 @@
|
|
||||||
#include "pdsp_defs.h"
|
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
+/* SuperLU compatibility */
|
|
||||||
+#define DN SLU_DN
|
|
||||||
+#define _D SLU_D
|
|
||||||
+#define GE SLU_GE
|
|
||||||
+#define NC SLU_NC
|
|
||||||
+#define NR SLU_NR
|
|
||||||
+
|
|
||||||
void
|
|
||||||
pdgssvx(int nprocs, pdgstrf_options_t *pdgstrf_options, SuperMatrix *A,
|
|
||||||
int *perm_c, int *perm_r, equed_t *equed, double *R, double *C,
|
|
|
@ -1,62 +1,57 @@
|
||||||
--- make.inc.orig 2008-02-22 22:45:36 UTC
|
--- make.inc.orig 2015-04-30 00:46:42 UTC
|
||||||
+++ make.inc
|
+++ make.inc
|
||||||
@@ -16,13 +16,13 @@
|
@@ -22,7 +22,7 @@ PLAT = _PTHREAD
|
||||||
#
|
TMGLIB = libtmglib$(PLAT).a
|
||||||
# The machine (platform) identifier to append to the library names
|
SUPERLULIB = libsuperlu_mt$(PLAT).a
|
||||||
#
|
BLASDEF = -DUSE_VENDOR_BLAS
|
||||||
-PLAT = _sp
|
-BLASLIB = -L/usr/lib -lf77blas -latlas
|
||||||
+PLAT = _PTHREAD
|
+BLASLIB = %%BLAS%%
|
||||||
|
#BLASLIB = ../lib/libblas$(PLAT).a
|
||||||
#
|
MATHLIB = -lm
|
||||||
# The name of the libraries to be created/linked to
|
MPLIB = -lpthread
|
||||||
#
|
@@ -31,7 +31,7 @@ MPLIB = -lpthread
|
||||||
-TMGLIB = libtmglib.a
|
|
||||||
-SUPERLULIB = libsuperlu_mt$(PLAT).a
|
|
||||||
+TMGLIB = libtmg.a
|
|
||||||
+SUPERLULIB = libsuperlu_mt.a
|
|
||||||
|
|
||||||
#
|
|
||||||
# If you don't have ESSL, you can use the following blaslib instead:
|
|
||||||
@@ -30,7 +30,7 @@ SUPERLULIB = libsuperlu_mt$(PLAT).a
|
|
||||||
# which may be slower than ESSL
|
|
||||||
#
|
|
||||||
BLASDEF = -DUSE_VENDOR_BLAS
|
|
||||||
-BLASLIB = -lessl
|
|
||||||
+BLASLIB = %%BLAS%%
|
|
||||||
#BLASLIB = ../lib/libblas$(PLAT).a
|
|
||||||
MATHLIB = -lm
|
|
||||||
MPLIB = -lpthread
|
|
||||||
@@ -38,7 +38,7 @@ MPLIB = -lpthread
|
|
||||||
# The archiver and the flag(s) to use when building archive (library)
|
# The archiver and the flag(s) to use when building archive (library)
|
||||||
# If your system has no ranlib, set RANLIB = echo.
|
# If your system has no ranlib, set RANLIB = echo.
|
||||||
#
|
#
|
||||||
-ARCH = ar
|
-ARCH = ar
|
||||||
+ARCMD = ar
|
+ARCMD = ar
|
||||||
ARCHFLAGS = cr
|
ARCHFLAGS = cr
|
||||||
RANLIB = ranlib
|
RANLIB = ranlib
|
||||||
|
|
||||||
@@ -46,16 +46,17 @@ RANLIB = ranlib
|
@@ -40,8 +40,8 @@ RANLIB = ranlib
|
||||||
PREDEFS = -D_PTHREAD
|
# Definitions used by CPP:
|
||||||
|
PREDEFS = -D__PTHREAD ## -DDEBUGlevel=0 -DPRNTlevel=0
|
||||||
#
|
#
|
||||||
|
-CC = gcc
|
||||||
|
-CFLAGS = $(PREDEFS) -g #-O3
|
||||||
|
+CC = %%CC%%
|
||||||
|
+CFLAGS = $(PREDEFS) %%CFLAGS%%
|
||||||
|
# Uncomment the following to use 64-bit integer
|
||||||
|
CFLAGS += -D_LONGINT
|
||||||
|
|
||||||
-CC = xlc_r
|
@@ -49,19 +49,19 @@ CFLAGS += -D_LONGINT
|
||||||
-CFLAGS = -qarch=pwr5 -qalias=allptrs $(PREDEFS) -DPRNTlevel=0 -O3
|
# There are a few files that should NOT be optimized, which appear in the
|
||||||
-FORTRAN = xlf
|
# end of SRC/Makefile, taking the flag $(NOOPTS)
|
||||||
-FFLAGS = -O3 -qarch=pwr5
|
# NOOPTS should be defined to explicitly turn off any optimization.
|
||||||
-LOADER = xlc_r
|
-NOOPTS = -O0
|
||||||
-LOADOPTS = -bmaxdata:0x80000000
|
+NOOPTS = -O0 %%FPIC%%
|
||||||
+CC = %%CC%%
|
|
||||||
+CFLAGS = $(PREDEFS) %%CPPFLAGS%% %%CFLAGS%%
|
-BLASOPTS =
|
||||||
+FORTRAN = %%FC%%
|
+BLASOPTS =
|
||||||
+FFLAGS = %%FFLAGS%%
|
|
||||||
+LOADER = %%CC%%
|
############################################################################
|
||||||
+LOADOPTS = %%LDFLAGS%%
|
|
||||||
+NOOPTS = %%FPIC%%
|
-FORTRAN = gfortran
|
||||||
|
-FFLAGS = -O -fdefault-integer-8
|
||||||
|
+FORTRAN = %%FC%%
|
||||||
|
+FFLAGS = %%FFLAGS%% -fdefault-integer-8
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
-LOADER = gcc
|
||||||
|
-LOADOPTS = -O #-pthread
|
||||||
|
+LOADER = %%CC%%
|
||||||
|
+LOADOPTS = -O %%LDFLAGS%%
|
||||||
|
|
||||||
|
############################################################################
|
||||||
#
|
#
|
||||||
# C preprocessor defs for compilation for the Fortran interface
|
|
||||||
# (-DNoChange, -DAdd_, -DAdd__, or -DUpCase)
|
|
||||||
#
|
|
||||||
-CDEFS = -DNoChange
|
|
||||||
+CDEFS = -DAdd_
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
SuperLU_MT (version 2.0)
|
SuperLU_MT (version 3.1)
|
||||||
========================
|
========================
|
||||||
|
|
||||||
SuperLU_MT contains a set of subroutines to solve a sparse linear system
|
SuperLU_MT contains a set of subroutines to solve a sparse linear system
|
||||||
A*X=B. It uses Gaussian elimination with partial pivoting (GEPP).
|
A*X=B. It uses Gaussian elimination with partial pivoting (GEPP).
|
||||||
|
@ -8,12 +8,13 @@ preordering for sparsity is completely separate from the factorization.
|
||||||
|
|
||||||
SuperLU_MT is a parallel extension to the serial SuperLU library.
|
SuperLU_MT is a parallel extension to the serial SuperLU library.
|
||||||
SuperLU_MT is implemented in ANSI C, with multithreading extension,
|
SuperLU_MT is implemented in ANSI C, with multithreading extension,
|
||||||
for example, using POSIX threads. Currently, only the LU factorization
|
for example, using POSIX threads or OpenMP. Currently, only the LU
|
||||||
routine, which is the most time-consuming part of the solution process,
|
factorization routine, which is the most time-consuming part of the
|
||||||
is parallelized on machines with a shared address space. The other
|
solution process, is parallelized on machines with a shared address space.
|
||||||
routines, such as column preordering and the forward and back substitutions
|
The other routines, such as column preordering and the forward and
|
||||||
are performed sequentially. This "alpha" release contains only
|
back substitutions are performed sequentially.
|
||||||
double-precision real data type.
|
The library provides functionality for both real and complex
|
||||||
|
matrices, in both single and double precision.
|
||||||
|
|
||||||
Xiaoye S. Li, Lawrence Berkeley National Lab, xiaoye@nersc.gov
|
Xiaoye S. Li, Lawrence Berkeley National Lab, xiaoye@nersc.gov
|
||||||
James Demmel, Univ. of California Berkeley, demmel@cs.berkeley.edu
|
James Demmel, Univ. of California Berkeley, demmel@cs.berkeley.edu
|
||||||
|
|
|
@ -1,16 +1,18 @@
|
||||||
include/superlu_mt/colamd.h
|
include/superlu_mt/colamd.h
|
||||||
include/superlu_mt/pcsp_defs.h
|
|
||||||
include/superlu_mt/pdsp_defs.h
|
|
||||||
include/superlu_mt/pssp_defs.h
|
|
||||||
include/superlu_mt/pxgstrf_synch.h
|
include/superlu_mt/pxgstrf_synch.h
|
||||||
include/superlu_mt/pzsp_defs.h
|
|
||||||
include/superlu_mt/slu_dcomplex.h
|
include/superlu_mt/slu_dcomplex.h
|
||||||
include/superlu_mt/slu_mt_Cnames.h
|
include/superlu_mt/slu_mt_Cnames.h
|
||||||
|
include/superlu_mt/slu_mt_cdefs.h
|
||||||
|
include/superlu_mt/slu_mt_ddefs.h
|
||||||
include/superlu_mt/slu_mt_machines.h
|
include/superlu_mt/slu_mt_machines.h
|
||||||
|
include/superlu_mt/slu_mt_sdefs.h
|
||||||
include/superlu_mt/slu_mt_util.h
|
include/superlu_mt/slu_mt_util.h
|
||||||
|
include/superlu_mt/slu_mt_zdefs.h
|
||||||
include/superlu_mt/slu_scomplex.h
|
include/superlu_mt/slu_scomplex.h
|
||||||
include/superlu_mt/supermatrix.h
|
include/superlu_mt/supermatrix.h
|
||||||
lib/libsuperlu_mt.a
|
|
||||||
lib/libsuperlu_mt.so
|
lib/libsuperlu_mt.so
|
||||||
lib/libsuperlu_mt.so.1
|
lib/libsuperlu_mt_PTHREAD.a
|
||||||
|
lib/libsuperlu_mt_PTHREAD.so
|
||||||
|
lib/libsuperlu_mt_PTHREAD.so.3
|
||||||
%%PORTDOCS%%%%DOCSDIR%%/simax97.ps.gz
|
%%PORTDOCS%%%%DOCSDIR%%/simax97.ps.gz
|
||||||
|
%%PORTDOCS%%%%DOCSDIR%%/ug.pdf
|
||||||
|
|
Loading…
Add table
Reference in a new issue