# Adaptation of Parallel SaaS to Heterogeneous Co-Located Cloud Resources
## 2 The Related Works  
Previous studies [13; 14; 15] have already examined the performance of computation-intensive benchmarks on virtual machines and lightweight containers. However, few studies include the performance analysis of parallel MPI-based applications on heterogeneous cloud resources. Gang applications [16] are parallel jobs that frequently communicate and must execute simultaneously. [PERSON] and [PERSON] [17] evaluated gang scheduling performance in the Amazon EC2 cloud. [PERSON] et al. [18] proposed a 0-1 integer programming for the gang scheduling. [PERSON] et al. [19] assessed the parallel performance of the Linpack benchmark on public clouds. The obtained results demonstrated that the performance per computing core on the public clouds could be comparable to modern traditional supercomputing systems. However, the discussed studies did not investigate the impact of heterogeneous cloud resources and partitioning issues on parallel performance. In cloud computing, the task scheduling, virtual machine load balancing, and resource provisioning problems formulated from the cloud provider's perspective have received a lot of attention. [PERSON] et al. [20] evaluated the performance of existing load balancing algorithms with different service broker policies for cloud computing. Particle swarm optimization, round robin, equally spread current execution, and throttled load balancing algorithms were investigated, taking into account optimized response time, data center processing time, virtual machine costs, data transfer costs, and total cost. [PERSON] et al. [21] introduced a deep post-decision-state learning algorithm for dynamic IoT-edge-cloud offloading scenarios. The proposed technique outperformed multiple benchmarks in terms of delay, job failure rate, cost, computational overhead, and energy consumption. [PERSON] et al. [22] presented a flexible cloud-based software architecture engineered to provide an efficient and robust password guessability service. A comprehensive literature review [23] addressed resilience and dependability management issues in distributed environments, namely cloud, edge, fog, internet of things, internet of drones, and internet of vehicles. However, parallel MPI-based applications with parallel frequently communicating jobs were rarely considered. Moreover, most researchers balanced the workload on virtual machines of an entire subsystem rather than the enhanced performance of a parallel frequently communicating application on heterogeneous virtual resources. Early attempts to parallelize DEM computations were based on force decomposition techniques or simple variants of the domain decomposition methods. [PERSON] and [PERSON] [24] divided the interparticle force computation among the processors. The domain decomposition methods partition the computational domain into particle subsets, each being assigned to a processor. [PERSON] et al. [25] used the static domain decomposition with regular partitions for parallel DEM computations on gLite grid infrastructure. [PERSON] et al. [26] applied domain decomposition with ghost layers of particles for the DEM and large eddy simulation. However, the dynamically changing workload configuration may lead to load imbalance and low parallel efficiency. More flexible but more complicated dynamic domain decomposition is one of the solutions to this load balance problem that allows higher scalability in parallel computing performance. In the case of the DEM, [PERSON] et al. [27] used a topological dynamic domain decomposition method based on a dynamic graph repartitioning. [PERSON] and [PERSON] [28] presented large-scale parallel simulations of granular flows, employing adaptive domain decomposition based on the multilevel k-way graph partitioning method [29]. [PERSON] and [PERSON] [30] applied k-way graph partitioning and the recursive coordinate bisection (RCB) [31] to solve the hopper discharge problem.