We address a generalization of the classical multiprocessor scheduling problem with non simultaneous machine availability times, release dates, and delivery times. We develop new lower and upper bounds as well as a branching strategy which is based on a representation of a schedule as a permutation of jobs. We show that embedding a semi-preemptive lower bound based on max-flow computations in a branch-and-bound algorithm yields very promising performance. Computational experiments demonstrate that randomly generated instances with up to 700 jobs and 20 machines are solved within moderate CPU time. Moreover, the versatility of the proposed approach is assessed through its ability to solve large instances of two important particular cases P,NCinc∥Cmax and P|rj,qj|Cmax.