Gilles;
                Thanks for your response. The network setup I have here is 20 
computers connected over a 1 gig Ethernet lan. The computers are nehalems with 
8 cores per. These are 64 bit machines. Not a high performance setup but this 
is simply a research bed. I am using a host file most of the time with each 
node configured for 10 slots. However, I see the same behavior if I run just 2 
process instances on a single node. 8000 bytes are ok. 9000 bytes hangs.  Here 
is my test code below. Maybe Im not setting this up properly. I just recently 
installed OpenMPI 2.1 and did not set any configuration flags. The OS we are 
using is a variation of RedHat 6.5 with 2.6.32 kernel.

Thanks

Rick

#include "mpi.h"
#include <stdio.h>
#include <iostream>
unsigned int bufsize = 9000;
main(int argc, char *argv[])  {
   int numtasks, rank, dest, source, rc, count, tag=1;
                MPI_Init(&argc,&argv);
   MPI_Comm_size(MPI_COMM_WORLD, &numtasks);
   MPI_Comm_rank(MPI_COMM_WORLD, &rank);
   char * inmsg;
                std::cout << "Calling allocate" << std::endl;
                int x = MPI_Alloc_mem(bufsize,MPI_INFO_NULL, &inmsg);
                std::cout << "Return code from input buffer allocation is " << 
x << std::endl;
                char * outmsg;
                x = MPI_Alloc_mem(bufsize,MPI_INFO_NULL, &outmsg);
                std::cout << "Return code from output buffer allocation is " << 
x << std::endl;
   MPI_Status Stat;   // required variable for receive routines
                printf("Initializing on %d tasks\n",numtasks);
                MPI_Barrier(MPI_COMM_WORLD);
   if (rank == 0) {
     dest = 1;
     source = 1;
                                std::cout << "Root sending" << std::endl;
                                MPI_Bcast(outmsg,bufsize, 
MPI_BYTE,rank,MPI_COMM_WORLD);
                                std::cout << "Root send complete" << std::endl;
     }
   else if (rank != 0) {
     dest = 0;
     source = 0;
                                std::cout << "Task " << rank << " sending." << 
std::endl;
                                MPI_Bcast(inmsg,bufsize, 
MPI_BYTE,rank,MPI_COMM_WORLD);
                                std::cout << "Task " << rank << " complete." << 
std::endl;
     }
MPI_Barrier(MPI_COMM_WORLD);
   MPI_Finalize();
   }

From: users [mailto:users-boun...@lists.open-mpi.org] On Behalf Of Gilles 
Gouaillardet
Sent: Thursday, September 29, 2016 7:58 PM
To: Open MPI Users
Subject: Re: [OMPI users] openmpi 2.1 large messages


Rick,



can you please provide some more information :

- Open MPI version

- interconnect used

- number of tasks / number of nodes

- does the hang occur in the first MPI_Bcast of 8000 bytes ?



note there is a known issue if you MPI_Bcast with different but matching 
signatures

(e.g. some tasks MPI_Bcast 8000 MPI_BYTE, while some other tasks MPI_Bcast 1 
vector of 8000 MPI_BYTE)
you might want to try
mpirun --mca coll ^tuned
and see if it helps


Cheers,

Gilles
On 9/30/2016 6:52 AM, Marlborough, Rick wrote:
Folks;
                I am attempting to set up a task that sends large messages via 
MPI_Bcast api. I am finding that small message work ok, anything less then 8000 
bytes. Anything more than this then the whole scenario hangs with most of the 
worker processes pegged at 100% cpu usage. Tried some of the configuration 
settings from FAQ page, but these did not make a difference. Is there anything 
else I can try??

Thanks
Rick




_______________________________________________

users mailing list

users@lists.open-mpi.org<mailto:users@lists.open-mpi.org>

https://rfd.newmexicoconsortium.org/mailman/listinfo/users

_______________________________________________
users mailing list
users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/users

Reply via email to