// ガウスの消去法で連立一次方程式を解くプログラム // 4x + y + z = 9 // x + 3y + z = 10 // 2x + y + 5z = 19 #include #include "mpi.h" #define SIZE 3 double A[SIZE][SIZE] = { {4, 1, 1}, {1, 3, 1}, {2, 1, 5} }; double b[SIZE]={9,10,19}; double c[SIZE]; double x[SIZE]; int debug_id = 0; int main(int argc, char* argv[]){ int i,j,k; int n = SIZE; double L[SIZE]; MPI_Status istatus; int myid, numprocs; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); // 1つのプロセスが担当する列の長さ int partition_size = n / numprocs; // プロセスが担当する列の開始点 int start = myid * partition_size; // プロセスが担当する列の終了点 int end = (myid + 1) * partition_size; // 外積方式ガウス法 // LU分解 for (k=0; k= 0; k--){ x[k] = c[k]; for(i=k+1; i