This project is a parallel computing implementation using MPI, OpenMP, and CUDA for sequence alignment.
Sequence alignment is a fundamental problem in bioinformatics, where two sequences of DNA, RNA, or protein are compared to identify regions of similarity. This project implements a parallel solution for sequence alignment using multiple parallel computing paradigms:
- MPI (Message Passing Interface): For parallelizing tasks across multiple processes.
- OpenMP: For parallelizing tasks within each MPI process using shared-memory multiprocessing.
- CUDA (Compute Unified Device Architecture): For offloading compute-intensive tasks to the GPU.
src/
: Contains the source code for the project.parallel_seq_alignment.c
: Main program file implementing the sequence alignment algorithm.cuda_part.cu
: CUDA file containing GPU-accelerated functions for sequence alignment.- Other source files for MPI and OpenMP implementations.
inputs/
: Contains input data files for testing the program.outputs/
: Contains output files generated by the program.Makefile
: Makefile for compiling and running the program.
- MPI implementation (e.g., Open MPI)
- CUDA Toolkit
- Compiler supporting OpenMP directives
- Standard C and C++ libraries
- Clone the repository:
- Navigate to the project directory:
- Compile the program:
- Run the serial version:
- Run the parallel version:
git clone https://github.com/your-username/mpi-openmp-cuda-project.git
cd mpi-openmp-cuda-project
make
make run_s
make run_p