The use of heterogeneous datacenter architecture has been on the rise. Developers experience numerous challenges when trying to adapt applications and systems in such areas. The good thing with cloud computing is that it will abstract the hardware from the programmers and end users. This is a good idea for allowing the underlying architecture to be improved, such installation of new hardware, and no changes will be made to the applications.
The use of heterogeneity in processor architectures will help solve a number of problems. The elements for heterogeneous processing can improve the efficiency of our systems through features such as specialization, which are computations matching the elements which have been specialized for processing. The Graphical processing units (GPUs) are examples of systems which have developed in the computing industry. Others include media-functional units such as SSE4 instructional set, parallel coprocesors like Intel’s Xeon Phi and encryption units. The future architectures are expected to feature multiple processors, each with heterogeneous internal components, interconnects, accelerators, and storage units with good efficiencies. Companies which rely on large-scale datacenters like PayPal and Microsoft are investigating on how to implement heterogeneous processing elements so as to improve on the performance of their products.
Technology for developing cloud computing which can be integrated with the heterogeneity of the data center will make us look for ways for exploiting the varied processing elements for special purpose and we don’t need to lose the advantages associated with abstraction.
With infrastructure as a service, the physical and virtual resources will be exposed to the end user. Virtual machines will offer an instant control to the operating system (OS). In the traditional architectures, virtualization introduced a great overhead for workloads are highly sensitive to the performance of the system. However, modern technologies such as peripheral component interconnect (PCI) and single-root I/O virtualization (SR-IOV) have reduced this overhead since they perform a direct access to the accelerators and the networking devices, and the incurred overhead is far less, maybe 1%.
Also, with the increase in heterogeneity of the datacenters, the deployments for IaaS should be expected to expose varied components. For us to extend to the heterogeneous IaaS deployment from the homogeneous cloud flexibility, we have to perform a further research on the following fileds:
– The schemes which can be employed for sharing in accelerators.
– Optimal tradeoffs associated with virtualization functionality and performance.
– Optimization techniques for power and utilization.
– Scheduling techniques for determination of job assignments for the resources to be allocated more efficiently.
– Schemes for cost and prioritization.
– Mechanisms for migration of jobs with state in the accelerators and the host in accelerators.
Heterogeneous computing should involve finding ways to exploit the available new interconnect technologies such as the parallel file systems, software-defined networking in relation to the heterogeneous compute elements.
For the case of platform as a service, the heterogeneity has to be exposed to the framework, or exposed to programmer, or hidden by backends targeting heterogeneity, or hidden by the libraries. Future research should be focused on the following:
– Software architecture regarding accelerated libraries.
– Scheduling mechanisms aware of heterogeneity at the level of the platform.
– Application programming frameworks with the capability of exposing or not exposing the heterogeneity to the programmer.
– Allocating resources amongst multiple frameworks or platforms in an heterogeneous manner, or for the frameworks which share the same datacenter.
The catapult framework for Microsoft is an example of a research which is targeting to improve on the heterogeneous hardware. The software was created for the purpose of improving how the performance of Binge Search Engine. It will provide us with a valuable use case on how to exploit the heterogeneous hardware for applications in commercial datacenters.