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

https://github.com/nguyenpanda/gemm

Parallel Computing Assignment - K251 - HCMUT - VNU
https://github.com/nguyenpanda/gemm

cpp23 cuda forkjoin matrix-multiplication mpi openmp openmpi parallel-computing simd simd-instructions strassen-multiplication

Last synced: 2 days ago
JSON representation

Parallel Computing Assignment - K251 - HCMUT - VNU

Awesome Lists containing this project

README

          

# OpenMP Introduction

This repository by `nguyenpanda` contains `C/C++` code and examples for the `Parallel Computing` course taught by `Dr. Thanh-Dang Diep`, who is a lecturer at `Ho Chi Minh City University of Technology (HCMUT), VNU-HCM`.

## Build & Run

```bash
cd # e.g., performance, test, ...
make execute
```

Tip: run `make help` to see all available targets defined in each `Makefile`.

## Repository layout

```bash
repo_root
├── performance
│ ├── .env
│ ├── main.cpp
│ └── Makefile
│ ...
│ ...
├──
│ ├── .env
│ ├── main.cpp
│ └── Makefile
├── includes
│ ├── matrix.h
│ ├── nguyenpanda.h
│ └── omp_intro.h
├── Makefile # top-level (primary) Makefile
├── README.md
└── template
├── .env
├── main.cpp
└── Makefile
```

- The top-level `repo_root/Makefile` is the primary entry point.

- To override `OpenMP` or `runtime` environment variables for a specific exercise, edit `.env` file.

- To add or tweak compile flags (e.g., `CXXFLAGS`, `LDFLAGS`, `INCLUDES`), edit `Makefile` in ``. Or adding via command line while compile using `EXTRA_CXXFLAGS` or `EXTRA_MACRO` (e.g., `cd performance && make execute EXECUTE=build/BM_MatAdd.exe EXTRA_CXXFLAGS="-O3 -Ofast -Wall"`)

## Directories

A quick map of what each directory (``) demonstrates:

| **Name** | **Description** | **Note** |
|:--------:|-----------------|----------|
| include | Contains the core of this repo | The implementation is done in header file, because of `C++` template |
| performance | All benchmarks are done in this repo | Using `Google Benchmark` and contains its own |
| test | Testing the correctness of algorithm | Using `Numpy` |