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

📄 pack.java

📁 MPI for java for Distributed Programming
💻 JAVA
字号:
package mpi.dtyp;// a test program from MPICH test suite./**************************************************************************** MPI-Java version :    Sung-Hoon Ko(shko@npac.syr.edu)    Northeast Parallel Architectures Center at Syracuse University    03/22/98****************************************************************************/import mpi.*;import mpjbuf.BufferFactory ;public class pack {  static public void main(String[] args) throws MPIException {  }  public pack() {  }  public pack(String[] args) throws Exception {    /*      Check pack/unpack of mixed datatypes.*/    final int BUF_SIZE = 100;    int myrank;    //byte buffer[] = new byte[BUF_SIZE];    mpjbuf.Buffer buffer = null;     int n[]    = new int[1];    int size[] = new int[1];    int src, dest, errcnt, errs;    double a[] = new double[1];    double b[] = new double[1];    int pos;    int apos[] = new int[1];    Status status;    MPI.Init(args);    myrank = MPI.COMM_WORLD.Rank();    int tasks = MPI.COMM_WORLD.Size();    if(tasks > 2) {      if(myrank == 1) {	            System.out.println("pack runs with 2 tasks! ");	          }      MPI.Finalize();      return;    }    src	   = 0;    dest   = 1;        errcnt = 0;    if (myrank == src) {      buffer = new mpjbuf.Buffer(		    BufferFactory.create(10000 + MPI.SEND_OVERHEAD), 		    MPI.SEND_OVERHEAD, 10000+MPI.SEND_OVERHEAD ); 		    //MPI.COMM_WORLD.Pack_size(BUF_SIZE, MPI.INT) );      pos  = 0;      n[0] = 10;      a[0] = 1.1;      b[0] = 2.2;      pos = MPI.COMM_WORLD.Pack(n,0,1,MPI.INT,buffer,pos);      //System.out.println("s(1) -- pos "+pos);      pos = MPI.COMM_WORLD.Pack(a,0,1,MPI.DOUBLE,buffer,pos);      //System.out.println("s(2) -- pos "+pos);      pos = MPI.COMM_WORLD.Pack(b,0,1,MPI.DOUBLE,buffer,pos);      //System.out.println("s(3) -- pos "+pos);      apos[0] = pos;      MPI.COMM_WORLD.Send(apos, 0, 1, MPI.INT, dest, 999);      MPI.COMM_WORLD.Send(buffer, 0, pos, MPI.PACKED, dest, 99);      BufferFactory.destroy( buffer.getStaticBuffer());     }    else {      buffer = new mpjbuf.Buffer(		    BufferFactory.create(10000 + MPI.RECV_OVERHEAD), 		    MPI.RECV_OVERHEAD, 10000+MPI.RECV_OVERHEAD ); 		    //MPI.COMM_WORLD.Pack_size(BUF_SIZE, MPI.INT) );      status = MPI.COMM_WORLD.Recv(size, 0, 1, MPI.INT, src, 999);      status = MPI.COMM_WORLD.Recv(buffer,0,size[0],MPI.PACKED,src,99);      pos = 0;      pos = MPI.COMM_WORLD.Unpack(buffer,pos,n,0,1,MPI.INT);      //System.out.println("r(1) -- pos "+pos);      pos = MPI.COMM_WORLD.Unpack(buffer,pos,a,0,1,MPI.DOUBLE);      //System.out.println("r(2) -- pos "+pos);      pos = MPI.COMM_WORLD.Unpack(buffer,pos,b,0,1,MPI.DOUBLE);      //System.out.println("r(3) -- pos "+pos);            /* Check results */      if (n[0] != 10) { 	errcnt++;	System.out.println	  ("Wrong value for n; got "+n[0]+" expected 10");      }      if (a[0] != 1.1) { 	errcnt++;	System.out.println	  ("Wrong value for a; got "+a[0]+" expected 1.1");      }      if (b[0] != 2.2) { 	errcnt++;	System.out.println	  ("Wrong value for b; got "+b[0]+" expected 2.2");      }      BufferFactory.destroy( buffer.getStaticBuffer());     }    if(myrank == 1)      System.out.println("Pack TEST COMPLETE");    MPI.Finalize();  }}

⌨️ 快捷键说明

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