Skip to content

Commit

Permalink
Updaded README.md ~ more comprhensive and descriptive
Browse files Browse the repository at this point in the history
  • Loading branch information
Joseph Paulmer authored and Joseph Paulmer committed May 26, 2024
1 parent 17b6ab5 commit a1f72b3
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,56 @@
# M1Parallel

M1Parallel is a high-performance, parallel computing library designed specifically for Apple Silicon (M1) devices. It provides a set of APIs and tools to leverage the power of parallel computing paradigms, including shared memory parallelism, distributed memory parallelism, and task parallelism.

## Features

- Shared Memory Parallelism: Utilize multiple cores on a single device using pthreads for efficient parallel execution.
- Distributed Memory Parallelism: Harness the power of multiple devices using Message Passing Interface (MPI) for distributed computing.
- Task Parallelism: Easily express and execute parallel tasks using a simple and intuitive task-based programming model.
- Compatibility: Seamlessly integrate with existing parallel programming standards such as OpenMP and MPI.
- Optimized for Apple Silicon: Leveraging the unique capabilities of M1 devices to achieve optimal performance.

### File Structure

```
.
├── README.md
├── examples
│   ├── distributed_memory_example.c
│   ├── shared_memory_example.c
│   └── task_parallelism_example.c
├── include
│   └── parallel_lib
│   ├── distributed_memory
│   │   └── mpi_wrapper.h
│   ├── parallel_lib.h
│   ├── shared_memory
│   │   └── parallel_for.h
│   └── task_parallelism
│   └── task.h
└── src
├── distributed_memory
│   └── mpi_wrapper.c
├── shared_memory
│   └── parallel_for.c
└── task_parallelism
└── task.c
```

## Usage

Here's a simple example that demonstrates how to use M1Parallel for shared memory parallelism (more examples are provided in the examples folder):

```c
#include <stdio.h>
#include "parallel_lib/shared_memory/parallel_for.h"

void print_number(int num) {
printf("Number: %d\n", num);
}

int main() {
parallel_for(0, 10, print_number);
return 0;
}
```

0 comments on commit a1f72b3

Please sign in to comment.