You might have seen some batch jobs which updates/creates millions of data taking much time to finish the job. It is taking time due to the amount of data that needs to be processed (apart from the bad design/sqls). Parallel processing is a method by which we could finish the job in a matter of minutes. It is a process by which we divide the data into smaller logical sets and running the job for each set at the same time. Peoplesoft support the parallel processing in application engines by means of temporary tables and inbuilt mechanism to launch multiple instances.
Suppose I have a process which updates the salary record of all my employees (say 100000). The employees belong to 5 different business units (BU) with 20000 employees in each business units.
If I run the update process for all the employees without parallel processing, the job has to update all the employees’ record and say it finishes in 10 minutes. What if I divide my employees based on BU and run each instance of the same program simultaneously? Each individual process will take 2 minutes and since all the process is run at the same time, the entire record will be finished at the same time. So I reduced my processing time from 10 minutes to 2 minutes (in real scenario, it may take time more than 2 minutes but still it will be better than the initial 10 minutes time). The following diagram illustrates running of process in parallel.
There will be a delay between the actual processing start of the first instance and second instance (applicable for all instances). This is due to the fact that, each individual set of process will lock the data to be processed in the base table. Since one process is updating the base table, the other one has to wait until the database frees the base table.
Similarly there will be delay when we update back the base table with updated data. But this delay will be negligible when compared to the overall gain in performance.
Read Related:Implementing Parallel processing in Peoplesoft - Part II/III