Articles of mpi

在Eclipse Parallel Tools Platform(Kepler)中,“Type'MPI_Status'无法parsing”

我试图让开发环境用MPI和C编程。我查了一下,find了Eclipse Parallel Tools Platform。 我遇到了很多错误的formsType 'MPI_Status' could not be resolved和其他从香草eclipse-ptp-keplerparsing错误。 我在Linux x86_64(Ubuntu 12.04.3 LTS)上使用Linux GCC Toolchain的helloworld MPI C示例。 也许值得注意的是:启动默认的“本地C / C ++应用程序”运行configurationLaunch failed. Binary not found Launch failed. Binary not found 任何帮助将不胜感激! 如果您不确定这个问题的解决scheme,欢迎就其他开发环境提出build议。 谢谢阅读!

简单的MPI程序失败,并有大量的进程

这是我的代码: #include "mpi.h" #include <stdio.h> int main (int argc, char** argv) { int numtasks, rank; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&numtasks); MPI_Comm_rank(MPI_COMM_WORLD,&rank); // the code fail with or without printf printf ("Number of tasks= %d My rank= %d\n", numtasks,rank); MPI_Barrier(MPI_COMM_WORLD); MPI_Finalize(); return 0; } 这就是我如何运行它和输出: $ mpirun -n 160 ./mpi_example1 [proxy:0:0@ubuntu] send_cmd_downstream (./pm/pmiserv/pmip_pmi_v1.c:80): assert (!closed) failed [proxy:0:0@ubuntu] fn_get (./pm/pmiserv/pmip_pmi_v1.c:349): […]

设置ssh连接2台PC并使用MPI

我在这里是因为我在使用本指南提出的其他问题中发现了不同的问题。 首先我有一台电脑(我想用它作为主人)叫: timmy@timmy-Lenovo-G50-80 。 我的另一台电脑是一台虚拟机,总是用linux mint调用: test@test-VirtualBox ,我想用它作为奴隶。 我到现在为止所做的是: 安装所需的数据包(两台PC): sudo apt-get install openssh-server openssh-client 更改/etc/ssh/sshd_config文件里面:(只有主) 服务器的端口从22到2222 设置PubkeyAuthentication yes (所以没有改变) 移除评论: Banner /etc/issue.net 停 当我执行这个命令时,我被困住了: ssh-copy-id username@remotehost 我想,阅读所写的内容,我必须执行如下操作: ssh-copy-id timmy@timmy-Lenovo-G50-80 但: 从timmy @ timmy-Lenovo-G50-80一切正常,我可以连接到自己(不是我真正想要的) 从test @ test-VirtualBox它告诉我ERROR: ssh: Could not resolve hostname timmy@timmy-Lenovo-G50-80: Name or service not known 最后,为了连接这两台PC,我需要做些什么?

在多个节点上发生MPI_Bcast错误

背景:我正在编写基于collfs项目的I / O系统调用的MPI版本。 代码在单个节点上的多个处理器上运行时没有错误。 但是,在多个节点上运行会导致分段错误…每个节点有2个进程(每个进程1个进程)的错误消息如下所示: $ qsub test.sub $ cat test.e291810 0: pasc_open(./libSDL.so, 0, 0) 1: pasc_open(./libSDL.so, 0, 0) 1: mptr[0]=0 mptr[len-1]=0 1: MPI_Bcast(mptr=eed11000, len=435104, MPI_BYTE, 0, MPI_COMM_WORLD) 0: mptr[0]=127 mptr[len-1]=0 0: MPI_Bcast(mptr=eeb11000, len=435104, MPI_BYTE, 0, MPI_COMM_WORLD) _pmiu_daemon(SIGCHLD): [NID 00632] [c3-0c0s14n0] [Sun May 18 13:10:30 2014] PE RANK 0 exit signal Segmentation fault [NID 00632] […]

如何增加转矩作业的OpenFabrics内存限制?

当我通过InfiniBand运行MPI作业时,出现以下问题。 我们使用扭矩pipe理器。 ————————————————————————– WARNING: It appears that your OpenFabrics subsystem is configured to only allow registering part of your physical memory. This can cause MPI jobs to run with erratic performance, hang, and/or crash. This may be caused by your OpenFabrics vendor limiting the amount of physical memory that can be registered. You should investigate […]

MPI_Init()和MPI_Finanlize()之后的cout之前的初始化variables

