# Performance of Communication- and Computation-Intensive SaaS on the OpenStack Cloud
## 3 OpenStack Cloud Infrastructure and Services  
The university's private cloud infrastructure based on OpenStack is hosted in the Vilnius Gediminas Technical University. The cloud system architecture consists of several layers of cloud services deployed on the virtualized hardware. The NIST SPI model [49] represents a layered, high-level abstraction of cloud services classified into three main categories (Figure 1): Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS). Higher-level services for developers and users are deployed on top of the IaaS layer managed by the OpenStack Train 2019 version [2]. The deployed capabilities of the OpenStack cloud include the compute service Nova version 20.0.0, compute service Zun version 3.0.1, networking service Neutron version 15.0.0, container network plug-in Kuryr version 3.0.1, image service Glance version 19.0.0, identity service Keystone version 16.0.0, object storage service Swift version 22.2.0, and block storage service Cinderversion 15.0.0. Nova automatically deploys the provisioned virtual compute instances (VMs), Zun launches and manages containers, Swift provides redundant storage of static objects, Neutron manages virtual network resources, Kuryr connects containers to Neutron, Keystone is responsible for authentication and authorization, and Glance provides service discovery, registration, and delivery for virtual disk images. In the present cloud infrastructure, two alternatives of the virtualization layer are implemented to gain more flexibility and efficiency in resource configuration. Version 2.11.1 of QEMU-KVM is used for virtual machines (VMs) deployed and managed by Nova. Alternatively, Docker version 19.03.6 containers launched and managed by Zun create an abstraction layer between computing resources and the services using them. The containers and VMs have the following characteristics: 4 CPUs, 31.2 GB RAM, 80 GB HDD, and Ubuntu 18.04 LTS (Bionic Beaver). In terms of architecture, the cloud testbed is composed of nodes hosting OpenStack services and compute nodes hosting the virtual machines and containers connected to a 1 Gbps Ethernet LAN via 3 COM Baseline Switch 2928-SFP Plus. The OpenStack services are installed on four dedicated nodes free of another load. Ubuntu 18.04 LTS (Bionic Beaver) is installed in the compute nodes. The hardware characteristics of nodes hosting the virtual machines and containers are as follows: Intel(r) Core i7-6700 3.40 GHz CPU, 32 GB DDR4 2133 MHz RAM, and 1 TB HDD. The layers of deployed cloud services are shown in Figure 1. The OpenStack cloud IaaS provides platforms (PaaS) to develop and deploy software services called SaaS (Figure 1). The cloud infrastructure is managed by the OpenStack API, which provides access to infrastructure services. The PaaS layer supplies engineering application developers with programming-language-level environments and compilers, such as GNU compiler collection (GCC), for the development of DEM software using the C++ programming language. Parallel software for distributed memory systems is developed using the Open MPI platform, which includes the open-source implementation of the MPI standard for message passing. The development platform as a service for domain decomposition and dynamic load balancing is provided based on the Zoltan library [48]. It simplifies the load-balancing and data movement difficulties that arise in dynamic simulations. The Visualization Toolkit (VTK) [50] is deployed as the platform for developing visualization software. VTK applications are platform-independent, which is attractive for heterogeneous cloud architectures. The SaaS layer contains software services deployed on top of the provided platforms (Figure 1). The DEM SaaS was developed using the C++ programming language (GNU GCC PaaS), the message passing library Open MPI, and the Zoltan library. The communication- and computation-intensive DEM SaaS is used to solve applications of  
Figure 1: Layers of cloud services.