The past era saw a significant boost in computing, storage, and networking technologies which caused the development of massive-scale adaptive applications in engineering and science. These complex, dynamic and heterogeneous applications are combined with correspondingly heterogeneous and complex distributed and parallel computing systems caused the improvement and implementation of efficient computational infrastructures which allow execution, programming and runtime management support for these massive-scale adaptive implementations. In this paper different types of computing technologies are described. In fact, all these technologies have contributed in the development of computing. Determining one specific technology as the best among others is very difficult, since every day is an evolution in computing and every single paves a way for a new technology. This paper presents a comprehensive review for the past, present and future of scalable computing technologies trends and paradigms. Firstly, high performance computing technologies are presented. This paper presents a new classification of high performance computing into Supercomputing and Quantum Computing where Supercomputing is classified into petascale, exascale and zettascale computing. The paper discusses the main challenges in exascale computing and quantum computing and a comparison between classical supercomputing and quantum computing is presented. Secondly, distributed computing technologies specifically Peer-to-Peer Computing, Cluster Computing, Grid Computing and Cloud Computing are presented. The paper discusses their advantages and disadvantages and a comparison between them is also presented. Thirdly, post Cloud Computing Paradigms mainly dew, mist, edge and fog computing are presented. Fourthly, Jungle computing is presented. Finally, the paper highlights that exascale and quantum computing are the most recent topic to effectively achieve high performance computing, both technologies have their advantages and disadvantages so it is recommended to implement a hybrid system that uses both technologies so quantum computing can be used as an accelerators to the existing high performance computing systems. Supercomputers have a very high cost so distributed computing systems that provide high performance along with versatility and cost efficiencies are developed. Understanding and utilizing post cloud computing technologies correctly with cloud computing can help in IOT solutions.
Virtualization is a powerful technology that facilitates better use of the available data center resources using a technique called Virtual Machine (VM) consolidation which involves gathering of several virtual machines into a single physical server. To address the problem of high energy usage, it is necessary to eliminate inefficiencies and waste in the way electricity is delivered to computing resources, and in the way these resources are utilized to serve application workloads. This can be done by improving the physical infrastructure of data centers as well as resource allocation and management algorithms. VM consolidation involves live migration, which is the capability of transferring a VM between physical servers with a close to zero down time is an effective way to improve the utilization of resources and energy efficiency in cloud data centers. VM placement and VM migration act as a backbone to the VM consolidation process. Issues such as heterogeneity and scalability of physical resources, volatile workloads and migration cost make the VM consolidation process difficult. This paper presents a comprehensive survey of different VM consolidation challenges such as host underload detection, host overload detection, VM selection, VM live migration and VM placement algorithms. The paper discusses these VM consolidation challenges and presents a comparison between different state-of-the-art VM consolidations algorithms.