DeinoMPI Forum

Forum dedicated to discussing DeinoMPI
Welcome to DeinoMPI Forum Sign in | Join | Help
in Search

Socket size optimization

Last post 05-09-2008, 8:17 PM by admin. 3 replies.
Sort Posts: Previous Next
  •  05-07-2008, 3:05 PM 236

    Socket size optimization

    From old posts, I found that the default socket size is 32k - is this only for network interfaces?
    What is the default socket size, if any, for internal shared memory channels?
  •  05-08-2008, 11:23 PM 237 in reply to 236

    Re: Socket size optimization

    The shared memory channel uses 16 16k buffers per point-to-point connection.  Messages between two processes are streamed through these buffers.  The number and size of the buffers is fixed at compile time and cannot be changed at run-time.

    Messages larger than 10k are read directly from the process space of one process to another without using the shared memory channel queues.

  •  05-09-2008, 8:14 AM 238 in reply to 237

    Re: Socket size optimization

    Thank you, I find this information very interesting and helpful! 

    A bit of clarification – can you be more precise about the point-to-point communications?

    I.E., if I have a dual core chip, there will be 16 16k buffers.  What if I have a quad core chip?  Will there be 6(combinations)*16  = 96 16k buffers?

    Likewise, how are messages passed through the network socket when messages are larger than 32k (or whatever the socket size is set to)?

    My apologies if any of my questions are elementary, I’m definitely still an amateur at computer science.

  •  05-09-2008, 8:17 PM 239 in reply to 238

    Re: Socket size optimization

    All communication in DeinoMPI is point-to-point and the collective operations are implemented using point-to-point messages.  The first time a process sends a message to another process a 256k shared memory block (16x16k) is allocated for communication between those two processes.

    The number of cores does not matter.  You can run an 8 process job on a 2 core machine.  Memory allocation is based on the number of processes that communicate with each other.

    Large messages are streamed through socket buffers.  For processes on the same machine, a simple memcpy moves the data from one process to another.

View as RSS news feed in XML
Powered by Community Server, by Telligent Systems