首页 > 解决方案 > MPI_Init() 在带有 MPICH 安装的 Raspberry Pi4 上崩溃

问题描述

第一次发帖。我是 MPI 新手,正在尝试设置一个小型 RaspberryPi 4 集群。我试图运行“Hello World!” 在主节点上执行以下程序无济于事。

#include <stdio.h>
#include <mpi.h>

int main(int argc, char** argv) {

        fprintf(stderr,"Starting...\n");

        MPI_Init(&argc, &argv);

        printf("Hi World!\n");

        MPI_Finalize();

        return 0;

}

我在执行 MPI_Init 时收到下面的分段错误。我试过在 MPI_Init(NULL,NULL) 中使用 NULL 并且还传递/不传递程序参数。

pi@raspberrypi:~ $ mpiexec -n 4 -f hostfile ./h
Starting...
Starting...
Starting...
Starting...

===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   PID 3080 RUNNING AT 192.168.200.210
=   EXIT CODE: 11
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault (signal 11)
This typically refers to a problem with your application.
Please see the FAQ page for debugging suggestions

这是一个运行 apt-get update/upgrade 并且仅通过 MPICH 安装的全新 RaspberryPi 操作系统

sudo apt-get install MPICH

这个问题与下面发布的问题几乎相同,但我认为它没有解决问题,只是安装了不同的软件(mpi-default-dev [OpenMPI?] 而不是 MPICH)。

MPI_Init() 在 Raspberry Pi 4 上立即崩溃

那么为什么 MPICH 不工作呢?那里有大量的 Pi 集群操作方法,而我看到的前十几个只是sudo apt-get install MPICH跟着它跑了跑。

提前感谢您的支持!

标签: segmentation-faultraspberry-pi4mpich

解决方案


推荐阅读