The number of processes is specified by an option on the application's command line. The runtime also provides transparent message passing between processes.
Processes intercommunicate by specifying their ranks.
Programmers do not have to be aware of whether the other process is within an SMP node or not. The protocols are the eager protocol, the rendezvous protocol and the get protocol. They realize the underlying communication between MPI processes. The eager protocol pushes a message into the network as soon as an MPI send primitive is issued. The rendezvous protocol can realize zero-copy message transfer between nodes.