Repository navigation
Week 06 (February 12)
Donna Calhoun edited this page Feb 15, 2018
·
7 revisions
-
Workflow
- Design of parallel algorithm. Does code parallelize in an obvious way? ("Pleasingly parallel"?)
- Computational statistics. Easy to parallelize, but communication is a big overhead.
- Integration. Easy to parallelize.
- Linear solves? Iterative methods (Jacobi, Conjugate Gradient) ? Direct methods (LU Decomposition?)
- Integral equation? Obvious how to parallelize, but expensive nonetheless?
- Does the code compile?
- Include directories, libraries
- Does the code run on 1 processor? 2 processors? and so on?
- Does the hang because sent messages aren't being received, etc.
- Does it produce the correct results on 1 processor, 2 processors, 3, processors, 4, 8, 16 and so on?
- Verification : Do you solve the problem accurately? Do a convergence study.
- Validation : Does your model give you physically meaningful results in the regimes you are interested in? (not the focus of this course, but an important part of scientific computing).
- What are the performance characteristics?
- Strong scaling - Fix the problem size, add more processors. Timing should scale like T_1/T_p ~ p.
- Weak scaling - Increase the problem size and the number of processors simultaneously. T_1/T_p ~ 1
- Speed-up - Ratio of time on 1 processor to time on p processors. S_p = T_1/T_p ~ p (for strong scaling)
- Efficiency - Ratio of speed-up to number of processors. E_p = S_p/p ~ 1
- Design of parallel algorithm. Does code parallelize in an obvious way? ("Pleasingly parallel"?)
-
Three notebooks
-
Prob2_create_data- run your code for several values of N and for different processor counts. Output files store the results -
Prob2_accuracy- Read output data and plot convergence results for selected processor count -
Prob2_performance- Read timing results and plot weak, strong and efficiency plots. UsePandas.Panelto collect results from different processors.
-
-
Homework details
- Use
Print Previewto create PDF file from Jupyter Notebook.
- Use
-
An Integral Equation formulation of the solution to a second order differential equation.
-
Accelerated ways of evaluting this integral is the idea is the basis for the Fast Multiple Method (FMM). See this short course.
-
Why would we do this? Modern hardware may be more favorable to this type of solution. See SIAM News article How Will the Fast Multipole Method Fare in the Exascale Era?
@DonnaCalhoun Introduction to Parallel Computing (ME471/571, BSU)