您当前的位置:主页 > 蜜兰香 > → 方阵行列式并行化计算(OpenMP,MPI),并计算加速比 - yunyunyx

方阵行列式并行化计算(OpenMP,MPI),并计算加速比 - yunyunyx

文章作者:admin | 时间:2018-12-18 18:34 | 来源:网络整理

版权布告:本文是视频博客作者的独创的文字。,不是博主答应,不得相信转载。。

以下内容为自己凤凰全讯网迅速移动的晚期的作业,有污点。,极迎将你的提议。!

试验挥向

本试验的挥向次要有以下三点。:

1 方阵的限定性的计算。

2 创造方阵限定性的的凤凰全讯网,区分由于 OpenMP MPI

3 对照前述的三种算法的运转工夫。,加快计算。

试验设计

2.开端方阵

为手边的,本试验的方阵不采取人工出口方式。,它运用随机数字来开端矩阵元素。素。

限界了大局矩阵变量。——int p[100][100]发觉方阵时,方阵发展N(N<100)表面出口。话说回来运用两层。for弯曲部分供给正方形矩阵 p左上角 N×N个位集中诊断。项目创造列举如下

/*
 * 限界矩阵阶数n
 */

int N;

/*
 * 限界大局矩阵
 */

int p[100][100];

/*
 * 随机数字矩阵的开端
 */

void create(){
	int i,j;
(I=0;I)


2.邮票矩阵

开端矩阵的出口,为了考试其限定性的的正确。。项目创造列举如下:

/*
 * 出口矩阵
 */

void print()
{
	int i,j;
(I=0;I)

2.矩阵限定性的的计算

矩阵限定性的的计算的方式有很多,本试验选用的方式是::限定性的生长法。行列的和全部效果无论什么行及其C的产品积和。。代数余子式:A(iJ)=-1)^(i+j)M(iJ).  (iJ)为下标。元素的补码全部效果Delm的原始限定性的。。很试验是冠军的。行生长法。即:在第参加社交聚会上生长高阶限定性的。,再发举动,直到定单编号为 1。前述的加工可以重新提起使臻于完善。。

2.3.重新提起创造密码

本着前述的参照系,人们可以中止划桨地举起以下的创造方式。:

/*
 * 限定性的作用的计算
 */

long long mydet(int  p [100][100],int n){
	if(n==1)  n=1言归正传矩阵的仅仅数,中止重新提起
		return p[0][0];
	else{
		long long sum=0;
为(int) i=0;i

  串行OpenMPMPI计算的创造

我的并行性次要由于第参加社交聚会。,项目检查密码。。

.1  串行密码

/*************************************************************************
    > File Name: matrix_det.c
    > Author: surecheun
    > Mail: surecheun@163.com
    > Created Time: 2017年12月06日 星期三 17:28秒00秒。
 ************************************************************************/
#include
#include
#include
#include
#include
/*
 * 限界矩阵阶数n
 */

int N;

/*
 * 限界大局矩阵
 */

int p[100][100];

/*
 * 随机数字矩阵的开端
 */

void create(){
	int i,j;
(I=0;I)

.2 OpenMP密码

/*************************************************************************
    > File Name: matrix_det_omp.c
    > Author: surecheun
    > Mail: surecheun@163.com
    > Created Time: 2017年12月07日 周四 17时23分51秒
 ************************************************************************/

#include
#include
#include
#include
#include
#include

/*
 * 限界螺纹数
 */
#define n_threads 2

 /*
 *限界矩阵发展为大局变量
 */

int N;

/*
 * 限界大局矩阵
 */

int p[100][100];

/*
 * 随机数字矩阵的开端
 */

void create(){
	int i,j;
(I=0;I)0,持续计算
		create();  发觉矩阵
		print();   邮票发觉矩阵
		  double start1,finish1;
                    start1=omp_get_wtime();  //开端计算工夫
                    long long sum=0;
             omp_set_num_threads(n_threads);//设置螺纹数
           #pragma omp parallel for 约简( :和)/并行化
       为(int) i=0;i

.3 MPI创造密码

/*************************************************************************
    > File Name: matrix_det_mpi.c
    > Author: surecheun
    > Mail: surecheun@163.com
    > Created Time: 2017年12月07日 周四 16:24 03秒。
 ************************************************************************/

#include
#include
#include
#include
#include

/*
 *限界矩阵发展为大局变量
 */

int N;

/*
 * 限界大局矩阵
 */

int p[100][100];

/*
 * 随机数字矩阵的开端
 */

void create(){
	int i,j;
(I=0;I)

4 试验水果

正确

4.1.1串行

水果剖析,以 n=4为例,出口矩阵是:

出口是:3875

与MATLAB计算水果分歧!

.2 OpenMP

水果剖析,以 n=4为例,出口矩阵是:

出口是:-2710

与MATLAB计算水果分歧!

.3 MPI

水果剖析,以n=4为例,出口矩阵是:

出口是:-202

与MATLAB计算水果分歧!

加快比

屡次求平均值,得到了三种计算方式的计算工夫。 3 无效数字列举如下:

N(数)

串行

OpenMP

MPI

9

0.0239s

0.0117s

0.0117s

10

0.195s

0.105s

0.100秒

柱状图列举如下:


本文标题:方阵行列式并行化计算(OpenMP,MPI),并计算加速比 - yunyunyx 版权说明
1、中小学生推荐原创《方阵行列式并行化计算(OpenMP,MPI),并计算加速比 - yunyunyx》一文由中国资讯网凤凰时时彩平台(https://www.ddbaishi.com)网友提供,版权归原作者本人所有,转载请注明出处!
2、转载或引用本网内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本网内容原意进行曲解、修改,同时必须保留本网注明的"稿件来源",并自负版权等法律责任。
3、对于不当转载或引用本网内容而引起的民事纷争、行政处理或其他损失,本网不承担责任。