1. A method, comprising: placing each kernel of a program in partial reconfiguration (PR) blocks of an integrated circuit (IC) to create a kernel configuration of the IC, when there is enough space within the PR blocks; wherein each of the PR blocks comprise a physical location on the IC that can be reconfigured during runtime of the IC; determining, at runtime or during program execution, one or more modifications to the kernel configuration useful for efficient execution of the program, wherein the one or more modifications comprise addition, removal, exchange, or any combination thereof of one or more kernels to the PR blocks; and changing the kernel configuration based upon the determined modifications.