This survey of heterogeneous computing systems will help in analyzing the technological trends that will be at the basis of heterogeneous computing systems, highlighting the major opportunities and challenges such technologies will bring with them. This will help to understand the importance of heterogeneous computing systems, which are becoming common architectural elements of not only the modern data centers but also highly integrated devices (IoT). Identify problems related to it, such as the resource allocation problem, middleware, processing architectures, programming challenges, etc. from the perspective of heterogeneous resources.