Toward a New Massively Distributed Virtual Machine based Cloud Micro-Services Team Model for HPC : SPMD Applications

This paper aims to propose a new massively distributed virtual machine with scalable and efficient parallel computing models for High Performance Computing (HPC). The message passing paradigm of the Processing Units has a significant impact on HPC with high communication cost that penalizes the performance of these models. Accordingly, the proposed micro-services model allows the HPC applications to enhance the processing power with low communication cost. Thus, the model based Micro-services Virtual Processing Units (MsVPUs) cooperate using asynchronous communication mechanism through the Advanced Message Queuing Protocol (AMQP) protocol in order to maintain the scalability of the Single Program Multiple Data (SPMD) applications. Additionally, this mechanism enhances also the efficiency of the model based load balancing service with time optimized load balancing strategy. The proposed virtual machine is tested and validated through an application of fine grained parallel programs for big data classification. Experimental results present reduced execution time compared to the virtual machine based mobile agent’s model. Keywords—Parallel and distributed computing; micro-services; cloud computing; distributed virtual machine; high performance computing


INTRODUCTION
Recently, computer science application converges to HPC one.This is due to the new application expectations for Big data analysis [1], and real time information accessibility on multiple devices (Smartphones, Laptops, Tablets…).Thus, the data to be processed and the related complex computations oriented these applications to new HPC processing environments (clusters, grids and clouds [2], [3]) which provide the required processing power.The HPC systems based cloud computing are constituted by a set of distributed heterogeneous machines connected through an interconnection network and collaborate by their own resources in order to provide the processing power with an optimized computation time; such as in Amazon Elastic Compute Cloud (EC2) [4] that aims to enhance the execution of HPC applications in cloud.The collaboration between the distributed processing units is based on the HPC environment middleware which orchestrates the computation and manages the distribution of data and tasks between them.However, the performance of these environments is related to the one of their based middleware [5].Normally, this middleware has to manage these two following major HPC challenges: 1) Message passing challenge the intensive communication between the computing units, has a great impact on the global computation time and the scalability of these applications, with the corresponding high communication cost.2) Heterogeneity of computing nodes challenge the difference of nodes performance influence also the global computation time with an unbalanced computing environment caused by the overloaded workload of the slowest node.Indeed, the middleware based massively distributed computing environment has to deal with the above challenges in order to provide a scalable and efficient massively distributed computing environment.Thus, what are the promising paradigms for managing these challenges?This paper presents a new massively distributed virtual machine model based on cloud micro-services which aims to implement www.ijacsa.thesai.organ asynchronous communication mechanism for computing units message passing.The main contributions of this paper are that 1) the proposed virtual machine considers providing the processing power needed for HPC applications by its integrated micro-services team model which is constituted by virtual computing units, and 2) considers the communication challenge using a lightweight communication mechanism, and also 3) considers the heterogeneity challenge by implementing a load balancing strategies.The paper is organized as follows:  We present the virtual machine based cloud distributed computing model and its innovative components (Section 3) which are the micro-services.
 We demonstrate that the model based middleware is promising (Section 4); and that by implementing some SPMD applications (Section 5) we ensure a scalable and efficient cooperative parallel and distributed computing environment.

