Let J = { J 1, J 2, …, J n } be a set of unit execution-time jobs and P = { P 1, P 2, …, P m } be a set of parallel processors. Each job J i 1 ⩽ i ⩽ n, can only be run on a nonempty subset S i ⊂- P of processors. An assignment is said to be feasible if every job is assigned to a processor that can execute it. Let T j denote the completion time of P j . A feasible assignment is called balanced if and only if ¦T i − T j¦⩽ 1 for any i and j, where 1 ⩽ i, j ⩽ m. In this paper, an O(min{ n 0.5, m} mn) algorithm is first developed to determine whether a balanced assignment exists. If it exists, it can be found. If it does not, O(min{ n 0.5, m}mn log 2 n) algorithm is designed to find an assignment which minimizes the maximum of T j for 1⩽ j ⩽ m.