{"id":22243170,"url":"https://github.com/ims94/parallel_matrix_multiplication","last_synced_at":"2025-03-25T10:42:05.892Z","repository":{"id":95419517,"uuid":"94891916","full_name":"IMS94/parallel_matrix_multiplication","owner":"IMS94","description":"A serial and parallel matrix multiplication implementation for testing performance","archived":false,"fork":false,"pushed_at":"2017-07-27T09:29:13.000Z","size":12,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-30T09:42:57.680Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IMS94.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-06-20T13:03:44.000Z","updated_at":"2022-04-18T14:11:34.000Z","dependencies_parsed_at":"2023-03-13T23:48:01.761Z","dependency_job_id":null,"html_url":"https://github.com/IMS94/parallel_matrix_multiplication","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IMS94%2Fparallel_matrix_multiplication","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IMS94%2Fparallel_matrix_multiplication/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IMS94%2Fparallel_matrix_multiplication/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IMS94%2Fparallel_matrix_multiplication/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IMS94","download_url":"https://codeload.github.com/IMS94/parallel_matrix_multiplication/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245449531,"owners_count":20617187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-12-03T04:21:18.201Z","updated_at":"2025-03-25T10:42:05.864Z","avatar_url":"https://github.com/IMS94.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Comparison between sequential and parallel matrix multiplication and optimizations\n\n## Prerequisites\n\n1. Ubuntu 16.04 Operating System is preferred because it contains all the\nrequired tools pre-installed.\n2. CMake 3.5 or above (Install with `sudo apt install cmake`)\n3. GNU gcc (5.4.0 - comes with Ubuntu. To install `sudo apt install gcc`)\n\n## CLI\nFor both sequential vs parallel and optimized scenarios, same code is\nused but with different compiler parameters.\n\nOnce compiled, this code will result in an executable named `multiplier`.\nThis executable requires at least 2 arguments.\n\n`./multiplier [sample_size] [S|P|OP]`\n\n- `[sample_size]` is the number of matrices that should be used for each\ntest.\n\n- `[S|P|OP]` - As the second argument, you should give at least one of\n`S(Sequential)`, `P(Parallel non-optimized)` and `OP(Optimized Parallel)`\nwhich will determine which test you want to run.\n\n- If you want run the sequential matrix multiplication test with a sample\nsize 10, you should run: `./multiplier 10 S` and you will see the\n**mean execution time, standard deviation** printed.\n\n- If you want run both sequential matrix multiplication test and the non-optimized\nparallel matrix multiplication at the same time, each with a sample\nsize 10, you should run: `./multiplier 10 S P` and you will see the\nresults printed accordingly.\n\n## Steps to compile\nTo run each version/scenario, please follow the following steps.\n\n### Running sequential and non-optimized parallel matrix multiplication\n\n1. Open terminal and go to directory where `CMakeLists.txt` file is at.\n2. Create directory **build** inside that: `mkdir build`\n3. Go into **build** directory: `cd build`\n4. Run CMake with:\n\n    `cmake ..`\n\n    You will see some files have been created inside **build**\n    directory like *Makefile*, *CMakeCache.txt*\n\n5. Then run\n\n    `make all`\n\n    You will see the executable `multiplier` has been created in that\n    directory.\n\n6. Run the **multipler** with following arguments,\n\n   `./multiplier [sample_size] S P`\n\n   and the execution times will be printed on the terminal.\n\n### Running optimized parallel matrix multiplication\n\n*Note*: If you already have created a `build` directory, first delete it.\n\n1. Open terminal and go to directory where `CMakeLists.txt` file is at.\n2. Create directory **build** inside that: `mkdir build`\n3. Go into **build** directory: `cd build`\n4. Run CMake with:\n\n    `cmake -DCMAKE_BUILD_TYPE=Release ..`\n\n    You will see some files have been created inside **build** directory\n    like *Makefile*, *CMakeCache.txt*\n\n5. Then run\n\n    `make all`\n\n    You will see the executable `multiplier` has been created in that\n    directory.\n\n6. Run the **multipler** with following arguments,\n\n   `./multiplier [sample_size] OP`\n\n   and the execution times will be printed on the terminal.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fims94%2Fparallel_matrix_multiplication","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fims94%2Fparallel_matrix_multiplication","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fims94%2Fparallel_matrix_multiplication/lists"}