*/ //MPI_Waitall
/*
#include "mpi.h"
#include
using namespace std;
int main(int argc, char *argv[])
{
int rank, size;
int i;
int A;
MPI_Request request;
MPI_Status status;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
if (size < 4)
{
cout<<"4 ta jarayon bilan bajaring: ";fflush(stdout);
MPI_Finalize();
return 1;
}
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if (rank == 0)
{
for (i=0; iA=i*size;
for (i=0; i{
MPI_Isend(&A, 1, MPI_INT, i+1, 123, MPI_COMM_WORLD, &request);
}
MPI_Waitall(size-1, &request, &status);
}
else
{
MPI_Recv(&A, 1, MPI_INT, 0, 123, MPI_COMM_WORLD, &status);
cout<<"Jarayon: "<}
MPI_Finalize();
return 0;
}
*/
//MPI_Test
/*
#include "mpi.h"
#include
using namespace std;
int main(int argc, char *argv[])
{
int rank, size, left, right, flag=0;
int buffer1[4], buffer2[4];
MPI_Request request;
MPI_Status status;
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
right = (rank + 1) % size;
left = rank - 1;
if (left < 0)
left = size - 1;
MPI_Irecv(buffer1, 4, MPI_INT, left, 123, MPI_COMM_WORLD, &request);
MPI_Send(buffer2, 4, MPI_INT, right, 123, MPI_COMM_WORLD);
MPI_Test(&request, &flag, &status);
while (!flag)
{
MPI_Test(&request, &flag, &status);
}
cout<<"Jarayon: "<
MPI_Finalize();
return 0;
}
*/
//MPI_TEST
/*
#include "mpi.h"
#include
#include
using namespace std;
int main(int argc, char**argv)
{
int rank,flag;
float total, a, b, c, d,f;
MPI_Status status;
MPI_Request reqs;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
a = 0.0; b = 0.0; c = 0.0; d = 0.0; f = 0.0;
if (rank == 0) {
b = 7.0;
c = 3.0;
MPI_Send(&b, 1, MPI_INT, 1, 5, MPI_COMM_WORLD);
MPI_Recv(&a, 1, MPI_INT, 1, 5, MPI_COMM_WORLD, &status);
MPI_Irecv(&d, 1, MPI_INT, 2, 5, MPI_COMM_WORLD, &reqs);
MPI_Irecv(&total, 1, MPI_FLOAT, 2, 5, MPI_COMM_WORLD, &reqs);
MPI_Test(&reqs, &flag, &status); // bu yerda xabar qabul qilingani tekshirilyapti va qabul qilinganligi yoki yo'qligiga qarab shart bajarsak bo'ladi.
cout << "flag = " << flag << endl;
if (flag == 0) {
MPI_Wait(&reqs, &status);
}
else {
cout << "xabar qabul qilindi" << endl;
total=pow(a*c*d,rank+2);
}
}
if (rank == 1) {
a = 2.0;
MPI_Recv(&b, 1, MPI_FLOAT, 0, 5, MPI_COMM_WORLD, &status);
MPI_Send(&a, 1, MPI_FLOAT, 0, 5, MPI_COMM_WORLD);
}
if (rank == 2) {
d = 4.0;
MPI_Isend(&d, 1, MPI_FLOAT, 0, 5, MPI_COMM_WORLD, &reqs);
MPI_Isend(&total, 1, MPI_FLOAT, 0, 5, MPI_COMM_WORLD, &reqs);
}
cout << " Jarayon: " << rank << "\ta = " << a << "\tb = " << b << "\tc = " << c << "\td = " << d << "\tf = " << f <<"\tTotal: "<MPI_Finalize();
return 0;
}
*/
|