II. BACKGROUND
To highlight the aim of this paper, we present the parallel and distributed computing [6] field and its key techniques for performing intensive computation in a few time.For example, in order to perform a password encryption program on 1000 passwords (Fig. 1) there are two main case study: 1) Sequential case where the program is performed on a single machine with an execution time TE per password, and the global computation time Tt Seq = ∑ .Despite, in 2) Parallel and Distributed computing case, the program is encapsulated on 10 machines which cooperate and distribute the data between them and work in parallel so that the global computation time will be reduced significantly with Tt(p&d)<< TtSeq.The last case will perform a high performance computing if the computing model integrates some mechanisms for parallel and distributed computing challenges; the communication and the load balancing challenges.So, the scalable computing model will be the one which can optimize significantly the global computation time.This model is implemented on parallel and distributed virtual machine that orchestrates and manages the distribution of data and tasks between the nodes.
There are several inspiring proposed parallel and distributed virtual machines [7]- [11] that used different technologies such as the MCC(Mesh Connected Computer) mesh and the FPGA (Field-Programmable Gate Array).However, the scalability and efficiency of these virtual machines depends on the ability of their corresponding middleware to handle the HPC computing challenges.The Middleware is the main components in the distributed systems that can manage a set of heterogeneous nodes.The Multi Agent System MAS is a promising technology for implementing such middleware.However, the micro-services implements the flexibility with the others technologies trends and the easy integration in cloud to improve HPC.

A. Massively Distributed Virtual Machine Architecture
The proposed massively distributed virtual machine is a new parallel and distributed computing environment, constituted over distributed heterogeneous nodes in distributed system.This virtual machine based micro-services model which is managed by cloud middleware, allows performing the parallel and distributed programs as services by cooperative micro-services team MsVPUs.For each deployed service, the Scientifics and researchers can take benefits of the flexibility of this virtual machine with the parallel computing models such as: SPMD, MPMD, and topologies (2D Mesh, 3D Mesh,…).Each MsVPU is an autonomous service that collaborates with the computing team using well determined communication mechanism for HPC.For example (Fig. 2), in order to perform the big data classification the well-known classification algorithms; c-means and Fuzzy c-means are implemented in this virtual machine as distributed classification service (Section 3) according to SPMD architecture.To do so, each team worker MsVPU will receive the input data from its team leader MsVPU, and perform the classification service and send the results back to its team leader in order to accomplish the execution of the application.Fig. 2. SPMD distributed computing model based micro-services approach.www.ijacsa.thesai.org

B. Distributed Computing Model based Main Components
In order to perform a high performance parallel and distributed computing, the proposed virtual machine model collaborate specific types of micro-services according to their tasks.When the parallel and distributed program is deployed on this virtual machine the micro-services team is created.This later is constituted by; Team leader (MsVPU) micro-service and the team workers (MsVPUs) that are distributed on each node to perform their corresponding services.Each team worker (MsVPU) encapsulates the program as service and collaborates with the other MsVPUs and provides the results to their Team leader (MsVPU) micro-service which manages and orchestrates the computing of its team while the execution of the program.This virtual machine allows deploying more than one parallel and distributed program by its integrated Proxy Ms Provider micro-service which works with the Load Balancer Ms micro-service in order to choose the appropriate team for each application request.The main principal micro-services of the model (Fig. 3) are presented as follows:  Proxy Ms Provider.This micro-service is the mediator between the micro-services MsVPUs and the applications.The application requests are sent to this micro-service which communicate with the Load Balancer Ms in order to choose and send the request to the appropriate micro-service MsVPU.Then, the Proxy Ms Provider returns the results to the appropriate application.
 Load Balancer Ms.This micro-service is the one responsible of the management of the micro-services of the virtual machine.Each micro-service publishes its information (name, address, port, and number of CPUs) in this micro-service.So, this helps the Load Balancer Ms to get the node performance and ensure the load balancing of micro-services according to well defined load balancing strategies.
 Team leader MsVPU.This micro-service is the one responsible of the execution of the application requests.
It cooperate with its team works (MsVPUs) in order to execute the parallel and distributed programs as services and sends the final results to the Proxy Ms Provider.This micro-service can be deployed in many distributed nodes.
 Team worker MsVPUs.This micro-service corresponds to a CPU.Each MsVPU receives the data from its team leader Ms and executes the service and returns the results to this later in order to compute the finale results.
 DF Ms.This micro-service centralizes the configuration of micro-services of the model.Each deployed micro-service will search for its configuration on this micro-service.So, the Proxy Ms Provider will easily follow the appropriate micro-services of the application request.The UML diagram of the virtual machine model is illustrated in Fig. 4, which allows the MsVPUs micro-services to collaborate in the grid computing in order to perform the distributed services according to different programming models and parallel topologies.
