I can't speak to the MPI layer, but for OpenRTE, each process holds one socket open to the HNP. Each process *has* all the socket connection info for all of the processes in its job, but I don't believe we actually open those sockets until we attempt to communicate with that process (needs to be verified).
At the moment, we do not reuse daemons when we dynamically spawn processes (e.g., via a comm_spawn call) - we hope to rectify that in the next couple of months. Until that happens, there will be one daemon/job on each node where a job has been launched (a comm_spawn generates a new job). Each daemon consumes one socket to connect to the HNP. Daemons do not open sockets to their local processes. All OpenRTE sockets are TCP and independent of any sockets being opened by the MPI layer. So, from the OpenRTE layer, S = #jobs + #procs Hope that helps Ralph On 10/25/06 1:45 AM, "Joachim Worringen" <joac...@dolphinics.com> wrote: > > Is there a formula to calculate the number of socket connections per > node (S) that an OpenMPI application needs for running (via sockets) on > N nodes with P processes each? I guess something like > > S = P * (N-1)*P > > but what about the daemons etc.? Let's assume only a single interface is > used. > > thanks, Joachim