在哪里可以找到使用MPJ Express Library的一些示例?

时间:2015-04-12 22:07:20

标签: java mpj-express

我有一些java代码,但是搜索更多(Pi,Integration,Brute Force MD5hash in Java,还有其他一些很好的并行问题......)。 谢谢。

2 个答案:

答案 0 :(得分:2)

MPJ Express提供了一些通用示例应用程序,用于测试和学习目的。您可以在 MPJ_HOME \ test \ mpi 目录中访问它们。您可能会或可能不会得到与您指定的完全相同的应用程序。

答案 1 :(得分:1)

如果您仍然对示例感兴趣,我已经在java(mpj)中找到了带有p2pmpi.jar包的pi示例。不幸的是,很难在Java中找到parralel源代码,唯一可靠的例子是mpj express。

import p2pmpi.mpi.*;

public class Main {
    public static void main(String[] args) {
        int rank, size, i;
        double pi125dt = 3.141592653589793238462643;
        double h, sum, x;
        MPI.Init(args);
        size = MPI.COMM_WORLD.Size();
        rank = MPI.COMM_WORLD.Rank();
        int[] n = new int[1];
        double[] mypi = new double[1];
        double[] pi = new double[1];

        if (rank == 0)
            n[0] = 1000000; // number of intervals

        MPI.COMM_WORLD.Bcast(n, 0, 1, MPI.INT, 0);
        h = 1.0 / (double) n[0];
        sum = 0.0;
        for (i = rank + 1; i <= n[0]; i += size) {
            x = h * ((double) i - 0.5);
            sum += (4.0 / (1.0 + x * x));
        }
        mypi[0] = h * sum;
        MPI.COMM_WORLD.Reduce(mypi, 0, pi, 0, 1, MPI.DOUBLE, MPI.SUM, 0);
        if (rank == 0) {
            System.out.println("Po is approximately " + pi[0]);
            System.out.println("Error is :" + (pi[0] - pi125dt));
        }
        MPI.Finalize();
    }

}
相关问题