在Windows网络上使用MPI的SIMD程序

时间:2017-01-11 15:14:49

标签: c windows mpi distributed-computing simd

我有一个计算机网络(大约20个),它们上安装了 MS Windows (7,10,Server 2008,Server 2012)。
所有计算机都具有不同的硬件规格(不同数量的CPU核心),并由多个用户使用,但在相同域中使用。

我有一个程序,它计算一个数千/数百的数字的公式(比如数字的平方根)并将它们保存在数据库中。
我需要将这些数百万个数字的部分分发到网络上的可用CPU核心。
像这样的东西:

int p, rank;
MPI_Comm_size(MPI_COMM_WORLD, &p);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
int dsize = 1000000;
int part = dsize / p;
int bpart = part + (dsize%p);
if(rank==0)
{
    for(int i=1;i<p;i++)
    {
        int start = bpart+(i-1)*part;
        int stop = start+part;
        //SEND PORTION
        for (int s=start; s<stop;s++)
        {
            MPI_Send(...);
        }
    }
    CalcFormula(PORTION_OF_RANK0);
}//if rank0
else
{
    //RECEIVE PORTION
    MPI_Recv(...);
    CalcFormula(PORTION_OF_RANKi);
}//else rank!=0


什么(MSMPI,Open MPI,MPICH)以及软件你建议我使用 轻松实现

0 个答案:

没有答案