- Implemented Needleman-Wunsch algorithm for edit distance calculation - Added three MPI communication strategies: P2P, Scatter-Gather, Gather-based - Included Docker containerization with single and multi-container support - Added multiple input methods: default, command line, interactive - Improved timing precision to show microsecond measurements - Fixed MPI deadlock issues in P2P communication - Complete documentation and usage examples
1.9 KiB
1.9 KiB
Problem Statement: MPI Edit Distance Implementation
Objective
Implement the Edit Distance (Needleman-Wunsch global alignment) algorithm using MPI with three different communication strategies and compare their performance.
Requirements
1. Algorithm Implementation
- Implement the Needleman-Wunsch algorithm for global sequence alignment
- Calculate edit distance between two DNA/protein sequences
- Use dynamic programming approach
2. MPI Communication Strategies
Strategy 1: Point-to-Point Communication
- Use
MPI_SendandMPI_Recvfor data distribution - Distribute computation across multiple processes
- Collect results using point-to-point communication
Strategy 2: Scatter + Gather Communication
- Use
MPI_Scatterto distribute data - Use
MPI_Gatherto collect results - Implement collective communication patterns
Strategy 3: Gather-based Multiple Pair Computation
- Process multiple sequence pairs in parallel
- Use
MPI_Gatherto collect results from all processes - Implement load balancing across processes
3. Input/Output Format
Input:
Sequence 1: ACGTAG
Sequence 2: ACTG
Output:
Edit Distance (P2P) = 2, Time = 0.000s
Edit Distance (Scatter) = 2, Time = 0.000s
Edit Distance (Gather) = [2, 3, 3], Time = 0.000s
4. Performance Requirements
- Measure execution time for each strategy
- Support different numbers of MPI processes (2, 4, 8)
- Compare performance across communication strategies
5. Docker Environment
- Containerize the application
- Support both single-container and multi-container execution
- Provide easy setup and execution instructions
Expected Results
- Correct edit distance calculations for all strategies
- Performance comparison showing time differences
- Scalable implementation that works with different process counts
- Clean, readable output matching the specified format