资源简介
对于一个n阶的非奇异矩阵A,其LU分解是求一个主对角元素全为1的下三角矩阵L与上三角矩阵U,使A=LU。
代码片段和文件信息
#include “stdio.h“
#include “stdlib.h“
#include “mpi.h“
#define a(xy) a[x*M+y]
/*A为M*M矩阵*/
#define A(xy) A[x*M+y]
#define l(xy) l[x*M+y]
#define u(xy) u[x*M+y]
#define floatsize sizeof(float)
#define intsize sizeof(int)
int MN;
int m;
float *A;
int my_rank;
int p;
MPI_Status status;
void fatal(char *message)
{
printf(“%s\n“message);
exit(1);
}
void Environment_Finalize(float *afloat *f)
{
free(a);
free(f);
}
int main(int argc char **argv)
{
int ijkmy_rankgroup_size;
int i1i2;
int vw;
float *a*f*l*u;
FILE *fdA;
MPI_Init(&argc&argv);
MPI_Comm_size(MPI_COMM_WORLD&group_size);
MPI_Comm_rank(MPI_COMM_WORLD&my_rank);
p=group_size;
if (my_rank==0)
{
fdA=fopen(“dataIn.txt““r“);
fscanf(fdA“%d %d“ &M &N);
if(M != N)
{
puts(“The input is error!“);
exit(0);
}
A=(float *)malloc(floatsize*M*M);
for(i = 0; i < M; i ++)
for(j = 0; j < M; j ++)
fscanf(fdA “%f“ A+i*M+j);
fclose(fdA);
printf(“Input of file \“dataIn.txt\“\n“);
printf(“%d\t %d\n“M N);
for(i=0;i {
for(j=0;j printf(“%f\t“A(ij));
printf(“\n“);
}
}
/*0号进程将M广播给所有进程*/
MPI_Bcast(&M1MPI_INT0MPI_COMM_WORLD);
m=M/p;
if (M%p!=0) m++;
/*分配至各进程的子矩阵大小为m*M*/
a=(float*)malloc(floatsize*m*M);
/*各进程为主行元素建立发送和接收缓冲区*/
f=(float*)malloc(floatsize*M);
/*0号进程为l和u矩阵分配内存,以分离出经过变换后的A矩阵中的l和u矩阵*/
if (my_rank==0)
{
l=(float*)malloc(floatsize*M*M);
u=(float*)malloc(floatsize*M*M);
}
/*0号进程采用行连续划分将矩阵A划分为大小m*M的p块子矩阵,依次发送给1至p-1号进程*/
if (a==NULL) fatal(“allocate error\n“);
if (my_rank==0)
{
for(i=0;i for(j=0;j a(ij)=A(ij);
for(i=m;i {
i1=i/m;
i2=i%m+1;
MPI_Send(&A(i0)MMPI_FLOATi1i2MPI_COMM_WORLD);
}
}
else
{
for(i=0;i MPI_Recv(&a(i0)MMPI_FLOAT0i+1MPI_COMM_WORLD&status);
}
for(i=0
相关资源
- cuda实现LU分解线性方程源代码
- IFIX_S7A_MPI_与300通讯详细步骤
- DCU DeCompiler
- Icompiocomp.v3.04.SP2.Full在VS2005环境下的应
- cuda实现LU分解解线性方程
- CCS C Compiler
- Vivado dds compiler6.0开发者手册
- 矩阵相乘的FOX并行实现
- MPII Human Shape 人体模型数据集.torrent
- 利用MPI协议与西门子PLC S7-300系统通讯
- DC常用命令详解
- MPI并行解决TSP问题
- impinj Speedway配置
- 经验模式分解(Empirical Mode Decomposit
- DUMPIT.exe
- SystemHooksCompiledOnly
- iDreamPiano用的lyt大全
- nbody的mpi&openmp实现源码
- Engineering a Compiler
- Quick Batch File Compilerregister
- Blow up for the solutions of the Euler-Poisson
- One new subgenus and one record species of Rha
- HI-TECH C Compiler for PIC10/12/16/18/24/32 MC
- 并行计算导论.pdf
- Hex-Rays.ARM.Decompiler.v1.7.0.120531.READ.NFO
- ARM® Compiler v5.06 for µVision®
- compiler-gcc6.h
- Cannon[mpi并行实现及加速比(源程序)
- Fortran MPI程序设计
- MPI实现的奇偶排序(ODD_EVEN)
评论
共有 条评论