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

📄 buffertest3.java

📁 MPI for java for Distributed Programming
💻 JAVA
字号:
package mpi.pt2pt;

import mpi.*;
import mpjbuf.*; 
import java.util.Arrays;

public class BufferTest3 {
  public BufferTest3() {
  }
  
  public BufferTest3(String args[]) throws Exception{
    int offset=0, size=100 ;	  
    int DATA_SIZE = 2 ;
    int [] data = new int[DATA_SIZE]; 
    int [] rdata = new int[DATA_SIZE]; 

    for(int i=0 ; i<data.length ; i++) {
      data[i] = i; 
    }

    RawBuffer rawBuffer = BufferFactory.create(size);
    
    //1. create mpjbuf.Buffer object ..
    mpjbuf.Buffer mpjbuf = new mpjbuf.Buffer (rawBuffer, offset, size) ;
    
    //2. write message ...
    mpjbuf.putSectionHeader( Type.INT) ;
    mpjbuf.write(data, 0, 2) ;
    
    mpjbuf.commit() ;

    //3. read message ...
    Type sectionHeader = mpjbuf.getSectionHeader() ;
    int sectionSize = mpjbuf.getSectionSize() ;
    mpjbuf.read(rdata, 0, 2); 
    mpjbuf.clear() ;

    //4. compare results ...
    for(int i=0 ; i< rdata.length ; i++) {
      if(rdata[i] != i) {
        System.out.println(" Error: arrays don't match") ;
	break ;
      }
    }
    
    BufferFactory.destroy(mpjbuf.getStaticBuffer() );	    

/*
    long start = System.nanoTime(); 	  
    long end = System.nanoTime(); 
    mpjbuf.Buffer buffer[] = new mpjbuf.Buffer[100];
    int i=0;
    
    for(int j=128 ; j<=256*1024 ; j*=2) {
      start = System.nanoTime(); 	  
      buffer[i] = Buddy1BufferFactory.createBuffer(j) ;
      end = System.nanoTime(); 	  
      i++; 
    }
    
    int p=0;
    int[] writeArray = null ;
    int[] readArray = null ;
    int intCount = -1;

    for(int j=128 ; j<=256*1024 ; j*=2) {
      intCount = (j-8)/4; 	    
      writeArray = new int[ intCount ];
      readArray = new int[ intCount ]; 
      for(int u=0 ; u<intCount ; u++) {
        writeArray[u] = u;
	readArray[u] = 0; 
      }
      
for(int q=0 ; q<1000 ; q++) {
      buffer[p].putSectionHeader(mpjbuf.Type.INT); 
      buffer[p].write(writeArray, 0, intCount); 
      buffer[p].commit(); 
      buffer[p].getSectionHeader();
      buffer[p].getSectionSize ();
      buffer[p].read(readArray, 0, intCount);
      buffer[p].clear(); 

      if(java.util.Arrays.equals(writeArray, readArray)) {
        System.out.println("PASSED <"+j+">");  
      } else {
        System.out.println("FAILED");  
      }
}
      p++; 
    }

    p=0;
    
    for(int j=128 ; j<=256*1024 ; j*=2) {
      intCount = (j-8)/4; 	    
      writeArray = new int[ intCount ];
      readArray = new int[ intCount ]; 
      for(int u=0 ; u<intCount ; u++) {
        writeArray[u] = u*j;
	readArray[u] = 0; 
      }
      buffer[p].putSectionHeader(mpjbuf.Type.INT); 
      buffer[p].write(writeArray, 0, intCount); 
      p++; 
    }

    p=0;

    for(int j=128 ; j<=256*1024 ; j*=2) {
      intCount = (j-8)/4; 	    
      writeArray = new int[ intCount ];
      readArray = new int[ intCount ]; 
      for(int u=0 ; u<intCount ; u++) {
        writeArray[u] = u*j;	      
	readArray[u] = 0; 
      }
      
      buffer[p].commit(); 
      buffer[p].getSectionHeader();
      int numEls = buffer[p].getSectionSize ();
      
      buffer[p].read(readArray, 0, intCount);
      buffer[p].clear(); 

      for(int t=0 ; t< 10 ; t++) {
        System.out.print("w["+t+"]="+writeArray[t]); 	      
      }

      System.out.println("");
      
      for(int t=0 ; t< 10 ; t++) {
        System.out.print("r["+t+"]="+readArray[t]); 	      
      }
      
      System.out.println("");
      
      if(java.util.Arrays.equals(writeArray, readArray)) {
        System.out.println("PASSED <"+j+">");  
      } else {
        System.out.println("FAILED <"+j+">");  
      }

      p++; 
    }

    for(int k=i-1 ; k>=0 ; k--) {
      //System.out.println("*** calling destroy ***"+k);
      Buddy1BufferFactory.destroyBuffer( buffer[k]);	    
      //System.out.println("*** destroyed successfully called ***"+k);
    }
*/

  }
  
  public static void main(String args[]) throws Exception{
    BufferTest3 test = new BufferTest3(args);
  }
  
}

⌨️ 快捷键说明

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