1. A parallel computing method performed by a parallel computing system comprising a plurality of central processing units (CPUs), the parallel computing method comprising: executing a main process; executing a task priority queue update process to maintain a task priority queue that ranks tasks whose results may be needed by the main process wherein the ranking is based on (i) probabilities that the task results will be needed by the main process and (ii) time limits for executing the tasks; executing tasks in parallel with the executing of the main process on CPUs not used in executing the main process and with execution order of the tasks being in accordance with the task priority queue; and storing, in a completed task results cache, results of tasks whose execution is completed on CPUs not used in executing the main process; wherein the main process is configured to retrieve completed task results from the completed task results cache when needed by the main process.