openmpi

Limits with MPI_Send or MPI_Recv?

谁说我不能喝 提交于 2019-12-12 01:13:29
问题 Do we have any limits about message size on MPI_Send or MPI_Recv - or limits by computer? When I try to send large data, it can not completed. This is my code: #include <stdio.h> #include <stdlib.h> #include <mpi.h> #include <math.h> #include <string.h> void AllGather_ring(void* data, int count, MPI_Datatype datatype,MPI_Comm communicator) { int me; MPI_Comm_rank(communicator, &me); int world_size; MPI_Comm_size(communicator, &world_size); int next=me+1; if(next>=world_size) next=0; int prev

What should I do if I want to send message by MPI and receive messages at the same time?

社会主义新天地 提交于 2019-12-11 23:35:11
问题 Backgroup: rank 0 send message to rank 1, after rank 1 completes its work it returns messages to rank 0 actually I run a thread for sending message and the other one for receiving in rank 0 like this: int tag = 1; void* thread_send(void* argc) { ...; while(1) { if(tag == 1) { MPI_Send(...,1,TAG_SEND,...);//send something to slave tag = 0; } } ... } void* thread_receive(void* argc) { while(1) { MPI_Recv(...,0,TAG_RECV,...); //ready for receiving from slave tag = 1; } } in rank 1 I run a thread

infinite wait during openMPI run on a cluster of servers?

こ雲淡風輕ζ 提交于 2019-12-11 23:04:36
问题 I have successfully set up the password less ssh between the servers and my computer. There is a simple openMPI program which is running well on the single computer. But ,unfortunately when i am trying this on a cluster ,neither i am getting a password prompt(as i have set up ssh authorization) nor the execution is moving forward. Hostfile looks like this, # The Hostfile for Open MPI # The master node, 'slots=8' is used because it has 8 cores localhost slots=8 # The following slave nodes are

Can someone explain this valgrind error with open mpi?

二次信任 提交于 2019-12-11 16:49:10
问题 My basic question is about how the suppression files work in valgrind. I have looked at a lot of the documentation that points to using the following on mpi versions > 1.5 (mine is 1.6): mpirun -np 2 valgrind --suppressions=/usr/share/openmpi/openmpi-valgrind.supp --track-origins=yes ./myprog However, when I run it like this the file has over 600 errors! The errors I am getting are these two over and over. I don't know how to interpret either one of these with my current understanding of

Undefined reference to pthread_atfork`

∥☆過路亽.° 提交于 2019-12-11 14:53:52
问题 Using g++ version 4.9 in Ubuntu, when compiling a C++ source file named test.cpp that needs a shared library named libUtils.so (which in its turn needs Open MPI shared library, hence the parameter -Wl,-rpath-link,/home/dummy/openmpi/build/lib ) as follows: g++ test.cpp -lUtils -Wl,-rpath-link,/home/dummy/openmpi/build/lib An error is thrown /home/dummy/openmpi/build/lib/libopen-pal.so.20: undefined reference to pthread_atfork . I passed -pthread and -lpthread to g++ but none of these solved

Non-blocking data sharing through OpenMPI

可紊 提交于 2019-12-11 12:32:24
问题 I'm trying to spread data across multiple workers using OpenMPI, however, I'm doing the data division in a fairly custom way that is not amenable to MPI_Scatter or MPI_Broadcast . What I would like to do is to give each processor some work in a queue (or, some other async mechanism) such that they can do their work on the first chunk of data, take the next chunk, repeat until no more chunks. I know of MPI_Isend , however if I send data with MPI_Isend I can't modify it until it's finished

OpenMPI C language scanf does not stop taking input (Mac OS X 10.10)

泄露秘密 提交于 2019-12-11 11:18:55
问题 I am trying to run the following MPI code. The problem is with the scanf . The command keep on taking input and does not anywhere. It is supposed to take one input string only. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <mpi.h> int main(int argc,char * argv[]) { int npes, myrank, length = 10; char string[length+1]; // array size changed to length +1 as suggested in comments. memset(string, 0, length+1); MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &npes); MPI

error with gcc 5 for varargs function: suffix or operands invalid for `movq'

試著忘記壹切 提交于 2019-12-11 10:51:40
问题 When trying to install OpenMPI the .configure filed failed in the section checking for ISO C99 ability of the selected compiler. Puzzled as gcc of course has both the std=gnu99 and std=c99 option, I pruning the 20,000 lines configure file to isolate the offending section. In the end I traced it back to gcc 5 not compiling variable argument functions. The below code generates the "suffix or operands invalid for `movq'" error, which is the root cause of the .configure file failing. (The step-by

Openmpi and vargrind

烂漫一生 提交于 2019-12-11 10:03:08
问题 I just use a valgrind to test an example provide in openmpi-1.4/example: mpirun.openmpi --np 2 valgrind --log-file=output.dat --leak-check=full --tool=memcheck ./ring_c then I found below in output.dat: ==30450== Syscall param writev(vector[...]) points to uninitialised byte(s) ==30450== at 0x54DC150: __writev_nocancel (syscall-template.S:81) ==30450== by 0x7E3B312: mca_oob_tcp_msg_send_handler (in /usr/lib/openmpi/lib/openmpi/mca_oob_tcp.so) ==30450== by 0x7E3C50A: mca_oob_tcp_peer_send (in

Rmpi, OpenCPU, and Apparmor: DENIED request for “/”

你。 提交于 2019-12-11 05:15:43
问题 I have an R package that sends out a job to the OpenMPI cluster I have running by means of the Rmpi package. All works as expected within an R session run from the console. However, when I try to execute the relevant function with from my OpenCPU server like this (details changed to protect the innocent): curl -XPOST http://99.999.999.99/ocpu/library/MyPackage/R/my_cluster_function I get this error: R call failed: process died. (Other, non-cluster calling functions within the package work as