A quantum computer, comprising: an ion trap including a plurality of qubits, the ion trap including a plurality of regions that each includes a subset of qubits; and a control unit configured to receive programming instructions from a software program, the control unit including multiple sub-control units logically separate from each other and independently programmable, wherein the number of multiple sub-control units is dynamically-configurable and each of the multiple sub-control units (120a, 120b,..., 120k) is configured to generate a corresponding set of control signals based at least in part on the programming instructions; wherein each subset of qubits is controlled by the set of control signals from a corresponding and different one of the multiple sub-control units (120a, 120b,..., 120k), the controlling of each subset of qubits including enabling a number of qubits in each subset of qubits and a connectivity between the plurality of qubits, wherein a total number of qubits enabled in the plurality of qubits is based on a particular operation being performed by the quantum computer, and wherein the set of control signals controlling a first subset of qubits of the plurality of qubits is used to shuttle at least one qubit from the first subset of qubits in one region of the ion trap to a second subset of qubits of the plurality of qubits that is in a different adjacent region of the ion trap, and the set of control signals controlling the second subset of qubits is used to handle the at least one qubit shuttled from the first subset of qubits, and wherein the shuttling of the at least one qubit from the first subset of qubits in the one region to the second subset of qubits in the different adjacent region includes transferring information from the first subset of qubits to the second subset of qubits, such that the shuttled at least one qubit is used to communicate the information from first subset of qubits to the second subset of qubits. an ion trap including a plurality of qubits, the ion trap including a plurality of regions that each includes a subset of qubits; and a control unit configured to receive programming instructions from a software program, the control unit including multiple sub-control units logically separate from each other and independently programmable, wherein the number of multiple sub-control units is dynamically-configurable and each of the multiple sub-control units (120a, 120b,..., 120k) is configured to generate a corresponding set of control signals based at least in part on the programming instructions; wherein each subset of qubits is controlled by the set of control signals from a corresponding and different one of the multiple sub-control units (120a, 120b,..., 120k), the controlling of each subset of qubits including enabling a number of qubits in each subset of qubits and a connectivity between the plurality of qubits, wherein a total number of qubits enabled in the plurality of qubits is based on a particular operation being performed by the quantum computer, and wherein the set of control signals controlling a first subset of qubits of the plurality of qubits is used to shuttle at least one qubit from the first subset of qubits in one region of the ion trap to a second subset of qubits of the plurality of qubits that is in a different adjacent region of the ion trap, and the set of control signals controlling the second subset of qubits is used to handle the at least one qubit shuttled from the first subset of qubits, and wherein the shuttling of the at least one qubit from the first subset of qubits in the one region to the second subset of qubits in the different adjacent region includes transferring information from the first subset of qubits to the second subset of qubits, such that the shuttled at least one qubit is used to communicate the information from first subset of qubits to the second subset of qubits.