The communication between the computing model main components is presented in the sequence diagram of Fig. 5.For example, in order to perform the parallel and distributed computing service, the application sends the request with the input data to Ms Proxy Provider.This later sends this request to the Ms Load Balancer which determines the Team leader Ms that will perform this request, and sends its address to the Ms Proxy Provider which sends the input data to the right Team leader Ms in order to perform this request in collaboration with its team of MsVPUs.At the end, the final result is send back to the application by the Ms Proxy provider.www.ijacsa.thesai.org

C. Massively Distributed Computing Middleware
The Massively Distributed computing Middleware (Fig. 6) is a new paradigm based micro-services, which allows dividing the complex tasks of the parallel programs to independent sub tasks as distributed micro-services deployed on the computing model of virtual machine.This computing model cooperates the micro-service team leader MsVPU and its micro-services team workers MsVPU in order to perform the parallel programs on cloud computing platform.So, the scalability and efficiency of this middleware are illustrated by its two main modules; Communication Optimization Module for implementing the asynchronous communication mechanism and Load Balancing Module in order to manage the overloads between the micro-services.Communication Optimization Module This module ensures a lightweight communication mechanism between the micro-services of the computing model.This is done, by the implementation of the RabbitMQ messaging Framework in the computing model.So that the micro-services will use asynchronous communication by exchanging messages based on AMQP (Advanced Message Queuring Protocol) protocol.Furthermore, this module provides three types of message queues (data_queue, tasks_queue, and results_queue) which store and provide the exchanged messages between the microservices.For example (Fig. 7) in order to perform an SPMD service, the Team leader Ms micro-service sends the computing data to the data_queue, and then this data is sent to the appropriate MsVPU micro-services.Each MsVPU will execute the service and send the results to the results_queue in order to be received by the Team leader Ms.

LoadBalancing Module
This module provides a load balancing mechanism for the micro-services of the computing model by a specific micro-service the Load Balancer Ms.This later collaborates with the micro-services TNPMs (Team Node Performance Micro-service) which are deployed on each node in order to define the performance index of all the nodes of the distributed system, and their loads index.So, the Load Balancer Ms will get the set of TNPMs micro-services from the DF Ms micro-service, and execute the performance test in collaboration with TNPMs micro-services in order to define the required metadata for elaborating the load balancing strategy (Fig. 8) according to these three global steps:

 Initial Performance Test of nodes The Ms Load
