xiaoyeli / superlu_mt Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Hi!
I would like to know how to map the releases listed at https://portal.nersc.gov/project/sparse/superlu/ and this repo. Maybe it would be possible to tag commits, at least for the latest version?
There are also quite a few commits merged on master
since v3.1 in 2016.
Is there a chance to cut a release with recent changes?
Thanks!
Trying to run on Windows and when try the test
pdlinsolx -p [nprocs] < big.rua
get a "HEAP CORRUPTION DETECTED:" message.
Debugging through code, the problem seems to be in cholnzcnt.c line 243
should also check that parent does not exceed bounds of colcnt; that is
if ((parent !=0) && (parent < neqns))
I am using the SuperLU_MT and the code from pdrepeat.c (https://github.com/xiaoyeli/superlu_mt/blob/master/EXAMPLE/pdrepeat.c). In this code the function dreadhb(&m, &n, &nnz, &a, &asub, &xa); is used. My matrix format is CRS and transform it into CCS by dCompRow_to_CompCol(m, n, nnz,
const_cast<double*>(_sk.data()), const_cast<int_t*>(_ik.data()), const_cast<int_t*>(_id.data()),
&a, &asub, &xa);
And then use the dCreate_CompCol_Matrix(&A, m, n, nnz, a, asub, xa, SLU_NC, SLU_D, SLU_GE); to create the Supermatrix A.
When I run the code, it gives me the following error:
** On entry to sp_ienv, parameter number 1 had an illegal value Storage for L subscripts exceeded; Current column 0; Need at least 72; You may set it by the 8-th parameter in routine sp_ienv(). Memory allocation failed at line 222 in file pmemory.c
Any suggestions about this to handle the error?
Hi, I try to install SuperLU_MT on windows with visual studio following your instructions on this webpage https://portal.nersc.gov/project/sparse/superlu/faq.html#windows. But it does not work and I got the following errors. Could you please help me to fix these errors? thanks
Severity Code Description Project File Line Suppression State
Error (active) E0393 pointer to incomplete class type "struct timeval" is not allowed SuperLU_MT C:\Installed-Libs\superlu_mt_3.1\SRC\dclock.c 72
Error (active) E1696 cannot open source file "sys/time.h" SuperLU_MT C:\Installed-Libs\superlu_mt_3.1\SRC\dclock.c 47
Error (active) E1696 cannot open source file "sys/times.h" SuperLU_MT C:\Installed-Libs\superlu_mt_3.1\SRC\dclock.c 46
Error (active) E1696 cannot open source file "unistd.h" SuperLU_MT C:\Installed-Libs\superlu_mt_3.1\SRC\dclock.c 48
Error (active) E0020 identifier "_SC_CLK_TCK" is undefined SuperLU_MT C:\Installed-Libs\superlu_mt_3.1\SRC\dclock.c 58
Error (active) E3365 incomplete class type "struct tms" is not allowed SuperLU_MT C:\Installed-Libs\superlu_mt_3.1\SRC\dclock.c 61
Error (active) E3365 incomplete class type "struct tms" is not allowed SuperLU_MT C:\Installed-Libs\superlu_mt_3.1\SRC\dclock.c 62
Error (active) E0070 incomplete type is not allowed SuperLU_MT C:\Installed-Libs\superlu_mt_3.1\SRC\dclock.c 56
Error (active) E0070 incomplete type is not allowed SuperLU_MT C:\Installed-Libs\superlu_mt_3.1\SRC\dclock.c 79
Error (active) E0070 incomplete type is not allowed SuperLU_MT C:\Installed-Libs\superlu_mt_3.1\SRC\dclock.c 80
Error (active) E0393 pointer to incomplete class type "struct timeval" is not allowed SuperLU_MT C:\Installed-Libs\superlu_mt_3.1\SRC\dclock.c 71
Hi, I have successfully compiled, linked and run superlu_mt on a Mac Intel x86_64 machine. When I do the same on a Mac Silicon M1 arm64 machine, I get a runtime error "OMP: Error #132: Thread identifier invalid." I am linking to Homebrew's libomp, which does not give me trouble with other compiled codes on M1 arm64. Any suggestions on how to fix this? Thanks. Gerard
Hello , sorry to trouble, i make the CBLAS subfolder , get this error blew, clould u help?
ar cr ../lib/libblas_OPENMP.a isamax.o sasum.o saxpy.o scopy.o sdot.o snrm2.o srot.o sscal.o
sgemv.o ssymv.o strsv.o sger.o ssyr2.o
ar: ../lib/libblas_OPENMP.a: No such file or directory
make: *** [Makefile:67: single] Error 1
Hi all.
superlu_mt-4.0.1
is failing with GCC-14
with following errors:
gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -lgomp -lflexiblas64 -fPIC -D__OPENMP -DPRNTlevel=0 -DDEBUGlevel=0 -D_LONGINT -DAdd_ -L/usr/lib64 -lflexiblas64 -c sreadmt.c
sreadmt.c:29:1: error: conflicting types for ‘sreadmt’; have ‘void(int *, int *, int *, float **, int **, int **)’
29 | sreadmt(int *m, int *n, int *nonz, float **nzval, int **rowind, int **colptr)
| ^~~~~~~
In file included from sreadmt.c:22:
slu_mt_sdefs.h:417:13: note: previous declaration of ‘sreadmt’ with type ‘void(int_t *, int_t *, int_t *, float **, int_t **, int_t **)’ {aka ‘void(long long int *, long long int *, long long int *, float **, long long int **, long long int **)’}
417 | extern void sreadmt (int_t *, int_t *, int_t *, float **, int_t **, int_t **);
| ^~~~~~~
sreadmt.c: In function ‘sreadmt’:
sreadmt.c:62:34: error: passing argument 4 of ‘sallocateA’ from incompatible pointer type [-Wincompatible-pointer-types]
62 | sallocateA(*n, *nonz, nzval, rowind, colptr); /* Allocate storage */
| ^~~~~~
| |
| int **
slu_mt_sdefs.h:333:49: note: expected ‘int_t **’ {aka ‘long long int **’} but argument is of type ‘int **’
333 | extern void sallocateA (int_t, int_t, float **, int_t **, int_t **);
| ^~~~~~~~
sreadmt.c:62:42: error: passing argument 5 of ‘sallocateA’ from incompatible pointer type [-Wincompatible-pointer-types]
62 | sallocateA(*n, *nonz, nzval, rowind, colptr); /* Allocate storage */
| ^~~~~~
| |
| int **
slu_mt_sdefs.h:333:59: note: expected ‘int_t **’ {aka ‘long long int **’} but argument is of type ‘int **’
333 | extern void sallocateA (int_t, int_t, float **, int_t **, int_t **);
| ^~~~~~~~
sreadmt.c:61:5: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
61 | scanf("%d%d%d", m, n, nonz);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
sreadmt.c:68:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
68 | scanf("%d", &nnz);
| ^~~~~~~~~~~~~~~~~
sreadmt.c:71:13: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
71 | scanf("%d%f\n", &asub[lasta], &a[lasta]);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:137: sreadmt.o] Error 1
F:\sparse\mt\fortran>f77mod.exe < cage12.rb
nproc = 12 threads used
Use minimum degree ordering on A'*A.
Storage for L subscripts exceeded; Current column 24279; Need at least 60980958;
You may set it by the 8-th parameter in routine sp_ienv().
Memory allocation failed at line 222 in file pmemory.c
I added some openmp in f77_main.f examples
` nprocs = 2
!$omp parallel
!$omp master
!$ nprocs = omp_get_num_threads()
!$omp end master
!$omp end parallel
print *, nprocs , ' threads used'`
PS: My bad is already on FAQ.
SuperLU_MT: exceeding storage errorSuperLU_MT does not support dynamic memory expansion. It pre-allocates storage based on the nonzeros in original matrix A and the estimated fill ratios given by the #6, #7, #8 parameters n SRC/sp_ienv.c. If the guestimate is small, you may get the following error message. Storage for L subscripts exceeded; Current column xxxx; Need at least yyyyyy; You may set it by the 8-th parameter in routine sp_ienv(). Then, you need to set the corresponding parameter to be a larger value in magnitude. Section 3.5.2 of the Users' Guide explains this in more detail.
means i must edit sp_ienv.c or i can use enviroment variables?
change here?
#else
case 1: return (8);
case 2: return (1);
case 3: return (200);
case 4: return (200);
case 5: return (40);
#endif
case 6: return (-20);
case 7: return (-100);
case 8: return (60980958);
}
/* Value for ISPEC(8) before case 8: return (-10)*/
program f77_main
integer maxn, maxnz
parameter ( maxn = 2132536, maxnz = 2132536)
integer rowind(maxnz), colptr(maxn)
real8 values(maxnz), b(maxn)
integer n, nnz, nrhs, ldb, info
integer nprocs
call hbcode1(n, n, nnz, values, rowind, colptr)
nrhs = 1
ldb = n
nprocs = 2
do i = 1, n
b(i) = 1
enddo
call c_bridge_pdgssv(nprocs, n, nnz, nrhs, values, rowind, colptr,
$ b, ldb, info)
if (info .eq. 0) then
write (,) (b(i), i=1, 10)
else
write(,*) 'INFO from c_bridge_dgssv = ', info
endif
stop
end
RESULT
E:\intel\superlu_mt-master\superlu_mt-master\SRC\now\built>f77_main.exe < rim.rb
Use minimum degree ordering on A'*A.
Factor time = 0.77
Factor flops = 2.114700e+09 Mflops = 2764.10
Solve time = 0.04
Solve flops = 1.983820e+07 Mflops = 537.72
#NZ in factor L = 2904678
#NZ in factor U = 7036982
#NZ in L+U = 9919100
L\U MB 109.312 total MB needed 127.179 expansions 0
9716729898987.25 19855082276513.7 22103722855047.9
11551746912007.8 14702398418294.2 21506934209532.5
13996173763919.8 11130599870742.7 14099676818866.4
-8671219949845.16
E:\intel\superlu_mt-master\superlu_mt-master\SRC\now\built>f77_main.exe < rim.rb
Use minimum degree ordering on A'*A.
Factor time = 0.75
Factor flops = 2.114960e+09 Mflops = 2820.74
Solve time = 0.04
Solve flops = 1.983882e+07 Mflops = 544.51
#NZ in factor L = 2904987
#NZ in factor U = 7036982
#NZ in L+U = 9919409
L\U MB 109.310 total MB needed 127.177 expansions 0
8200883692408.28 16757614123494.0 18655458148288.4
9749631002379.63 12408768756516.9 18151770812903.1
11812717855321.1 9394184512827.24 11900074041552.3
-7318477205747.72
I am trying to install the Superlu_mt-3.1 on the cluster. But errors showup when I typed "make"
Here are the errors:
gcc -fopenmp -o testdlamch dlamch.o lsame.o dlamchtst.o
/usr/bin/ld.gold: --push-state: unknown option
/usr/bin/ld.gold: use the --help option for usage information
collect2: error: ld returned 1 exit status
make[1]: *** [testdlamch] Error 1
make[1]: Leaving directory `/mnt/cephfs/software/jxi4/sw/SuperLU_MT_3.1/INSTALL'
make: *** [install] Error 2
I am currently using make.linux.openmp as the make.inc
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.