今天简单地把#pragma omp parallel for private(j)语句加在一个练习时做的求解Laplace方程的有限差分程序上,4万个点的网格上,在P4超线程的CPU上,使得365秒减少到314秒,50秒的差距呀。

ps:然而在使用SOR方法时,4万个点的网格,单线程只用了14秒,OpenMP的效果,以后有时间再研究一下高斯赛德尔的SOR多线程版本,看有什么改进。

附带程序:

  1OpenMP的效果#include <omp.h>
  2OpenMP的效果#include <iostream>
  3OpenMP的效果#include <fstream>
  4OpenMP的效果#include <cmath>
  5OpenMP的效果#include <iomanip>
  6OpenMP的效果using namespace std;
  7OpenMP的效果//迭代终止误差
  8OpenMP的效果const double eps=1e-7;
  9OpenMP的效果//网格划分
 10OpenMP的效果const int ndivx=200;
 11OpenMP的效果const int ndivy=200;
 12OpenMP的效果const int nNx=ndivx+1;
 13OpenMP的效果const int nNy=ndivy+1;
 14OpenMP的效果const double deltax=1.0/ndivx;
 15OpenMP的效果const double deltay=1.0/ndivy;
 16OpenMP的效果//常数
 17OpenMP的效果const double PI=3.14159265;
 18OpenMP的效果const double omiga=1.902;//松弛因子
 19OpenMP的效果
 20OpenMP的效果
 21OpenMP的效果
 22OpenMP的效果
 23OpenMP的效果int main(void)
 24}

相关文章: