openmpi

Error because file libmpi.so.1 missing

耗尽温柔 提交于 2019-12-10 09:31:22
问题 I'm using Omnet++ and Veins for simulations and it was working fine until I upgraded from Ubuntu 15 to 16.04 LTS last night. Now, I get the following error when trying to run a simulation: error while loading shared libraries: libmpi.so.1: cannot open shared object file: No such file or directory I searched for libmpi.so.1 and it seems it is missing. There is a file libmpi.so and libmpi.so.12 in /usr/lib/openmpi/lib but not libmpi.so.1. I tried uninstalling and reinstalling the packages

Implicit barrier at the end of #pragma for

二次信任 提交于 2019-12-09 18:15:07
问题 Friends, I am trying to learn the openMP paradigm. I used the following code to understand the #omp for pragma. int main(void){ int tid; int i; omp_set_num_threads(5); #pragma omp parallel \ private(tid) { tid=omp_get_thread_num(); printf("tid=%d started ...\n", tid); fflush(stdout); #pragma omp for for(i=1; i<=20; i++){ printf("t%d - i%d \n", omp_get_thread_num(), i); fflush(stdout); } printf("tid=%d work done ...\n", tid); } return 0; } In the above code, there is an implicit barrier at the

Is it possible to run OpenMPI on a local computer AND a remote cluster?

醉酒当歌 提交于 2019-12-09 06:57:56
问题 I have a set of computational operations that need to be performed a cluster (maybe like 512 MPI processes). Right now, I have the root node on the cluster open a socket and transfer data to my local computer in between the compute operations, but I'm wondering if it's possible to just create two MPI groups, and one of those groups is my local machine, and the other the remote cluster, and to send data between them using MPI commands. Is this possible? 回答1: Yes, it is possible, as long as

Open MPI - mpirun exits with error on simple program

谁都会走 提交于 2019-12-08 17:19:08
问题 I have recently installed OpenMPI on my computer and when I try to run a simple Hello World program, it exits with the next error: ------------------------------------------------------- Primary job terminated normally, but 1 process returned a non-zero exit code.. Per user-direction, the job has been aborted. ------------------------------------------------------- This is the program's source code: #include <mpi.h> #include <stdio.h> int main(int argc, char *argv[]) { int size, rank; MPI

What is Segmented Ring Allreduce in OpenMPI (V2.0.2)? How is it pipelined?

瘦欲@ 提交于 2019-12-08 12:03:22
问题 I have been trying to understand the Segemented Ring Allreduce in OpenMPI (V2.0.2). But I failed to figure out this pipelined ring allreduce, especially how the phases are pipelined. (i.e. COMPUTATION PHASE 1 (b) seems to perform the two phases concurrently instead of "pipelinely".) Could MPI experts provide the motivation behind this Segmented Ring Allreduce and details about the pipeline? Really appreciated, Leo 回答1: i think this has been asked and answered at https://github.com/open-mpi

OpenMPI gets waiting for ever

做~自己de王妃 提交于 2019-12-08 08:32:24
问题 when i execute this code i have no response, it gets waiting for ever, process 1 is sending data to the root process but the root process doesn't receive it (or almost that is what i think). #include <stdio.h> #include <stdlib.h> #include "mpi.h" void my_parallel_function(int v[], int size, int rank) { MPI_Status status; int i; if(rank==0) { MPI_Send(&v[0], 10, MPI_INT, 1, 1, MPI_COMM_WORLD); } else { MPI_Recv(&v[0], 10, MPI_INT, MPI_ANY_SOURCE, 1, MPI_COMM_WORLD,&status); for(i=0;i<10;i++) {

MPI_Barrier doesn't function properly

旧街凉风 提交于 2019-12-08 07:57:00
问题 I wrote the C application below to help me understand MPI, and why MPI_Barrier() isn't functioning in my huge C++ application. However, I was able to reproduce my problem in my huge application with a much smaller C application. Essentially, I call MPI_Barrier() inside a for loop, and MPI_Barrier() is visible to all nodes, yet after 2 iterations of the loop, the program becomes deadlocked. Any thoughts? #include <mpi.h> #include <stdio.h> int main(int argc, char* argv[]) { MPI_Init(&argc,

MPI_Rsend not raising error when it should

喜欢而已 提交于 2019-12-08 07:24:34
问题 The man page for Open MPI's implementation of MPI_Rsend states that A ready send may only be called if the user can guarantee that a receive is already posted. It is an error if the receive is not posted before the ready send is called. I'm trying to write a small program to see how this error would manifest itself (I thought it would be a runtime error followed by abort), but this program works perfectly: #include <assert.h> #include <mpi.h> #include <stdio.h> #include <stdlib.h> /* malloc *

Heterogeneous nodes in OpenMPI

巧了我就是萌 提交于 2019-12-08 03:30:31
问题 I am new to OpenMPI. I heard that it supports heterogeneous nodes. I have couple of raspberry-pis and an i7 machine with me. I have installed OpenMPI in all of them. I have also configured password-less ssh so that master (i7 pc) could launch a process in raspberry-pis. When I run simple hello_MPI.exe using following command from i7 machine, mpiexec -machinefile machinefile -n 2 hello_MPI.exe Nothing happens! It hangs. However, hello_MPI.exe executes properly when I am working with only 2 r

MPI_Isend and MPI_Irecv seem to be causing a deadlock

只谈情不闲聊 提交于 2019-12-08 01:26:42
问题 I'm using non-blocking communication in MPI to send various messages between processes. However, I appear to be getting a deadlock. I have used PADB (see here) to look at the message queues and have got the following output: 1:msg12: Operation 1 (pending_receive) status 0 (pending) 1:msg12: Rank local 4 global 4 1:msg12: Size desired 4 1:msg12: tag_wild 0 1:msg12: Tag desired 16 1:msg12: system_buffer 0 1:msg12: Buffer 0xcaad32c 1:msg12: 'Receive: 0xcac3c80' 1:msg12: 'Data: 4 * MPI_FLOAT' --