1. A method, comprising: running multiple processing tasks on multiple physical processing cores that support general-purpose registers and special-purpose registers; estimating respective usage levels with which the processing tasks use the special-purpose registers; and assigning the physical processing cores to the processing tasks based on the estimated usage levels of the special-purpose registers.