In the era of noisy-intermediate-scale quantum computers, we expect to see quantum devices with increasing numbers of qubits emerge in the foreseeable future. To practically run quantum programs, logical qubits have to be mapped to the physical qubits by a qubit allocation algorithm. However, on present day devices, qubits differ by their error rate and connectivity. Here, we establish and demonstrate on current experimental devices a new allocation algorithm that combines the simulated annealing method with local search of the solution space using Dijkstra's algorithm. Our algorithm takes into account the weighted connectivity constraints of both the quantum hardware and the quantum program being compiled. New quantum programs will enable unprecedented developments in physics, chemistry, and materials science and our work offers an important new pathway toward optimizing compilers for quantum programs.