emfomy / isvd Goto Github PK
View Code? Open in Web Editor NEWIntegrated Singular Value Decomposition (iSVD)
License: MIT License
Integrated Singular Value Decomposition (iSVD)
License: MIT License
The result of Intel VSL is a little bit different.
MPI_Comm
is not int
in OpenMPI. Should include mpi.h
instead of define it.
Old MPI does not have MPI_Reduce_scatter_block
.
MPI uses int
only.
Should BLAS and LAPACK wrappers be renamed into camel case style? (e.g. isvd_dGemm)
In my system, libgomp.so
does not exist. There is only libgomp.so.1
.
Add utility for reading/writing MMIO matrix (, with parallel I/O).
ISO C++ does not allow C99 designated initializers.
Error message: include/c/isvd/core/param.h:131:5: error: expected primary-expression before โ.โ token
.
cudaGetDeviceCount
fails with -fsanitize=address
.
MPI does not support 64bit integer (#10). Add assertion of the size to prevent overflow.
Possible implementation: add an MPI library with wrapped MPI routines. Add assertion of size and error codes of MPI in the wrappers.
Use relative error in Google Test instead of absolute error.
Compile using -Wl,-rpath='$ORIGIN'
for all shared libraries. Therefore, all libraries will find shared libraries in the same folder.
Note that the executables should compile using -Wl,-rpath='$ORIGIN:$ORIGIN/lib:$ORIGIN/../lib'
.
Pros:
Cons:
There is no assertion for linear algebra routines.
Add tutorial pages.
As title.
mpicxx.h
requires compiler and MPI library in the same version.
MMIO library uses int
.
Allocate GPU memory outside the stages, especially matrix A, to avoid GPU reduplication of memory allocation and transformation.
Extract headers that only used in source from API headers.
Use cuRand to random generate Omega.
Implemented sketching and postprocessing stages using cuBLAS library.
LAPACK Lsamen sometimes fails.
Implement Tall-Skinny QR related stages.
Implemented sketching and postprocessing stages using MAGMA library.
Compile all possible libraries including BLAS, MKL, MAGMA, LP64, ILP64 at once instead of compiling them separately by switching options in CMake.
Reference: https://abseil.io
The single precision routines lost significance.
Currently, use double precision check data and set very large tolerance.
Some LAPACK routines call several times. Allocate working spaces manually is better.
TSQR stages require the number of processors (P) to be a power of 2.
When P is not a power of 2, the tree is unbalanced.
It's almost 2020. It's time to readopt C++11 development.
May use struct as keyword parameters. https://news.ycombinator.com/item?id=8029606
Add Fortran API for drivers and stages.
Use routines such as MPI_Gatherv
, MPI_Scatterv
.
Add Python API for drivers and stages.
Make sure no important code is wrapped in assertions.
iSVD requires MKL for VSL and VML.
Intel ICC fails the Gaussian Projection Sketching test.
Rename Hierarchical Reduction Integration to Multi-level Pairwise Integration.
Modify MMIO library for 64-bit integer types.
CMake 2.8 failed while check C++ flag std=c++98
.
Remove configured files in make clean
.
The single precision Wen-Yin Integration failed the unit tests.
The norm of matrix M becomes negative after some iteration.
Implement routines using single precision.
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.