Scheduling Unrelated Parallel Machines- Algorithms, Complexity, and Performance