I have done some testing and found that I get error 10055 http://www.sockets.com/err_lst1.htm#WSAENOBUFS which occurs when I am doing a syncronised send. I am using boost.mpi and have found that this occurs when using send and isend and then mpi_wait.
From my understanding if I do a syncronised send, the buffer can be resused once the send has handshaked, but it doesn't appear to be the case.
I am using standard tcp on ethernet as my backbone.
Does anyone know if there is a setting in the Intel MPI config that will allow me to increase the buffer or other to get around this limit as it is occuring at quite a low level for my project purposes.
Also, is there a way to zip data that is sent with the Intel MPI lib.
Could you please clarify your system configuration (hardware, OS version)?
Strictly saying the TCP receive buffers and transmit buffer size is controlled by your system configuration. Intel MPI Library itself provides control over TCP buffers size if operating system allow adjust this value. Set the I_MPI_TCP_BUFFER_SIZE environment variable to desired value to override defaults. But keep in mind that actual TCP socket buffer size is restricted by the existing TCP settings on your system.
Thanks for your feedback.
I am running on Windows XP 32 bit, with a Dell T5500 with 2 Xean 6 core CPU's with standard ethernet WinSock backbone.
If the backbone does proof to be a bottleneck, do you know if there is a facility in the Intel MPI Lib to be able to zip the data before it is sent and unzip it at the remote end or does this need to be done manually.
I haven't heard of any MPI providing automatic zipping of messages. It's hard to see why you would want to do that, unless your messages consist of large character strings.
32-bit Windows might pose a bottleneck to the availability of buffer sizes, particularly when you choose a discontinued Windows version which doesn't support your platform fully. I doubt that you can overcome such problems by strange experiments. It's difficult enough to get full MPI performance on Windows when you don't set handicaps for yourself.
You can get advantage of zipping/unzipping only for large messages. Our testing showed that it can happen for messages more than 5 MB and only if you are using ipp library. Such big messages are sent not so often and Intel MPI Library cannot do it automatically.