Что компилятор от меня хочет? :cry:
| Код | /mpi/5laba/main.cpp||In function ‘int main(int, char**)’:| /mpi/5laba/main.cpp|19|error: invalid types ‘double[int]’ for array subscript| /mpi/5laba/main.cpp|20|error: invalid types ‘double[int]’ for array subscript| /mpi/5laba/main.cpp|21|error: invalid types ‘double[int]’ for array subscript| /mpi/5laba/main.cpp|22|error: invalid types ‘double[int]’ for array subscript| /mpi/5laba/main.cpp|8|warning: unused variable ‘max’| /mpi/5laba/main.cpp|8|warning: unused variable ‘begin_time’| ||=== Build finished: 4 errors, 2 warnings ===|
|
| Код | #include <stdio.h> #include <math.h> #include <cstdlib> #include "mpi.h" int main( int argc, char *argv[] ) { int i,size,rank,tag=99, leng=10, source; double A[10000], buffer, max, begin_time; MPI_Status status; MPI_Init(&argc, &argv);
MPI_Comm_size( MPI_COMM_WORLD, &size) ; MPI_Comm_rank( MPI_COMM_WORLD, &rank) ; /*----------------process 0---------------*/ if(rank==0){ /*----------------array generate----------*/ for(i=0;i<=10000;i++){A[i]=((sin(i)))/(5*(i+1));} for(i=0;i<=10000/4/leng-1;i++){ MPI_Send(&buffer[i*leng],leng,MPI_DOUBLE,1,tag,MPI_COMM_WORLD); MPI_Send(&buffer[2499+i*leng],leng,MPI_DOUBLE,2,tag,MPI_COMM_WORLD); MPI_Send(&buffer[4999+i*leng],leng,MPI_DOUBLE,3,tag,MPI_COMM_WORLD); MPI_Send(&buffer[7499+i*leng],leng,MPI_DOUBLE,4,tag,MPI_COMM_WORLD); } }
/*----------------process 1---------------*/ if(rank==1){ double Rbuffer[leng]; for(i=0;i<=10000/4/leng-1;i++){ MPI_Recv(&Rbuffer,1,MPI_DOUBLE,source,tag,MPI_COMM_WORLD,&status); printf("Результат процесу %f\n",buffer);} } /*----------------process 2---------------*/ if(rank==2){ double Rbuffer[leng]; for(i=0;i<=10000/4/leng-1;i++){ MPI_Recv(&Rbuffer,1,MPI_DOUBLE,source,tag,MPI_COMM_WORLD,&status); printf("Результат процесу %f\n",buffer);} } /*----------------process 3---------------*/ if(rank==3){ double Rbuffer[leng]; for(i=0;i<=10000/4/leng-1;i++){ MPI_Recv(&Rbuffer,1,MPI_DOUBLE,source,tag,MPI_COMM_WORLD,&status); printf("Результат процесу %f\n",buffer);} } if(rank==4){ double Rbuffer[leng]; for(i=0;i<=10000/4/leng-1;i++){ MPI_Recv(&Rbuffer,1,MPI_DOUBLE,source,tag,MPI_COMM_WORLD,&status); printf("Результат процесу %f\n",buffer);} }
MPI_Finalize(); return 0; }
|
|