Table of Contents
pscom communication libraryThis chapter provides more technical details and background information about ParaStation MPI.
      The ParaStation MPI communication library libpscom
      offers secure and reliable end-to-end connectivity. 
      It hides the actual transport and communication
      characteristics from the application and higher level libraries.
    
      The libpscom library supports a wide range
      of interconnects and protocols for data transfers.
      Using a generic plug-in system, this library may open connections
      using the following networks and protocols:
    
          TCP: uses standard TCP/IP sockets to
          transfer data. This protocol may use any interconnect.
          Support for this protocol is built-in to the
          libpscom.
        
          P4sock: uses an optimized network
          protocol for Ethernet (see the section called “ParaStation protocol p4sock”, below).
          Support for this protocol is built-in to the
          libpscom.
        
          InfiniBand: 
          based on a verbs kernel layer and a
          libverbs library, typically provided by
          the hardware vendor, the libpscom
          may use InfiniBand to actually transfer data.
          The corresponding plug-in library is called
          libpscom4openib.
        
          Myrinet: using the GM library and
          kernel level module, the libpscom
          library is able to use Myrinet for data transfer.
          The particular plug-in library is called
          libpscom4gm.
        
          Shared Memory: for communication within
          a SMP node, the libpscom library uses
          shared memory.
          Support for this protocol is built-in to the
          libpscom.
        
          DAPL:
          The libpscom supports a DAPL
          transport layer.
          Using the libpscom4dapl plug-in, it may
          transfer data across various networks like InfiniBand or 10G
          Ethernet using a vendor-provided
          libdapl.
        
          QsNet:
          The libpscom supports the QsNetII
          transport layer.
          Using the libpscom4elan plug-in, it may
          transfer data using the libelan.
        
The interconnect and protocol used between two distinct processes is chosen while opening the connection between those processes. Depending on available hardware, configuration (see the section called “Configuration of the ParaStation MPI system”) and current environment variables (see the section called “Controlling ParaStation MPI communication paths”), the library automatically selects the fastest available communication path.
The library routines for sending and receiving data handle arbitrary large buffers. If necessary, the buffers will be fragmented and reassembled to meet the underlying transport requirements.
      The application is dynamically linked with the
      libpscom.so library. 
      At runtime, this library loads plug-ins for various
      interconnects, see above.
      For more information on controlling ParaStation MPI communication pathes,
      refer to the section called “Controlling ParaStation MPI communication paths”.