As of late 2015 the scheduler part of Nova (the part of OpenStack that manages compute resources) is responsible for determining on which compute nodes a set of VMs (or other compute resources) will be placed when an agent (human or otherwise) requests a set of servers.
In the future …