An open API service indexing awesome lists of open source software.

https://github.com/siddhant-vij/concurrent-matrix-multiplication

Matrix multiplication using concurrency in multiple programming languages.
https://github.com/siddhant-vij/concurrent-matrix-multiplication

concurrency cpp go java matrix-multiplication multithreading optimization python

Last synced: 3 months ago
JSON representation

Matrix multiplication using concurrency in multiple programming languages.

Awesome Lists containing this project

README

          

# Concurrent Matrix Multiplication

Aims to showcase the power of concurrency and multithreading across different programming environments by implementing matrix multiplication.




The project will demonstrate how to leverage the concurrency features of Java, C++, Go, and Python to improve the performance of a computationally intensive task like matrix multiplication.


## Table of Contents

1. [Features](#features)
1. [Technical Scope](#technical-scope)
1. [Installation and Usage](#installation-and-usage)
1. [Contributing](#contributing)
1. [License](#license)


## Features

- Concurrent multiplication of two matrices.
- Dynamic input of matrix sizes and values or generation of matrices with random values.
- Performance metrics comparing concurrent and sequential implementations.
- Multi-language support: Java, C++, Go, and Python.


## Technical Scope

- **Java**: Utilizing ExecutorService and Future for managing concurrent tasks.
- **C++**: Leveraging std::thread and std::future for multithreading.
- **Go**: Implementing goroutines and channels for concurrent execution.
- **Python**: Using concurrent.futures for threading or multiprocessing.


## Installation and Usage

1. **Clone the Repository**:
```bash
git clone https://github.com/siddhant-vij/Concurrent-Matrix-Multiplication.git
```
2. **Navigate to Language Directory**:
```bash
cd Concurrent-Matrix-Multiplication/[language]
```
3. **Install Dependencies**: Standard instructions to be followed for each language, if any external dependency.
4. **Build and Run the Application**: Standard instructions to be followed for each language.


## Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

1. **Fork the Project**
2. **Create your Feature Branch**:
```bash
git checkout -b feature/AmazingFeature
```
3. **Commit your Changes**:
```bash
git commit -m 'Add some AmazingFeature'
```
4. **Push to the Branch**:
```bash
git push origin feature/AmazingFeature
```
5. **Open a Pull Request**


## License

Distributed under the MIT License. See [`LICENSE`](https://github.com/siddhant-vij/Concurrent-Matrix-Multiplication/blob/main/LICENSE) for more information.