# Adaptation of Parallel SaaS to Heterogeneous Co-Located Cloud Resources
## 3 Cloud Infrastructure and Developed SaaS
### Hosted Cloud Infrastructure  
The university private cloud infrastructure based on the OpenStack Train 2019 version [3] is hosted by Vilnius Gediminas Technical University. The deployed capabilities of the OpenStack \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Authors** & \begin{tabular}{c} **Parallel** \\ **(Internode)** \\ \end{tabular} & \begin{tabular}{c} **Parallelization** \\ **Software** \\ \end{tabular} & \
\begin{tabular}{c} **Heterogeneous** \\ **Resources** \\ \end{tabular} &
\begin{tabular}{c} **Co-Located** \\ **Resources** \\ \end{tabular} \\ \hline [PERSON] et al. [6] & Yes & MPI & Yes & No \\ [PERSON] et al. [13] & Yes & MPI & No & No \\ [PERSON] et al. [14] & No & - & No & No \\ [PERSON] et al. [15] & No & - & No & No \\ [PERSON] and [PERSON] [16] & Yes & MPI & Yes & No \\ [PERSON] and [PERSON] [17] & Yes & MPI & No & No \\ [PERSON] et al. [18] & Yes & MPI & No & No \\ [PERSON] and [PERSON] [19] & Yes & MPI & No & No \\ [PERSON] et al. [20] & No & - & No & Yes \\ [PERSON] et al. [21] & No & - & Yes & No \\ [PERSON] et al. [22] & No & - & No & No \\ [PERSON] et al. [23] & No & - & No & No \\ [PERSON] and [PERSON] [24] & Yes & MPI & No & No \\ [PERSON] et al. [25] & Yes & MPI & No & No \\ [PERSON] et al. [26] & Yes & MPI & No & No \\ [PERSON] and [PERSON] [27] & Yes & MPI & No & No \\ [PERSON] and [PERSON] [28] & Yes & MPI & Yes & No \\ [PERSON] and [PERSON] [30] & Yes & MPI & No & No \\ [PERSON] et al. [32] & Yes & MPI/OpenMP & No & No \\ [PERSON] et al. [33] & Yes & MPI/OpenMP & No & No \\ [PERSON] et al. [34] & Yes & MPI/OpenMP & No & No \\ [PERSON] et al. [35] & Yes & MPI & No & No \\ [PERSON] and [PERSON] [36] & Yes & MPI/OpenMP & No & No \\ [PERSON] et al. [38] & No & CUDA & No & No \\ [PERSON] et al. [39] & No & CUDA & No & No \\ [PERSON] et al. [40] & Yes & MPI/CUDA & No & No \\ [PERSON] et al. [41] & Yes & MPI/CUDA & No & No \\ [PERSON] et al. [42] & Yes & MPI/CUDA & No & No \\ [PERSON] and [PERSON] [43] & No & OpenCL & No & No \\ [PERSON] et al. [45] & Yes & MPI & No & No \\ [PERSON] et al. [46] & Yes & MPI & No & No \\ [PERSON] et al. [47] & Yes & MPI/OpenMP, CUDA, & Yes & No \\ OpenACC, and OpenCL & & & & \\ [PERSON] and [PERSON] [48] & Yes & MPI & Yes & No \\ [PERSON] et al. [49] & No & CUDA & Yes & No \\ [PERSON] et al. [50] & No & CUDA & Yes & No \\ [PERSON] et al. [51] & Yes & MPI & Yes & No \\ Current study & Yes & MPI/OpenCL & Yes & Yes \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Comparison of the related works. cloud infrastructure include the compute service Nova, compute service Zun for containers, networking service Neutron, container network plugin Kurry, image service Glance, identity service Keystone, object storage service Swift, and block storage service Cinder. The cloud infrastructure is composed of OpenStack service nodes and compute nodes connected to 1 Gbps Ethernet LAN. Hardware characteristics of faster compute nodes hosting the containers are listed as follows: Intel(r)Core i7-6700 3.40 GHz CPU, 32 GB DDR4 2133 MHz RAM, 34.13 GB/s memory bandwidth, and 1 TB HDD. Hardware characteristics of slower compute nodes are listed as follows: Intel(r)Core i7-4790 3.60 GHz CPU, 32 GB DDR3 1866 MHz RAM, 29.87 GB/s memory bandwidth, and 1 TB HDD. Docker version 20.10.7 containers managed by Zun are used in the cloud infrastructure. Ubuntu 20.04.3 LTS (Focal Fossa) is installed in the containers. Characteristics of containers are provided in Table 2. The container CN-GPU is equipped with the NVIDIA(r) Tesla(tm) P100 GPU (1792 FP64 CUDA Cores, 12 GB HBM2, 549 GB/s memory bandwidth). The architecture of a cloud system comprises multiple layers of deployed services. The OpenStack API manages the IaaS and grants access to infrastructure services. The PaaS layer is provided for developing and deploying software services called SaaS. The Open MPI platform is used to create parallel software for distributed-memory architectures. The Zoltan library [52] serves as a development platform for dynamic load balancing and partitioning particles into subsets.