The first phase during the execution of a parallel application is the initialization phase. In this phase, the message passing layer has to do the initialization work that must be done for the library. Some libraries have a daemon that needs to be started on different machines. The disadvantage with this approach is that the message passing layer needs to communicate with the local daemon. When many sets of parallel application are run at the same time, there is a potential congestion at the local daemon which increases the message latency and affects other parameters. The next two subsections discuss the details of design of initialization of processes. Usually this initialization is done by forcing the parallel application to call a init() function in the message passing layer.