Conjugate gradient method is an algorithm for the numerical solution of particular systems of linear equations. It is often used to solve partial differential equations, or applied on some optimization problems. You may get more information on Wikipedia (http://en.wikipedia. org/wiki/Conjugate_gradient_method).
In this assignment, you are asked to parallelize a serial implementation of the conjugate gradient method using OpenMP. The serial implementation can be downloaded on New e3 system. It contains:
• cg.c
The implementation of the conjugate gradient method.
• globals.h
Some data definitions. DO NOT modify this file.
• common directory
Directory that contains some functions for time calculation and random numbers. DO NOT modify the files in this directory.
• bin directory
Directory that contains the executable.
• Makefile, make.common
Makefiles.
• README
The information of the program.
1 Requirements In this assignment, you have to modify cg.c to improve the performance of this program (i.e., to insert OpenMP pragmas/library routines to parallelize parts of the program). Of course, you may add any other variables or functions if necessary.