334  9.   SPMD  MPMD   ...

    ,    impi_stream
 ompi_stream    mpi_stream.    ,   istream
 ostream   ""  "",      -
 mpi_stream.   9.7 ,     
:

//  9.7.   ""  ""

//. . .

mpi_stream &operator(string X)

{

MPI_Send(const_cast<char*>(X.data()),X.size(),
MPI_CHAR,Rank,Tag,Comm) ;

return(*this) ;

}

//   .

mpi_stream &operator(vector<long> &X)

{

long *Buffer;

Buffer = new long[X.size ()];

copy(X.begin(),X.end().Buffer) ;

MPI_Send(Buffer,X.size(),MPI_LONG,Rank,Tag,Coiroi) ;

delete Buffer;

return(*this) ;

}

//   .
mpi_stream &operator(string &X)
{

char Buffer[10000] ;

MPI_Recv(Buffer,10000,MPI_CHAR,Rank,Tag,Comm,&Status) ;

MPI_Get_count(&Status,MPI_CHAR,&BufferCount) ;

X.append(Buffer) ;

return(*this) ;

}

  mpios   9.7  ,    ios  
 iostream,  :    mpi_stream.  
,      MPI-,  
 ""  "",      .   -
    .    
    .   
   (   )  
 (  - ).   9.7  -
  ,   mpios  ,   mpi_stream, 
      (      
 mpi_stream   ).    
mpi_stream ,      MPI-. -
  MPI-     .

//. . .
int X;

float Y;

vector<float> Z;