A task allocation method for allocating a plurality of tasks associated with an application that is currently being executed by a distributed processing system, which includes tasks that are antecedent dependent on each other, to respective nodes in the distributed processing system including a plurality of nodes each provided with at least one processor and communicably connected to each other, the method comprising: for each task to be assigned to a single or a plurality of processors, computing (S30, S32) an absolute earliest start time at which a task can be started and an absolute latest start time which is allowed in order to complete the task within a time constraint; computing a task movable range, which is defined as a difference between the absolute earliest start time and the absolute latest start time; determining a destination node to which a task is allocated, giving priority to a task with a smaller task movable range, wherein the destination node is selected for a task as the node which gives the smallest absolute earliest start time for the most important descendant task, the most important descendant task being a descendant task which is unallocated and has the smallest task movable range; and characterized in that, when there are plural tasks with the smallest task movable range, selecting a task on a path with the longest communication time to a descendant task, grouping the selected task and the descendant task dependent on each other, computing the task movable range on a group by group basis such that the task movable range of a group is a difference between the absolute earliest start time and the absolute latest start time for the group with an assumed communication time of zero between tasks within a group, and determining a destination node to which a group of tasks is allocated, giving priority to a group with a smaller task movable range. for each task to be assigned to a single or a plurality of processors, computing (S30, S32) an absolute earliest start time at which a task can be started and an absolute latest start time which is allowed in order to complete the task within a time constraint; computing a task movable range, which is defined as a difference between the absolute earliest start time and the absolute latest start time; determining a destination node to which a task is allocated, giving priority to a task with a smaller task movable range, wherein the destination node is selected for a task as the node which gives the smallest absolute earliest start time for the most important descendant task, the most important descendant task being a descendant task which is unallocated and has the smallest task movable range; and characterized in that, when there are plural tasks with the smallest task movable range, selecting a task on a path with the longest communication time to a descendant task, grouping the selected task and the descendant task dependent on each other, computing the task movable range on a group by group basis such that the task movable range of a group is a difference between the absolute earliest start time and the absolute latest start time for the group with an assumed communication time of zero between tasks within a group, and determining a destination node to which a group of tasks is allocated, giving priority to a group with a smaller task movable range.