⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 type_struct.c

📁 并行计算的一些演示程序
💻 C
字号:

#include "mpi.h" /*MPI head file*/

#include <stdio.h>

int main( int argc, char** argv )
{
int myrank,size;

int i;

struct Partstruct 
   { 
      int    class;  /* particle class */ 
      double d[6];   /* particle coordinates */ 
      char   b[7];   /* some additional information */ 
   }Par,p[100]; 
               


MPI_Status status; 
MPI_Init(&argc, &argv); /*initializing */
MPI_Comm_rank(MPI_COMM_WORLD, &myrank); /*Process#*/
MPI_Comm_size(MPI_COMM_WORLD, &size); /*Total processes#*/

if (myrank == 0) 
{ 
      /* SENDER CODE */ 
      
      Par.class = 100;
      for(i=0;i<6;i++) Par.d[i] = (double)i;
      for(i=0;i<7;i++) Par.b[i] = 'A' + i;

      printf("Par = %d, P = %d\n",sizeof(Par), sizeof(p));            

      MPI_Send(&Par, sizeof(Par), MPI_BYTE, 1,0, MPI_COMM_WORLD); 
} 
else  /* RECEIVER CODE */ 
{ 
      MPI_Recv(&Par, sizeof(Par), MPI_BYTE,0,0,MPI_COMM_WORLD,&status);
    
      printf("Proc#1 received structs from Proc#0 : \n");

      printf("class = %d\n", Par.class);

      printf("array d is : ");
      for(i=0;i<6;i++) printf("%3.1lf ",Par.d[i]);

      printf("\narray b is : ");
      for(i=0;i<7;i++) printf("%c ",Par.b[i]);        

      printf("\n");
}
MPI_Finalize(); /*quit from MPI world*/
return (0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -