@philips Yes, but not very cleanly. Cgroups gives you two controls for allocating cpu resources: you can tell a job to run on certain core numbers, and you can give it a certain number of 'cpu shares', where the maximum number of cpu shares is completely up to you. The difficult thing is that AFAIK you can't give a job 512 shares on core 1 and 1024 shares on core 2, you have to give it the same number on both. That makes it more complicated to implement packing heuristics when fractional core jobs are coming in in arbitrary order.

If machine resources are managed centrally as in this PR, it would be neat if fleet could abstract that difficulty away somehow. For example, it could make available the Docker arguments needed to allocate x cores to a job according to a certain packing heuristic, taking account of the jobs already running on the machine.