Balancer executes the performance test on the node N 0 , and then it sends the data D 0 to the TNPMs microservices at t 0 .Each TNPMs micro-service performs the performance test on its data D 0 and sends the result R i that is composed by (Computation Time Tpi, and the number of CPUs NC i ), to the Ms Load Balancer at t1(i).
These results will be used by the Ms Load Balancer in order to get the metadata {Execution Time TE (TEi=(t1(i)-t0)), and Communication Latency TL (TLi= TEi-Tpi} needed to define the initial performance index and the loads index respectively according to the following equations:  Performance Index of the Nodes NPI The Load Balancer Ms uses the metadata of the initial performance test {TE, TL, C 0 } and the metadata of MsVPUs {C k the complexity of service, and Z k the amount of data exchanged between the node N 0 and N i } in order to define the performance index NPI i of each node N i by : Also, the execution time, and the latency of communication and the computational time can be estimated respectively by :   For testing the scalability and efficiency of the proposed virtual machine model, the two well-known SPMD classification algorithms; c-means [12] and Fuzzy c-means [13] are implemented as distributed services using the Spring Cloud Middleware.

A. Distributed Implementation
The classification algorithms are implemented on the MsVPUs of the computing model according to the communication diagram in Fig. 9.This diagram presents the micro-services MsVPUs and their implemented services in order to perform the classification of big image.For example, in order to perform the classification of the image the c-means algorithm is implemented according to distributed implementation DSCM (Distributed Service C-means) as follows:

 The Team leader MsVPU divides the input image on
NS=me ne elementary images.
 The Team leader MsVPU sends the elementary images NS to the Team workers MsVPUs, one per team worker MsVPU(s).
 Each Team worker MsVPU(s) gets its elementary image EI, and performs its classification service.
 For each iteration t { 1) The Team leader MsVPU sends the initial class centers to all the Team workers MsVPU(s).
2) Each Team worker MsVPU(s) gets the class centers values and performs the classification service (doClassificationService).This service allows the Team worker MsVPU(s) to perform the classification on its elementary image and computes and elementary results : ER2(s,k) the sum of colors of each class centers c k , which is computed by: ER2 (s,k)=∑ (11) ER3(s,k) the sum of the membership matrix of each class centers ck, which is computed by: ER3(s,k)=∑ (12) where pi is the number of pixels of the Team worker MsVPU elementary image EI.ER1(s) the sum of distances of each class centers c k , which is computed by: At the end of the classification, each Team worker MsVPU(s) sends its elementary results ER1(s), ER2(s, k), ER3(s,k) to its Team leader MsVPU.3) The Team leader MsVPU gets the elementary results of the Team workers MsVPUs and performs the global classification service (doGlobalClassificationService) which is based on performing the three following sub services : Assembling the elementary results: When the Team leader MsVPU receives the elementary results (ER1(s), ER2(s,k), ER3(s,k)).This later computes the global results (GER1(k), GER2(k), GER3(k)), respectively by ( 13),( 14), (15).GER1(k) the global value of ER1(s) of all the Team workers MsVPUs.GER1(k)=∑ ( 13) GER2(k) the global value of ER2(s) of all the Team workers MsVPUs.GER2(k)=∑ ( 14) GER3(k) the global value of ER3(s) of all the Team workers MsVPUs.
Calculate the new class centers: The Team leader MsVPU computes the new value of class centers based on the value of GER2(k) and GER3(k) by ( 16). ( 16) Computes the objective function J t : The Team leader MsVPU uses the computed value of GER1(k) to determine the objective function by (17).

J t =∑ (17)
4) Test of convergence of the algorithm (|J t -J (t-1) |<E th ).The Team leader MsVPU compare the difference between the obtained objective function J t and the one obtained in the previous iteration with the error (E th ), if |J t -J (t-1) |<E th (end), else (repeat from step 1 with the new value of the class centers).
}// End of iteration t  The Team leader MsVPU requests the segmented elementary output images from the Team worker MsVPUs in order to assemble and provide the c outputs images and the final results to the application by Proxy provider Ms.

