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

📄 scattervo.java

📁 MPI for java for Distributed Programming
💻 JAVA
字号:
package mpi.ccl_ObjSer; /* MPI-Java version :    Sang Lim (slim@npac.syr.edu)    Northeast Parallel Architectures Center at Syracuse University    12/2/98*/import mpi.*;public class scattervO {  static public void main(String[] args) throws MPIException {  }  public scattervO() {  }  public scattervO(String[] args) throws Exception {        final int MAXLEN = 10;    int myself,tasks;    MPI.Init(args);    myself = MPI.COMM_WORLD.Rank();    tasks = MPI.COMM_WORLD.Size();    if(tasks > 8) {      if(myself == 0)         System.out.println("scattervO must run with fewer than 8 tasks!");      MPI.Finalize();      return;    }    int root,i=0,j,k,stride=15;    test out[] = new test[tasks*stride];    test in[]  = new test[MAXLEN];    int dis[] = new int[tasks];    int scount[] = new int[tasks];        for(i = 0; i < MAXLEN;i++){       in[i] = new test();       in[i].a = 0;    }    for(i=0;i<tasks;i++){       dis[i] = i*stride;       scount[i] = 5;    }    scount[0] = 10;        for (i = 0;i < tasks*stride;i++){       out[i] = new test();       out[i].a = i;    }        MPI.COMM_WORLD.Scatterv(out, 0, scount, dis   , MPI.OBJECT,                            in , 0, scount[myself], MPI.OBJECT, 0);    String [] messbuf = new String [1] ;    if(myself==0){       System.out.println("Original array on root...");       for(i=0; i<tasks*stride; i++)          System.out.print(out[i].a+" ");       System.out.println();       System.out.println();       System.out.println("Result on proc 0...");       System.out.println("Stride = 15 "+"Count = "+scount[0]);       for(i=0; i<MAXLEN; i++)          System.out.print(in[i].a+" ");       System.out.println();       System.out.println();       // Reproduces output of original test case, but deterministically       int nmess = tasks < 3 ? tasks : 3 ;       for(int t = 1 ; t < nmess ; t++) {           MPI.COMM_WORLD.Recv(messbuf, 0, 1, MPI.OBJECT, t, 0) ;           System.out.print(messbuf [0]) ;       }    }        if(myself==1){        StringBuffer mess = new StringBuffer() ;        mess.append("Result on proc 1...\n");        mess.append("Stride = 15 "+"Count = "+scount[1] + "\n");        for(i=0; i<MAXLEN; i++)            mess.append(in[i].a+" ");        mess.append("\n");        mess.append("\n");        messbuf [0] = mess.toString() ;        MPI.COMM_WORLD.Send(messbuf, 0, 1, MPI.OBJECT, 0, 0) ;    }    if(myself==2){        StringBuffer mess = new StringBuffer() ;        mess.append("Result on proc 2...\n");        mess.append("Stride = 15 "+"Count = "+scount[2] + "\n");        for(i=0; i<MAXLEN; i++)            mess.append(in[i].a+" ");        mess.append("\n");        messbuf [0] = mess.toString() ;        MPI.COMM_WORLD.Send(messbuf, 0, 1, MPI.OBJECT, 0, 0) ;    }    if(myself == 0)  System.out.println("ScattervO TEST COMPLETE");    MPI.Finalize();  }}// Things to do////   Make output deterministic by gathering and printing from root.

⌨️ 快捷键说明

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