This web mail archive is frozen.
This page is part of a frozen web archive of this mailing list.
You can still navigate around this archive, but know that no new mails
have been added to it since July of 2016.
Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.
Dear openMPI users,
I think this should be an easy question to anyone with more experience
than an openMPI-hello-world-program...
I wrote some openMPI code, where the master sends a length and then a
buffer with that length as 2 subsequent MPI messages.
The slave is receiving these messages and answers back in a similar manner.
Sometimes this goes ok, sometimes not.
Messages of 28 chars or shorter do fine.
Messages of 29 or longer are usually problematic.
This length can be controlled with
#define DUMMY_MSG_LENGTH (40)
On Mac I sometimes get a mentioning of "slave 32767", where there
should only be a leave 1.
Probably a buffer overrun or so, but I cannot see where.
On linux I get: Segmentation fault (11)
Increasing the length gives more problems...
How can I get this code stable?
What am I doing wrong?
Is there a maximum length to MPI messages?
For sending a string, do I use MPI_CHARACTER or MPI_BYTE or ...?
How come I cannot assert that my messages end in '\0' when received?
And how come that when I print them, I also get a segmentation fault?
Can I send two subsequent messages using MPI_Send, or do I have to do
the first as MPI_Isend and then do a MPI_Wait before the next
Why do I not find code online for receiving the length first and then
allocating a buffer of this size and then receiving the next message?
All code, build, run scripts and logs are attached.
It would help me big time, if you could answer my questions or debug the code.
thanks a lot!
- application/x-sh attachment: run.sh
- application/octet-stream attachment: mac.log
- application/octet-stream attachment: linux.log