ฉันจำเป็นต้องใช้ฟังก์ชัน MPI_Gather ในโปรแกรมการคูณเมทริกซ์แต่กำลังประสบปัญหาในช่วงสองสามวันที่ผ่านมา
ดังนั้นฉันจึงเขียนโปรแกรม MPI ง่ายๆ โดยใช้ฟังก์ชันรวบรวมเพียงอย่างเดียวและพยายามทำให้มันรัน... สำหรับสิ่งนี้ ฉันอ้างถึงหนังสือ 'Introduction to Parallel Programming by Peter Pacheco'
โปรแกรมออกจากการทำงานโดยตรง โดยทำให้ฉันไม่มีผลลัพธ์หรือข้อผิดพลาดเลย... ฉันยังไม่สามารถเข้าใจข้อผิดพลาดได้จนถึงตอนนี้
/******************NOTE**********************
The program simply uses the MPI_Gather() function.
The program is exiting directly.
I have written it for only TWO processes.
(-np 2)
******************************************/
#include<stdio.h>
#include"mpi.h"
int main()
{
int i,j,proc,rank;
double d[4];
double local_a[2];
MPI_Init(NULL,NULL);
MPI_Comm_size(MPI_COMM_WORLD, &proc);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if(rank==0)
{
local_a[0]=1.0;
local_a[1]=2.0;
}
else
{
local_a[0]=3.0;
local_a[1]=4.0;
}
int local=2;
if(rank==0)
{
MPI_Gather(local_a,local,MPI_DOUBLE,d,local,MPI_DOUBLE,0,MPI_COMM_WORLD);
//MPI_Gather(&local_a,local,MPI_DOUBLE,&d,local,MPI_DOUBLE,0,MPI_COMM_WORLD);
//also tried the above line just to be certain.
printf("\n");
for(j=0;j<4;j++)
printf("\t%f",d[j]);
}
else
{
MPI_Gather(local_a,local,MPI_DOUBLE,d,local,MPI_DOUBLE,0,MPI_COMM_WORLD);
//MPI_Gather(&local_a,local,MPI_DOUBLE,&d,local,MPI_DOUBLE,0,MPI_COMM_WORLD);
}
MPI_Finalize();
return 0;
}
ใครก็ได้โปรดช่วยฉันด้วย
ขอบคุณ.
อนาฆะ มธุสุดานันท์