/*************************************** マルチプロセッサ版 サンプルプログラム main.c ***************************************/ #include #include #include "../gmres.h" void GetInfoProblem(int *,int *,int *); void Problem(int,int *,double *,double *,int *); int main(int argc,char **args) { Mat A; Vec x,b; int i,j,flag; int ipe,npe; int MyStart,MyEnd; int ret,index; int TotalSize, nsize, max_nsize, tsize; int max_iter; int ierr; int ProblemSize,NonZeroSize,MaxNonZeroSize; double tol; double start_time; PetscInitialize(&argc,&args,NULL,NULL); MPI_Comm_size(MPI_COMM_WORLD,&npe); MPI_Comm_rank(MPI_COMM_WORLD,&ipe); GetInfoProblem(&ProblemSize, &NonZeroSize, &MaxNonZeroSize); ierr = MatCreate(MPI_COMM_WORLD,ProblemSize,ProblemSize,&A); ierr = MatGetOwnershipRange(&A,&MyStart,&MyEnd); ierr = VecCreate(MPI_COMM_WORLD,NULL,ProblemSize,&x); ierr = VecCreate(MPI_COMM_WORLD,NULL,ProblemSize,&b); for ( i=MyStart; i