B. Results
The scalability and the performance of the proposed model are illustrated through an SPMD application.This application has to process a satellite image of size (row, column)=(7280, 7750) pixels on three output images C1, C2, C3 as shown in Fig. 10.The two classification services; c-means and fuzzy cmeans using the same initial class centers (1.2, 2.5, 3.8) are performed under this application.We conclude in Table 1 and Table 2, that the two services; DSCM and DSFCM converge dynamically to the same final class centers (4.866, 112.396, 163.370).Fig. 11 and 12 show the dynamic convergence and the error of the objective function of both services.For validating the performance of the proposed model, the classification time is analyzed for both services according to the involved number of MsVPUs in the classification in Fig. 13.We conclude that for both services the classification time achieves its minimum values of 26331 ms for DSCM and of 153970 ms for DSFCM using 32 MsVPUs.This number of MsVPUs is the required number for the classification of this case of image.
To illustrate the performance of the communication mechanism and the load balancing of this model, a compared study of the proposed model is performed with the mobile agent's model.In this study the corresponding application has to process 1000 elementary images of size (1024 786) pixels, by the way that 1000 MsVPU micro-services will execute the same service of complexity C k (x)=O(x²) in parallel.From Fig. 14 and Table 3, it can be seen that the AVPU model achieves an acceptable load balancing with = 82,5517 s with the error  From Table 4, it can be seen that the both models provide autonomous virtual computing units which enhance the processing power, and manage the computing challenges; heterogeneity of computing nodes and the message passing mechanism of computing units.So, the HPC applications can take advantages of these two models.[14]- [18].For example in [18], the authors presented a new approach for horizontally scaling cloud resources, and in [19] for load balancing, and resources scheduling [20] in cloud.In [21] the authors presented the cloud concept and its emerged services that deal with the IoT trends, and they notice also that the applications with complex data-intensive computations are the best candidate to take advantages of cloud computing.Therefore, by applying the parallel and distributed simulation on cloud, the performance of these applications depends on the applied synchronization algorithms [22].Our approach considers the performance of the HPC applications which are implemented on cloud architectures using micro-services, and deals with intensive computing units communication.
The cloud native applications [23], [24] with their related micro-services architectures can be promising methodologies for HPC applications in cloud computing.For example in [25] the authors presented a performance evaluation of microservices architectures using containers: master-slave and nested-container, and in [26] they discussed the benefit of implementing micro-services architecture for emerging the telecom application.Also, the micro-services approach is implemented to digital curation infrastructure by devolving function into a set of micro-services which grants the deployment flexibility and simplify of the development and the maintenance [27].These features of the micro-services architectures deal with the new trends of the HPC middleware [5], and ensure the scalability of the distributed applications [28].

VI. CONCLUSION
The massively distributed virtual machine model based micro-services for HPC.This model integrates a cooperative team of micro-services that are deployed as virtual computing components MsVPUs (Micro-service Virtual Processing Units) for performing the parallel programs as services according to different architectures and topologies.The MsVPUs are the virtual processors that enhance the processing power.Also, they use the asynchronous communication mechanism based AMQP protocol to optimize the communication cost of the model.This model implements a load balancing module for managing the micro-services and ensures the high performance computing.In this paper, the efficiency and the performance of this model are illustrated through an application of classification using the two services; c-means and Fuzzy cmeans.In each node a specific number of MsVPUs are deployed according to the load balancing method.So, the MsVPUs cooperate in different nodes and execute the application by the way to ensure a balanced virtual machine with low communication cost.Compared to the mobile agents based model, the proposed model grants a lightweight communication mechanism which optimizes significantly the communication cost.Also, the proposed virtual machine capabilities provides the ability to extended its model to an elastic platform that will be deployed in Cloud as PaaS (Platform as a Service).

Fig. 3 .
Fig. 3. Architecture of the Main components of the massively distributed virtual machine.

Fig. 4 .
Fig. 4. UML diagram of the proposed massively distributed virtual machine model.

Fig. 5 .
Fig. 5. Communication diagram of main components of the massively distributed virtual machine.

Fig. 9 .
Fig. 9. Communication diagram of distributed big data classification model main components.
i (AVPU) [0.00014,0.03]and for the proposed model based MsVPU = 71,5271 s with  i (MsVPU) [0.00014, 0.03] which means a gain of performance of = 1,15413 compared to the AVPUs based model.This is due, to the lightweight communication mechanism of the micro-services compared to the mobile agents.So, the both models integrate the mechanism to ensure high performance computing.

Fig. 14 .
Fig. 14.Execution time for each node N i , for the both computing models; Agent AVPU Model and Micro-service MsVPU Model.

TABLE III .
COMPARISON OF EXECUTION TIME FOR EACH NODE N I FOR THE BOTH COMPUTING MODELS; AGENT AVPU MODEL AND MICRO-SERVICE MSVPU MODEL

TABLE IV .
COMPARISON BETWEEN THE PARALLEL AND DISTRIBUTED COMPUTING MODELS; AGENT AVPU MODEL AND MICRO-SERVICE MSVPU MODEL.