Final Exam -- CS 491 -- The final exam is two parts: Part 1) Re-write gaussian elimination so that it uses MPI AND OPENMP. Run on 4 processors and on each processor, run 4 threads -- you can create and destroy the threads for Forward Resolve and then again for Back Solve. Product: a) A Well documented code including documentation per procedure b) A one to two page description of how you implemented the product using openmp Part 2) Calculate the potential or parallelism for gaussian elimination (no OPENMP). I am looking for algorithm analysis showing at each stage of gaussian elimination the amount of computation being performed and how much of it can be run in parallel. Also, given P processors and one task per processor, agglomoration set to be STRIDE (P) (not block), give me an equation that tells me the serial portion of the code of gaussian elimination, and give me an equation for communication. The equation should take in N and P and spit out the portion that is serial per task Product: A clear write up the processes you used to do the analysis. I am looking for sections of code followed by mathematical equations expressing the areas you want me to focus upon, followed by mathematical derivations simplifying the summation items into a closed forms. The final equations should be void of SIGMA sums (even if you have to wish them away with "<" ). Please take the Final exam seriously. It will be the deciding factor between a better or worse grade. A well prepared and presented product with clear language will receive better marks.