mpi

What happens when I MPI_Send to a process that has finished?

What happens when I MPI_Send to a process that has finished? I am learning MPI, and writing a small sugar distribution-simulation in C. When the factories stop producing, those processes end. When warehouses run empty, they end. Can I somehow tell if the shop's order to a warehouse did not succeed(because the warehouse process has ended...

How to pass user-defined structs using boost mpi

I am trying to send a user-defined structure named ABC using boost::mpi::send () call. The given struct contains a vector "data" whose size is determined at runtime. Objects of struct ABC are sent by master to slaves. But the slaves need to know the size of vector "data" so that the sufficient buffer is available on the slave to receive...

Open MPI Sending structure C

Is it possible to send a structure as a datatype in Open MPI? ...

MPI and C structs

I have to admit, I was quite shocked to see how many lines of code are required to transfer one C struct with MPI. Under what circumstances will it work to simply transmit a struct using the predefined dataype MPI_CHAR? Consider the following example: struct particle { double x; double y; long i; }; struct particle p; MPI_...

relation between ranks of processes after using MPI_COMM_split

I used MPI_Comm_split to split the default MPI communicator.If initially there were 10 processes in default communicator ,MPI_COMM_WORLD and ,say, their ranks were identified by id_original. The new communicator consisted of 4 processes with id_original 6,7,8,9.These processes will have ranks defined by , say , id_new in the new communi...

Sending 2 dim array using scatter

I am a beginner in MPI, and i am using C Language, and Simulator for Processors (MPICH2), i wrote the following code to send a 2D array to make 2 processors take a line from it but it produces error when running MPICH2, the code is: #include <stdio.h> #include <stdlib.h> #include "mpi.h" int main(int argc, char *argv[]) { int r...

How do you stop in TotalView after an MPI Error?

I am using TotalView and am getting an MPI_Error. However, Totalview does not stop on this error and I can't find where it is occurring. I believe this also applies to GDB. ...

Communicate between separate MPI-Programs

I have the following problem: Program 1 has a huge amount of data, say 10GB. The data in question consists of large integer- and double-arrays. Program 2 has 1..n MPI processes that use tiles of this data to compute results. How can I send the data from program 1 to the MPI Processes? Using File I/O is out of question. The compute no...

mpi atomic read/modify/write

hi. Is there an easy way to implement atomic integer operations (one sided) in mpi? last time I looked three years ago, example in mpi book was fairly complex to implement. Thanks ...

How to send a signal ( or notification ) from MPI process to another on C?

Hello All, How can i make MPI process notify the others about an error for example, specially on an MPI program where all the MPI processees are independant from each others ( There no synchronisation between the different MPI processees ) ? Thanks ...

Is there special variables shared between MPI processees ?

Hello All, I'm new in MPI programming world and i'm wondering if there is some variables shared between MPI processees and accessible from any process without having to send/receive them ? Thanks ...

Is MPI_Request global among the MPI processees ?

Hello All, If i declare a table of MPI_Request ( one request for each CPU ), it will be accessible globally when using for MPI_Isend/MPI_Irecv ?? ( In comparison with MPI_comm that is everywhere accessible after initializing the MPI environment ) Thanks. ...

No recent books on MPI: is it dying?

I've never used Message Passing Interface (MPI), but I've heard its name thrown about, most recently with Windows HPC Server. I had a quick look on amazon to see if there were any books on it, but they're all dated around 7 or more years ago. Is MPI still a valid technology choice for new applications, or has it been largely superceded b...

using strace with mpiexec

Hello How to strace all processes of mpi parallel job, started with mpiexec (mpich2, linux)? -o will mess outputs from different processes ...

Using MPI_Type_Vector and MPI_Gather, in C.

Hi, I am trying to multiply square matrices in parallele with MPI. I use a MPI_Type_vector to send square submatrixes (arrays of float) to the processes, so they can calculate subproducts. Then, for the next iterations, these submatrices are send to neighbours processes as MPI_Type_contiguous (the whole submatrix is sent). This part is...

MPI hypercube broadcast error

I've got a one to all broadcast method for a hypercube, written using MPI: one2allbcast(int n, int rank, void *data, int count, MPI_Datatype dtype) { MPI_Status status; int mask, partner; int mask2 = ((1 << n) - 1) ^ (1 << n-1); for (mask = (1 << n-1); mask; mask >>= 1, mask2 >>= 1) { if (rank & mask2 == 0) { pa...

Instant crashing after replacing calls to clock() with MPI_Wtime()

I have an MPI program that I'm developing on a local computer, but need to run on a remote machine. I used clock() to measure time, but after discovering that it doesn't work well enough on the remote machine (due to a completely different architecture), I replaced a few calls to clock() with MPI_Wtime(), which yielded the required resul...

MPI Large Data all to all transfer

My application of MPI has some process that generate some large data. Say we have N+1 process (one for master control, others are workers), each of worker processes generate large data, which is now simply write to normal file, named file1, file2, ..., fileN. The size of each file may be quite different. Now I need to send all fileM to r...

Possible to distribute an MPI (C++) program accross the internet rather than within a LAN cluster?

Hi there, I've written some MPI code which works flawlessly on large clusters. Each node in the cluster has the same cpu architecture and has access to a networked (i.e. 'common') file system (so that each node can excecute the actual binary). But consider this scenario: I have a machine in my office with a dual core processor (intel)...

Library for task distribution in MPI (or other)?

I'm looking to implement 'branch and bound' over a cluster (like Amazon's say), as I want it to be horizontally scalable, not limited to a single CPU. There's a paper "Task Pool Teams: A Hybrid Programming Environment for Irregular Algorithms on SMP Clusters" by Judith Hippold and Gudula Runger. It's basically a bottom-up, task-stealing ...