Java OpenMPI 安裝

  1. 下載jdk8:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  2. 解壓jdk:

    tar -zxvf /Dowloads/jdk-8u161-linux-x64.tar.gz
  3. 下載openMPI:https://www.open-mpi.org/software/ompi/v3.0/

  4. 解壓OpenMPI:

    tar -zxvf /Dowloads/openmpi-3.0.0.tar.gz
  5. 配置包含Java的Makefile,編譯:

    ./configure --prefix=/opt/openmpi --enable-mpi-java ##不加prefix可能找不到mpi.jar
    
    make
    
    sudo make install
  6. 配置環境變量(如 .bashrc)

    export JAVA_HOME=/root/Downloads/jdk1.8.0_161
    export JRE_HOME=${JAVA_HOME}/jre
    export MPI_HOME=/opt/openmpi
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:${MPI_HOME}/lib
    export PATH=${JAVA_HOME}/bin:${MPI_HOME}/bin:$PATH
  7. 檢查是否正常運行

    import mpi.*;
    
    class ComputePi {
    
       public static void main(String args[]) throws MPIException {
    
           MPI.Init(args);
    
           int rank = MPI.COMM_WORLD.getRank(),
               size = MPI.COMM_WORLD.getSize(),
               nint = 100; // Intervals.
           double h = 1.0/(double)nint, sum = 0.0;
    
           for(int i=rank+1; i<=nint; i+=size) {
               double x = h * ((double)i - 0.5);
               sum += (4.0 / (1.0 + x * x));
           }
    
           double sBuf[] = { h * sum },
                  rBuf[] = new double[1];
    
           MPI.COMM_WORLD.reduce(sBuf, rBuf, 1, MPI.DOUBLE, MPI.SUM, 0);
    
           if(rank == 0) System.out.println("PI: " + rBuf[0]);
           MPI.Finalize();
       }
    }
  8. 在當前路徑下建立hosts文件(單機)

    localhost    slots=4 ##表示使用本機的4個進程
  9. 編譯並運行代碼

    mpijavac ComputePi.java
    mpiexec --hostfile hosts -np 4 --allow-run-as-root java ComputePi
    mpirun --allow-run-as-root lr
  10. 顯示結果:

    PI: 3.141600986923125

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章