JUNOHUB-test/question1/req.md
root f666c25eea Add MPI Edit Distance implementation with three communication strategies
- 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
2025-09-20 13:47:58 +05:00

60 lines
1.9 KiB
Markdown

# 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_Send` and `MPI_Recv` for data distribution
- Distribute computation across multiple processes
- Collect results using point-to-point communication
#### Strategy 2: Scatter + Gather Communication
- Use `MPI_Scatter` to distribute data
- Use `MPI_Gather` to collect results
- Implement collective communication patterns
#### Strategy 3: Gather-based Multiple Pair Computation
- Process multiple sequence pairs in parallel
- Use `MPI_Gather` to 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