如何通过MPI\U send发送gmp变量,如mpz\U t

如何通过MPI\U send发送gmp变量,如mpz\U t,mpi,gmp,Mpi,Gmp,此代码产生错误,请帮助我如何通过MPI_发送函数发送mpz_t变量。我在www.macs.hw.ac.uk/~hwloidl/Courses/F21DP/gph_milan15_handout.pdf中找到了一个演示文稿,在幻灯片86和88中,他们使用gmp_sprintf和gmp_anfsc将多精度整数编组到字符串中 实际上,我注意到他们使用的是mpq\u t类型的有理数,但我想同样的方法也适用于mpz\u t。请提供详细的错误日志。 #include <stdio.h> #inc

此代码产生错误,请帮助我如何通过MPI_发送函数发送mpz_t变量。

我在www.macs.hw.ac.uk/~hwloidl/Courses/F21DP/gph_milan15_handout.pdf中找到了一个演示文稿,在幻灯片86和88中,他们使用gmp_sprintf和gmp_anfsc将多精度整数编组到字符串中


实际上,我注意到他们使用的是mpq\u t类型的有理数,但我想同样的方法也适用于mpz\u t。

请提供详细的错误日志。
#include <stdio.h>
#include <gmp.h>
#include <mpi.h>

int main(int *argc, char **argv)
{   
    int rank;
    mpz_t a;
    mpz_t b;
    mpz_init(a);
    mpz_init(b);
    mpz_set_ui(a,23000000000000000000000000001);
    MPI_Init(&argc, &argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);

    if(rank==0)
    {
        MPI_Send(&a,1,MPI_INT,1,100,MPI_COMM_WORLD);
    }

    if(rank==1)
    {
        MPI_Recv(&b,1,MPI_INT,0,100,MPI_COMM_WORLD,MPI_STATUS_IGNORE);
    }
    MPI_Finalize();
    return 1;
}