Skip to content

Latest commit

 

History

History
59 lines (47 loc) · 2.27 KB

File metadata and controls

59 lines (47 loc) · 2.27 KB

MPI-OpenMP-CUDA Project

This project is a parallel computing implementation using MPI, OpenMP, and CUDA for sequence alignment.

Overview

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.

Directory Structure

  • 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.

Dependencies

  • MPI implementation (e.g., Open MPI)
  • CUDA Toolkit
  • Compiler supporting OpenMP directives
  • Standard C and C++ libraries

Usage

  1. Clone the repository:
  2. git clone https://github.com/your-username/mpi-openmp-cuda-project.git
  3. Navigate to the project directory:
  4. cd mpi-openmp-cuda-project
  5. Compile the program:
  6. make
  7. Run the serial version:
  8. make run_s
  9. Run the parallel version:
  10. make run_p

Authors