{"id":17104517,"url":"https://github.com/emfomy/isvd","last_synced_at":"2026-02-25T07:44:41.224Z","repository":{"id":62571883,"uuid":"99202178","full_name":"emfomy/isvd","owner":"emfomy","description":"Integrated Singular Value Decomposition (iSVD)","archived":false,"fork":false,"pushed_at":"2019-09-11T07:33:11.000Z","size":3296,"stargazers_count":3,"open_issues_count":18,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-02-15T23:51:18.574Z","etag":null,"topics":["distributed-algorithm","gpu","parallel-algorithm","randomized-algorithm","singular-value-decomposition"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emfomy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-08-03T07:09:30.000Z","updated_at":"2025-10-24T13:29:32.000Z","dependencies_parsed_at":"2022-11-04T00:27:09.221Z","dependency_job_id":null,"html_url":"https://github.com/emfomy/isvd","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/emfomy/isvd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fisvd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fisvd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fisvd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fisvd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emfomy","download_url":"https://codeload.github.com/emfomy/isvd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fisvd/sbom","scorecard":{"id":375299,"data":{"date":"2025-08-11","repo":{"name":"github.com/emfomy/isvd","commit":"c0e6ad7b681c4ded26d0044d817c304246aa1659"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.7,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 1.3.2 not signed: https://api.github.com/repos/emfomy/isvd/releases/13095637","Warn: release artifact 1.3.1 not signed: https://api.github.com/repos/emfomy/isvd/releases/12428482","Warn: release artifact 1.3.0 not signed: https://api.github.com/repos/emfomy/isvd/releases/12369996","Warn: release artifact 1.2.2 not signed: https://api.github.com/repos/emfomy/isvd/releases/8088642","Warn: release artifact 1.2.1 not signed: https://api.github.com/repos/emfomy/isvd/releases/7763010","Warn: release artifact 1.3.2 does not have provenance: https://api.github.com/repos/emfomy/isvd/releases/13095637","Warn: release artifact 1.3.1 does not have provenance: https://api.github.com/repos/emfomy/isvd/releases/12428482","Warn: release artifact 1.3.0 does not have provenance: https://api.github.com/repos/emfomy/isvd/releases/12369996","Warn: release artifact 1.2.2 does not have provenance: https://api.github.com/repos/emfomy/isvd/releases/8088642","Warn: release artifact 1.2.1 does not have provenance: https://api.github.com/repos/emfomy/isvd/releases/7763010"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T14:07:51.978Z","repository_id":62571883,"created_at":"2025-08-18T14:07:51.978Z","updated_at":"2025-08-18T14:07:51.978Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29814374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T05:36:42.804Z","status":"ssl_error","status_checked_at":"2026-02-25T05:36:31.934Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["distributed-algorithm","gpu","parallel-algorithm","randomized-algorithm","singular-value-decomposition"],"created_at":"2024-10-14T15:37:08.311Z","updated_at":"2026-02-25T07:44:41.207Z","avatar_url":"https://github.com/emfomy.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Integrated Singular Value Decomposition (iSVD)\n\n# Information\n\nThis library is a C implementation of the Integrated Singular Value Decomposition (iSVD), which is an parallel algorithm for computing low-rank approximate singular value decomposition of large size matrices.\n\n## Git\n* https://github.com/emfomy/isvd\n\n## Documentation\n* Download **isvd-#.#.#-docs.zip** from https://github.com/emfomy/isvd/releases/latest\n* May also build it using **make doc** (see below) on your own computer.\n\n## Author\n* Mu Yang \u003c\u003cemfomy@gmail.com\u003e\u003e\n\n## Tutorial\n* \\ref tutorial_main\n\n# Requirements\n\n* [CMake](https://cmake.org) 2.8.11+ (CMake 3.0+ recommended).\n* C/C++ compiler with C99/C++98 standard support ([GCC](https://gcc.gnu.org) 4.4+ recommended).\n* [BLAS](http://www.netlib.org/blas) \u0026 [LAPACK](http://www.netlib.org/lapack) library (Used for multi-core parallelization).\n* MPI Library with 2.2+ standard support ([MPICH](http://www.mpich.org) 1.2+ or [OpenMPI](https://www.open-mpi.org) 1.7+).\n\n## Optional\n* [Intel\u0026reg; Math Kernel Library](https://software.intel.com/en-us/intel-mkl) (**Recommended** for better performance, used for BLAS \u0026 LAPACK).\n* [MAGMA](http://icl.cs.utk.edu/magma/) 2.0+ (Used for BLAS \u0026 LAPACK with GPU support).\n* [OpenMP](http://openmp.org) Library (**Recommended** for better performance, used for multi-thread parallelization).\n* [Google Test Library](https://github.com/google/googletest) (Used for code testing).\n* [Doxygen](http://www.stack.nl/~dimitri/doxygen/) (Used for documentation).\n\n# Installation\n\nPlease use the following commands to create Makefiles\n\n```\ncd \u003cisvd-source-folder\u003e\nmkdir build\ncd build\ncmake ..\n```\n\n## Options\n\nUse the following command to set options\n\n```\nccmake ..\n```\n\nThe following table are the main options\n\n| Option                 | Detail                             | Note                           |\n|------------------------|------------------------------------|--------------------------------|\n| `ISVD_BLAS`            | the selection BLAS/LAPACK library. | Options: `BLAS/MKL`            |\n| `ISVD_BUILD_DEMO`      | build demo codes.                  |                                |\n| `ISVD_BUILD_DOC`       | build documentation.               |                                |\n| `ISVD_BUILD_LIB`       | build libraries.                   |                                |\n| `ISVD_BUILD_TEST`      | build unit tests.                  |                                |\n| `ISVD_INDEX_TYPE`      | the selection index type.          | Options: `32/64`               |\n| `ISVD_OMP`             | the selection OpenMP library.      | Options: `OFF/GOMP/IOMP`       |\n| `ISVD_USE_GPU`         | enable GPU support.                |                                |\n| `ISVD_TEST_VERBOSE`    | enable verbose unit tests.         |                                |\n| `GTEST_ROOT`           | the root path of Google Test.      | Require `ISVD_BUILD_TEST`      |\n| `INTEL_ROOT`           | the root path of Intel libraries.  | Require `ISVD_BLAS = MKL`      |\n| `MKL_ROOT`             | the root path of Intel MKL.        | Require `ISVD_BLAS = MKL`      |\n| `MPI_PROCS`            | the number of MPI processes.       | Only used in demo codes.       |\n| `OMP_THRDS`            | the number of OpenMP threads.      | Only used in demo/check codes. |\n\n## Makefile\n\nThe following table are the main Makefile rules\n\n| Command        | Detail                         | Options                        |\n|----------------|--------------------------------|--------------------------------|\n| `make all`     | build all libraries            |                                |\n| `make install` | install package                |                                |\n| `make check`   | build and run unit tests       | Require `ISVD_BUILD_TEST`      |\n| `make doc`     | build documentation            | Require `ISVD_BUILD_DOC`       |\n| `make help`    | display make-rules             |                                |\n\n## Test installation\n\n* Set `ISVD_BUILD_TEST` using **ccmake**. (Also recommended to unset `ISVD_TEST_VERBOSE` if GPU is enabled).\n* Run **make check**\n  * Known issue: **RealSingle_WenYinIntegration.Test.#** / **s_integrate_wen_yin_#** fail the test.\n\n# Usage\n\n* Define `ISVD_USE_ILP64` before include `isvd.h` to use 64-bit integer.\n* All 64bit libraries and executables are named with suffix `_64`.\n* The header files are located in `build/include`\n* The libraries are located in `build/lib`\n\n## Libraries\n\nPlease link exactly one library for all categories.\n\n* Correct\n  * `gcc test.c -I\u003cinclude-path\u003e -L\u003clibrary-path\u003e -Wl,-rpath \u003clibrary-path\u003e -lisvd_core -lisvd_la_mkl_iomp -lisvd_gpu_magma`\n  * `gcc test.c -I\u003cinclude-path\u003e -L\u003clibrary-path\u003e -Wl,-rpath \u003clibrary-path\u003e -lisvd_core -lisvd_la_blas -lisvd_gpu_none`\n* Wrong\n  * `gcc test.c -I\u003cinclude-path\u003e -L\u003clibrary-path\u003e -Wl,-rpath \u003clibrary-path\u003e -lisvd_core`\n    * (Some category of libraries are not linked)\n  * `gcc test.c -I\u003cinclude-path\u003e -L\u003clibrary-path\u003e -Wl,-rpath \u003clibrary-path\u003e -lisvd_core -lisvd_la_blas -lisvd_gpu_magma -lisvd_gpu_none`\n    * (Some category of libraries are linked multiple times)\n\n| Name                   | Category       | Detail                                 | Options                            |\n|------------------------|----------------|----------------------------------------|------------------------------------|\n| `isvd_core`            | Core           | Core routines                          |                                    |\n| `isvd_la_blas`         | Linear Algebra | Sequential Plain BLAS                  | `ISVD_BLAS=BLAS`, `ISVD_OMP=NO`    |\n| `isvd_la_mkl`          | Linear Algebra | Sequential Intel MKL                   | `ISVD_BLAS=MKL`,  `ISVD_OMP=NO`    |\n| `isvd_la_mkl_gomp`     | Linear Algebra | Parallel Intel MKL using GNU OpenMP    | `ISVD_BLAS=MKL`,  `ISVD_OMP=GOMP`  |\n| `isvd_la_mkl_iomp`     | Linear Algebra | Parallel Intel MKL using Intel OpenMP  | `ISVD_BLAS=MKL`,  `ISVD_OMP=IOMP`  |\n| `isvd_gpu_none`        | GPU            | No GPU                                 | `ISVD_USE_GPU=NO`                  |\n| `isvd_gpu_magma`       | GPU            | MAGMA GPU                              | `ISVD_USE_GPU=YES`                 |\n\n# Q\u0026amp;A\n\n## How to set CMake options?\n\n* Use `ccmake ..` or `ccmake \u003cpath-to-source\u003e` in the `build` folder.\n* Press `\u003cEnter\u003e` on the option you want to change, change it, and press `\u003cEnter\u003e` again.\n* After changing the options, press `\u003cc\u003e` to configure, and press `\u003cg\u003e` to generate Makefiles if configured successfully.\n* To quit without saving, press `\u003cq\u003e`.\n\n## Why isn't Intel MKL found?\n\n* Source `mklvars.sh` in the `bin` folder of your Intel MKL to set the environment variables.\n\n## Why isn't Google Test found?\n\n* Set `GTEST_ROOT` to a folder containing `include` and `lib` of Google Test.\n\n## How to enable multithread support?\n\n* Set `ISVD_OMP` with `ccmake` before building libraries.\n* Make sure your LAPACK\u0026amp;BLAS / Intel MKL uses supports multithreading.\n\n## How to use 64-bit integer?\n\n* Set `ISVD_USE_ILP64` with `ccmake` before building libraries; or\n* Add `-DISVD_USE_ILP64` to compile flag.\n* Make sure your LAPACK\u0026amp;BLAS / Intel MKL uses 64bit integer.\n\n## Error \"make[2]: *** No rule to make target 'tmp/......\" occurs. How to solve it?\n\n* Use `cmake .` to and recompile again.\n* Note that the `tmp` folder will be deleted after `make clean`.\n\n# Reference\n\n* [Ting-Li Chen, Dawei D. Chang, Su-Yun Huang, Hung Chen, Chienyao Lin, Weichung Wang, “Integrating Multiple Random Sketches for Singular Value Decomposition”](https://arxiv.org/abs/1608.08285)\n* [Mu Yang, “Highly Scalable Parallelism of Integrated Randomized Singular Value Decomposition with Big Data Applications”](http://doi.org/10.6342/NTU201702960)\n\n# License {#Readme_License}\n* [MIT License](LICENSE.md)\n\\include LICENSE.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femfomy%2Fisvd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femfomy%2Fisvd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femfomy%2Fisvd/lists"}