Escali 4.4 User Manual

Page of 81
Section: 3.8 Controlling communication resources
Scali MPI Connect Release 4.4 Users Guide 
31
3.8 Controlling communication resources
Even though it is normally not necessary to set buffer parameters when running applications, 
it can be done, e.g., for performance reasons. Scali MPI Connect automatically adjusts 
communication resources based on the number of processes in each node and based on 
pool_size and chunk_size.
The built-in devices SMP and TCP/IP use a simplified protocol based on serial transfers. This 
can be visualized as data being written into one end of a pipe and read from the other end. 
Messages arriving out-of-order are buffered by the reader. The names of these standard 
devices are SMP for intra-node-communication and TCP for node-to-node-communication.
The size of the buffer inside the pipe can be adjusted by setting the following environment 
variables:
• SCAFUN_TCP_TXBUFSZ - Sets the size of the transmit buffer.
• SCAFUN_TCP_RXBUFSZ - Sets the size of the receive buffer.
• SCAFUN_SMP_BUFSZ - Sets the size of the buffer for intranode-communication. 
The ringbuffers are divided into equally sized entries. The size varies differs for different 
architectures and networks; see Scali MPI Connect Release Notes” for details. An entry in the 
ringbuffer, which is used to hold the information forming the message envelope, is reserved 
each time a message is being sent, and is used by the inline protocol, the eagerbuffering 
protocol, and the transporter protocol. In addition, one ore more entries are used by the inline 
protocol for application data being transmitted.
mpimon has the following interface for the eagerbuffer and channel thresholds:
• Channel threshold definitions 
-channel_inline_threshold <size> to set threshold for inlining  
• Eager threshold definitions 
-eager_threshold <size> to set threshold for eager buffering 
3.8.1 Communication resources on DAT-devices
All resources (buffers) used by SMC reside in shared memory in the nodes. This way multiple 
processes (typically when a node has multiple CPUs) can share the communication resources.
SMC operates on a buffer pool. The pool is divided into equally sized parts called chunks. SMC 
uses one chunk per connection to other processes. The mpimon option “pool_ size” limits the 
total size of the pool and the “chunk_size” limits the block of memory that can be allocated for 
a single connection. 
To set the pool size and the chunk size, specify:
-pool_size <size> 
to set the buffer pool size 
-chunk_size <size> 
to set the chunk size