A vehicle control apparatus comprising: a processor that includes a plurality of processor cores (102, 103, 104) to execute tasks which control operations of a vehicle; and a task allocation unit that allocates the tasks to the respective processor cores (102, 103, 104), wherein the task allocation unit acquires an execution order parameter describing an execution order of the task, an execution cycle parameter describing an execution cycle of the task, and a communication cost parameter describing a communication cost, which is required for data communication between two of the processor cores (102, 103, 104), and allocates the tasks to the respective processor cores (102, 103, 104) in accordance with each description of the execution order parameter, the execution cycle parameter, and the communication cost parameter, and the processor outputs an execution order log describing an order of the tasks executed by the respective processor cores (102, 103, 104), an execution cycle log describing a cycle of the task executed by the processor core (102, 103, 104), and a communication cost log describing a communication cost spent for data communication between the two processor cores (102, 103, 104), and when there are a plurality of allocation candidates serving as candidates of the tasks allocable to the processor core (102, 103, 104) in accordance with the execution order parameter, the task allocation unit allocates an allocation candidate having the shorter execution cycle among the allocation candidates, and when there are the plurality of allocation candidates and none of the communication cost of each of the allocation candidates is zero, the task allocation unit applies a greater weight on the communication cost of a candidate having the shorter execution cycle among the allocation candidates, and allocates the allocation candidate having the higher communication cost after being weighted to the processor core (102, 103, 104), wherein the execution cycle parameter describes a priority parameter describing each priority of the tasks, and the task allocation unit performs the allocation such that the task having the lower priority, is not regarded as an error when not being completed within the execution cycle, a number of times set by the allocation unit. a processor that includes a plurality of processor cores (102, 103, 104) to execute tasks which control operations of a vehicle; and a task allocation unit that allocates the tasks to the respective processor cores (102, 103, 104), wherein the task allocation unit acquires an execution order parameter describing an execution order of the task, an execution cycle parameter describing an execution cycle of the task, and a communication cost parameter describing a communication cost, which is required for data communication between two of the processor cores (102, 103, 104), and allocates the tasks to the respective processor cores (102, 103, 104) in accordance with each description of the execution order parameter, the execution cycle parameter, and the communication cost parameter, and the processor outputs an execution order log describing an order of the tasks executed by the respective processor cores (102, 103, 104), an execution cycle log describing a cycle of the task executed by the processor core (102, 103, 104), and a communication cost log describing a communication cost spent for data communication between the two processor cores (102, 103, 104), and when there are a plurality of allocation candidates serving as candidates of the tasks allocable to the processor core (102, 103, 104) in accordance with the execution order parameter, the task allocation unit allocates an allocation candidate having the shorter execution cycle among the allocation candidates, and when there are the plurality of allocation candidates and none of the communication cost of each of the allocation candidates is zero, the task allocation unit applies a greater weight on the communication cost of a candidate having the shorter execution cycle among the allocation candidates, and allocates the allocation candidate having the higher communication cost after being weighted to the processor core (102, 103, 104), wherein the execution cycle parameter describes a priority parameter describing each priority of the tasks, and the task allocation unit performs the allocation such that the task having the lower priority, is not regarded as an error when not being completed within the execution cycle, a number of times set by the allocation unit.