  In recent years, utilization of heterogeneous hardware other than small core
CPU such as GPU, FPGA or many core CPU is increasing. However, when using
heterogeneous hardware, barriers of technical skills such as OpenMP, CUDA and
OpenCL are high. Based on that, I have proposed environment-adaptive software
that enables automatic conversion, configuration, and high performance
operation of once written code, according to the hardware to be placed.
However, including existing technologies, there has been no research to
properly and automatically offload the mixed offloading destination environment
such as GPU, FPGA and many core CPU. In this paper, as a new element of
environment-adaptive software, I study a method for offloading applications
properly and automatically in the environment where the offloading destination
is mixed with GPU, FPGA and many core CPU. I evaluate the effectiveness of the
proposed method in multiple applications.
