The first step in setting up the parallel application on different machines is the starting up of the processes on the different machines specified in the process-config file. To start the processes, TCPMPL creates a copy of the program one for every job specified in the process-config file. The library is built on the UNIX platform. To create a copy of the program started by the user, TCPMPL uses the following UNIX system call:
pid_t fork(void);
Once it creates copies of the program, each copy starts the processes on the remote machine specified in the process-config file. To achieve this, the rsh command (UNIX system service to run a program on a remote machine) is used to start the remote process specified by the user. TCPMPL executes the rsh command giving the remote machine name together with the path of the executable on the remote machine as arguments to the rsh command. TCPMPL uses the following UNIX system call to execute the rsh command:
int execvp(const char *file, char *const argv[]);
The process of starting the parallel application on the remote machine is shown in Figure 2. The initiator process started by the user, creates the processes specified in the process-config file on the remote machines. Since the processes are created by the fork() system call, all the process run concurrently on the machines specified in the process-config file.

Figure 2: Starting of processes on remote machines by initiator using
fork/exec.