{"id":17104531,"url":"https://github.com/emfomy/mcnla","last_synced_at":"2026-01-18T20:33:19.140Z","repository":{"id":76959448,"uuid":"65194298","full_name":"emfomy/mcnla","owner":"emfomy","description":"Monte Carlo Numerical Linear Algebra Package","archived":false,"fork":false,"pushed_at":"2018-09-13T03:35:17.000Z","size":4372,"stargazers_count":3,"open_issues_count":37,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T01:41:58.125Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-08T10:10:41.000Z","updated_at":"2024-07-03T06:43:58.000Z","dependencies_parsed_at":"2023-03-28T20:48:25.213Z","dependency_job_id":null,"html_url":"https://github.com/emfomy/mcnla","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/emfomy/mcnla","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fmcnla","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fmcnla/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fmcnla/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fmcnla/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emfomy","download_url":"https://codeload.github.com/emfomy/mcnla/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fmcnla/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28549844,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T19:56:05.265Z","status":"ssl_error","status_checked_at":"2026-01-18T19:55:54.685Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":[],"created_at":"2024-10-14T15:37:10.229Z","updated_at":"2026-01-18T20:33:19.125Z","avatar_url":"https://github.com/emfomy.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MCNLA\nMonte Carlo Numerical Linear Algebra Package\n\n## Information\n\n### Git\n* https://github.com/wlab-pro/mcnla\n\n### Documentation\n* http://wlab-pro.github.io/mcnla\n\n### Author\n* Mu Yang \u003c\u003cemfomy@gmail.com\u003e\u003e\n\n### Tutorial\n* @ref tutorial_main\n\n## Requirements\n* [CMake](https://cmake.org) 2.8+ (CMake 3+ recommended).\n* C++ compiler with C++11 support ([GCC](https://gcc.gnu.org) 5+ recommended).\n* [BLAS](http://www.netlib.org/blas) \u0026 [LAPACK](http://www.netlib.org/lapack) library.\n* [OpenMP](http://openmp.org) Library.\n* MPI Library ([MPICH](http://www.mpich.org) or [OpenMPI](https://www.open-mpi.org)).\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\u003c!-- * [MAGMA](http://icl.cs.utk.edu/magma/) 2+ (Used for BLAS \u0026 LAPACK with GPU support). --\u003e\n* [DOxygen](http://www.stack.nl/~dimitri/doxygen/) (Used for documentation).\n* [Google Test Library](https://github.com/google/googletest) (Used for code testing).\n\n## Installation\n\nPlease use the following commands to create Makefiles\n\n```\nmkdir build\ncd build\ncmake \u003cpath-to-source\u003e\n```\n\n### Options\n\nUse the following command to set options\n\n```\nccmake \u003cpath-to-source\u003e\n```\n\n* Set 'MCNLA_BLAS'          to select BLAS/LAPACK library. \\[BLAS/MKL\\]\n* Set 'MCNLA_BUILD_DEMO'    to build demo codes.\n* Set 'MCNLA_BUILD_DOC'     to build documentation.\n* Set 'MCNLA_BUILD_DRIVER'  to build driver codes.\n* Set 'MCNLA_BUILD_REPORT'  to build report codes.\n* Set 'MCNLA_BUILD_TEST'    to build test codes.\n* Set 'MCNLA_INSTALL_DEMO'  to install demos.\n* Set 'MCNLA_INT_SIZE'      to select system integer size. \\[32/64\\]\n* Set 'MCNLA_OMP'           to select OpenMP library. \\[OFF/GOMP/IOMP\\] (Require 'MCNLA_BLAS = MKL')\n* Set `MCNLA_USE_GPU`       to enable GPU support.\n\n* Set 'GTEST_ROOT'          for the root path of Google Test.           (Require 'MCNLA_BUILD_TEST')\n* Set 'INTEL_ROOT'          for the root path of Intel libraries.       (Require 'MCNLA_BLAS = MKL')\n* Set 'MKL_ROOT'            for the root path of Intel MKL.             (Require 'MCNLA_BLAS = MKL')\n* Set 'MPI_PROCS'           to set the number of MPI processes used in demo codes.\n\n### Makefile\n\n| Command        | Detail                   |\n|----------------|--------------------------|\n| `make all`     | build all binaries       |\n| `make install` | install package          |\n| `make run`     | run demo code            |\n| `make check`   | build and run test codes |\n| `make doc`     | build documentation      |\n| `make help`    | display make-rules       |\n\n### Definitions\n\n* Define `MCNLA_USE_ILP64`        to use 64-bit integer.\n* Define `MCNLA_USE_MKL`          to enable Intel MKL.\n* Define `MCNLA_USE_GPU`          to enable GPU support.\n* Define `MCNLA_DISABLE_LITERAL`  to disable literal definition in global namespace.\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 Intel MKL is not found?\n\n* Source `mklvars.sh` in the `bin` folder of your Intel MKL to set the environment variables.\n\n### Why Google Test is not found?\n\n* Set `GTEST_ROOT` to a folder containing `include` and `lib` of Google Test.\n\n### How to use 64-bit integer?\n\n* Set `MCNLA_USE_ILP64` with `ccmake`.\n* If you want to compile directly, add `-DMCNLA_USE_ILP64` to compiler flag.\n* Make sure your LAPACK\u0026amp;BLAS / Intel MKL uses 64bit integer. Make sure you uses the correct library and flags of Intel MKL.\n\n### `std::bad_alloc` occurs. What should I do?\n\n* Possible issues:\n  - Not enough memory. You might request a vector/matrix which size exceed your memory size.\n  - Index overflow. Use 64-bit integer instead of 32-bit integer. For example, if you request a `1e5` x `1e5` matrix, there will be `1e10` elements, which is larger than the maximum number in 32-bit integer (about `2.1e9`). Using 64-bit integer may solve this problem.\n\n## Reference\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\n## License\n@include LICENSE.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femfomy%2Fmcnla","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femfomy%2Fmcnla","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femfomy%2Fmcnla/lists"}