我一直在testingmpi如何使用下面的代码 #include <iostream> #include <mpi.h> using namespace std; int main(int argc, char *argv[]){ r = 3.0; int id; int p; int a[100]; for(int i=0;i<100;++i){a[i]=i+5; } MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &id); MPI_Comm_size(MPI_COMM_WORLD, &p); cout<<id<<" "<<r<<" "<<a[id]<<endl; MPI_Finalize(); cout<< "Hello world " <<endl; return 0; } 我正在使用30个核心来运行代码。 但是从两个方面来看,输出结果是令人惊讶的, 这里这个问题说,如果你在MPI_Init()之前初始化一个variables,除了0之外的其他进程将会被初始化,但是在我的输出文件中,所有不同ID的进程都会输出r = 3, a[i] ,这是否意味着我可以在调用MPI_Init()之前初始化一个variables或一个数组,并且所有进程将共享该variables的相同值? 输出中有很多“Hello world”这行,显然表示每个进程都在打印“Hello world”,即使在调用MPI_Finalize()之后,为什么呢? 顺便说一下,我正在使用mpicc编译代码。

错误:libtool – 编译MPI程序时

我使用OpenSuse Leap ,我安装了openMPI认为YaST。 运行一个which mpirun命令我得到/usr/lib64/mpi/gcc/openmpi/bin/mpirun并运行which mpicc我得到/usr/bin/mpicc 。 如何确保OpenMPI正确安装? 其次,我有一个简单的hello世界,我正在处理X程序并运行mpicc hello.c我得到这个输出 gcc:error:libtool ::没有这样的文件或目录 gcc:error:link :: No 这样的文件或目录mpicc:没有这样的文件或目录 另外,我安装了Eclipse for Parallel Application并使用了一个内置的例子,它在构build时给了我这个输出 使所有 build设目标:你好 调用:GCC C链接器 mpicc -o“hello”./src/hello.o gcc:error:libtool ::没有这样的文件或目录 gcc:error:link ::没有这样的文件或目录 makefile:30:目标'你好'的配方失败 mpicc:没有这样的文件或目录 make:*** [你好]错误1 我检查了YaST并安装了libtool。

MPI客户端查找服务器端口失败(MPI_ERR_NAME:无效名称参数)

我目前正试图设置一个MPI客户端连接到一个服务器,发布一个特定的名称,但它不工作,我不知道这件事。 MPI是使用g ++ – 4.7的OpenMPI 1.6,其中/ usr / lib64 / mpi / gcc / openmpi / etc / openmpi-default-hostfile包含1行: MY_IP 下面的“最小”(我不喜欢使用太多代码的问题,但我想我应该在这里包括它)的例子说明了这个问题: mpi_srv.cc #include <iostream> #include <mpi.h> int main (void) { int rank(0); MPI_Init(0, NULL); MPI_Comm_size(MPI_COMM_WORLD, &rank); std::cout << "Rank: " << rank << std::endl; char port_name[MPI_MAX_PORT_NAME]; MPI_Open_port(MPI_INFO_NULL, port_name); char publish_name[1024] = {'t','e','s','t','_','p','o','r','t','\0'}; MPI_Publish_name(publish_name, MPI_INFO_NULL, port_name); […]

MPI程序挂起

我使用以下命令在我的Ubuntu 14.04笔记本电脑上安装了mpich2: sudo apt-get install libcr-dev mpich2 mpich2-doc 这是我试图执行的代码: #include <mpi.h> #include <stdio.h> int main() { int myrank, size; MPI_Init(NULL, NULL); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); MPI_Comm_size(MPI_COMM_WORLD, &size); printf("Hello world! I am %d of %d\n", myrank, size); MPI_Finalize(); return 0; } 把它编译成mpicc helloworld.c不会给出任何错误。 但是,当我执行该程序为: mpirun -np 5 ./a.out没有输出,程序只是继续执行,就好像它在一个无限循环。 按下Ctrl + C,这是我得到的: $ mpirun -np 5 ./a.out ^C[mpiexec@user] Sending […]

打开MPI 1.10,看不到Linux Mint 17上的进程

我最近从Ubuntu 14更改为Linux Mint 17.重新安装Open MPI 1.10(这很好),我遇到了一个非常奇怪的问题: 我使用mpicc编译了我的标准mpi_hello_world.c并试图运行它(mpiexec -n 4 mpi_hello),但得到了以下输出: Hello world from processor DarkHeresy, rank 0 out of 1 processors Hello world from processor DarkHeresy, rank 0 out of 1 processors Hello world from processor DarkHeresy, rank 0 out of 1 processors Hello world from processor DarkHeresy, rank 0 out of 1 processors 所以mpiexec只能运行在0级的进程! […]