1. A method of determining a result of a computational problem using a quantum processor, wherein the quantum processor comprises: a plurality of quantum devices, a plurality of coupling devices wherein each coupling device in the plurality of coupling devices is operable to tunably couple a respective pair of quantum devices in the plurality of quantum devices, a coupling device control system comprising a respective coupling controller for each coupling device wherein each respective coupling controller in the coupling device control system is operable to tune a coupling strength of a corresponding coupling device; a quantum device control system comprising a respective node controller for each quantum device wherein each respective node controller in the quantum device control system is operable to control an effective bias applied to a corresponding quantum device; and at least one readout device operable to readout a state of at least one quantum device in the plurality of quantum devices; the method comprising: setting a state of at least one quantum device in the plurality of quantum devices via the quantum device control system and setting a coupling strength of at least one of the coupling devices in the plurality of coupling devices via the coupling device control system to initialize the quantum processor to an initial state; allowing the quantum processor to evolve to a final state, wherein allowing the quantum processor to evolve to a final state comprises at least one of decreasing an effective temperature of the quantum processor and evolving the quantum processor adiabatically; and reading out a final state of at least one quantum device in the plurality of quantum devices via the at least one readout device to determine the result of the computational problem.