This repository contains programs developed for the Parallel Processing Lab. The lab includes implementations in MPI (Message Passing Interface) and CUDA (Compute Unified Device Architecture) for various parallel computing tasks.
- The program multiplies K different matrices A of dimension MxN with matrices B of dimension NxP.
- Constraints: K * M * N <= 10^6; K * N * P <= 10^6; K * M * P <= 10^6;
- K, M, N, P
- Time taken for multiplication
- The CUDA version of the program performs matrix multiplication using parallel GPU processing.
- K, M, N, P
- Time taken for multiplication
- The program counts the words in a file and sorts them in descending order of frequency using MPI.
- No. of processes, Text input from file
- Total time taken
- Top 10 occurrences
- The CUDA version counts words and performs sorting for improved parallelism on GPU.
- No. of processes, Text input from file
- Total time taken
- Top 10 occurrences
- The program searches for contacts in a phonebook file matching a given name using MPI.
- No. of processes, Phonebook from file
- Total time taken
- Matching names and contact numbers
- The CUDA version accelerates the phonebook search on the GPU for improved parallel performance.
- No. of processes, Phonebook from file
- Total time taken
- Matching names and contact numbers
- The program finds the number of occurrences of a given pattern in a paragraph using MPI.
- No. of processes, Paragraph from file
- Total time taken
- No. of occurrences of the pattern
- The CUDA version efficiently calculates pattern occurrences using GPU parallelism.
- No. of processes, Paragraph from file
- Total time taken
- No. of occurrences of the pattern
Feel free to explore each task's respective source code for detailed comments and understand the parallel processing implementations.