There is provided a heterogeneous computing method. A heterogeneous computing method includes performing offline learning on an algorithm using compilations and runtimes of application programs, executing a first application program in a mobile device, distributing a workload to a central processing unit (CPU) and a graphic processing unit (GPU) in the first application program, using the algorithm, performing online learning to reset the workload distributed to the CPU and GPU in the first application program, and resetting the workload distributed to the CPU and GPU in the first application program, corresponding to a result of the online learning.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A heterogeneous computing method comprising: performing offline learning on an algorithm using compilations and runtimes of application programs; executing a first application program in a mobile device; distributing a workload to a central processing unit (CPU) and a graphic processing unit (GPU) in the first application program, using the algorithm; performing online learning to reset the workload distributed to the CPU and GPU in the first application program; and resetting the workload distributed to the CPU and GPU in the first application program, corresponding to a result of the online learning. 2. The heterogeneous computing method of claim 1, wherein the application programs and the first application program are written with a web computing language (WebCL). 3. The heterogeneous computing method of claim 1, further comprising: after the online learning is ended, ending a current routine of the first application program and returning a state value; setting a start point of the first application program using the ended current routine and the state value; distributing a workload to the CPU and GPU, corresponding to the online learning; and executing the first application program from the start point. 4. The heterogeneous computing method of claim 1, wherein the online learning is performed at a background. 5. The heterogeneous computing method of claim 1, wherein the performing of the offline learning includes: extracting a feature value from each of the compilations of the application programs; analyzing the runtimes of the application programs while changing a workload ratio of the CPU and GPU; and performing learning of the algorithm, corresponding to the extracted feature value and a result obtained by analyzing the runtimes. 6. The heterogeneous computing method of claim 5, wherein the feature value includes at least one of a number of times of memory access, a number of floating point operations, a number of times of data transition between the CPU and GPU, and a size of a repeating loop. 7. The heterogeneous computing method of claim 1, wherein the algorithm distributes a workload to the CPU and GPU using a feature value extracted from a compilation of the first application program. 8. The heterogeneous computing method of claim 7, wherein the feature value includes at least one of a number of times of memory access, a number of floating point operations, a number of times of data transition between the CPU and GPU, and a size of a repeating loop. 9. The heterogeneous computing method of claim 1, wherein the performing of the online learning includes: a first process of determining whether performance is in a saturation state while changing the number of work items per core; a second process of, when the performance is improved in the first process, repeating the first process while changing the workload ratio of the CPU and the GPU; and a third process of, when the performance is not improved in the first process, ending the online learning. 10. The heterogeneous computing method of claim 9, wherein the point of time when it is determined that the performance has been in the saturation state is a point of time when the execution time of the first application program is shortened within a preset critical time when the number of work items per core is increased. 11. The heterogeneous computing method of claim 9, wherein the number of work items assigned per core is linearly increased. 12. The heterogeneous computing method of claim 9, wherein the number of work items assigned per core is exponentially increased. 13. The heterogeneous computing method of claim 9, wherein the performance is determined using the execution speed of the first application program.