Scheduling and load balancing in parallel and distributed systems