<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Virtual Clusters as a Way to Experiment Software</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">A</forename><forename type="middle">S</forename><surname>Krosheninnikov</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">St. Petersburg State University</orgName>
								<address>
									<addrLine>7-9 Universitetskaya nab., St. Petersburg</addrLine>
									<postCode>199034</postCode>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Vladimir</forename><forename type="middle">V</forename><surname>Korkhov</surname></persName>
							<email>v.korkhov@spbu.ru</email>
							<affiliation key="aff0">
								<orgName type="institution">St. Petersburg State University</orgName>
								<address>
									<addrLine>7-9 Universitetskaya nab., St. Petersburg</addrLine>
									<postCode>199034</postCode>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
							<affiliation key="aff0">
								<orgName type="institution">St. Petersburg State University</orgName>
								<address>
									<addrLine>7-9 Universitetskaya nab., St. Petersburg</addrLine>
									<postCode>199034</postCode>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Sergey</forename><forename type="middle">S</forename><surname>Kobyshev</surname></persName>
							<email>ckobyshev.sergey@gmail.com</email>
							<affiliation key="aff0">
								<orgName type="institution">St. Petersburg State University</orgName>
								<address>
									<addrLine>7-9 Universitetskaya nab., St. Petersburg</addrLine>
									<postCode>199034</postCode>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
							<affiliation key="aff0">
								<orgName type="institution">St. Petersburg State University</orgName>
								<address>
									<addrLine>7-9 Universitetskaya nab., St. Petersburg</addrLine>
									<postCode>199034</postCode>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Alexander</forename><forename type="middle">B</forename><surname>Degtyarev</surname></persName>
							<email>a.degtyarev@spbu.ru</email>
							<affiliation key="aff0">
								<orgName type="institution">St. Petersburg State University</orgName>
								<address>
									<addrLine>7-9 Universitetskaya nab., St. Petersburg</addrLine>
									<postCode>199034</postCode>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
							<affiliation key="aff0">
								<orgName type="institution">St. Petersburg State University</orgName>
								<address>
									<addrLine>7-9 Universitetskaya nab., St. Petersburg</addrLine>
									<postCode>199034</postCode>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Alexander</forename><forename type="middle">V</forename><surname>Bogdanov</surname></persName>
							<email>ea.v.bogdanov@spbu.ru</email>
							<affiliation key="aff0">
								<orgName type="institution">St. Petersburg State University</orgName>
								<address>
									<addrLine>7-9 Universitetskaya nab., St. Petersburg</addrLine>
									<postCode>199034</postCode>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
							<affiliation key="aff0">
								<orgName type="institution">St. Petersburg State University</orgName>
								<address>
									<addrLine>7-9 Universitetskaya nab., St. Petersburg</addrLine>
									<postCode>199034</postCode>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">S</forename><surname>Krosheninnikov</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">St. Petersburg State University</orgName>
								<address>
									<addrLine>7-9 Universitetskaya nab., St. Petersburg</addrLine>
									<postCode>199034</postCode>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Virtual Clusters as a Way to Experiment Software</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">8AE0560939ECC4CA492943D349988FF7</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T13:02+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>virtualization</term>
					<term>containers</term>
					<term>virtual cluster</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Modern scientific applications often require provisioning of computing and networking infra-structures tailored to particular application needs which might not be clearly defined. In addition, allo-cated resources of an actual physical infrastructure might be underutilized by applications (e.g., a pro-cess does not utilize provided CPU or network connection fully). Traditional virtualization technolo-gies can solve the problem partially, however, lead to noticeable overheads. In this paper we consider creation of virtual topologies to test distributed software behaviour without the need to construct real network topologies. We evaluate an approach to create dedicated computing environments configured for particular applications based on light-weight virtualization also known as containers. We investi-gate available capabilities to model and create dynamic container-based virtual infrastructures sharing a common set of physical resources, and evaluate their performance on a set of test applications with different requirements.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Introduction</head><p>Continuous development of computer hardware along with the development of computational methods and algorithms encourages new ways of combining software and hardware, matching application requirements and resources, thus mapping programs to computing infrastructures. Virtualization technologies started a new age of tailoring computing environment to the needs of users and applications. However, flexibility of full-and para-virtualization approaches is hold back by some limitations causing extra overheads, resource consumption and lack of dynamics. Light-weight or container-based virtualization, a new generation of virtualization techniques, can give better answers to create a flexible and dynamic distributed computing infrastructure with small overheads.</p><p>Containers as a way to create a dedicated environment for running applications have been around for years. However, the boost of new interest to them started when new technologies and tools to orchestrate their operations appeared. One of the most commonly used tool to manage container infrastructures is Docker <ref type="bibr">[The Docker Platform, 2016]</ref>.</p><p>Traditional hypervisor-based virtualization is still widely used to deploy and run applications on a wide range of platforms, however, it suffers from a number of restrictions:</p><p>x Significant overheads while running fully-virtualized guest operating systems, in particular, overheads to boot up virtual machine instances x Lack of flexibility to allocate resources to particular processes x Downfalls of application performance due to virtualization overheads, hypervisor mediation etc.</p><p>In this paper, we evaluate the capabilities obtained while using the OS-level virtualization technology to build a computational environment with configurable computation (CPU, memory) and network (latency, bandwidth) characteristics. Such configuration enables flexible partitioning of available physical resources between a number of concurrent applications utilizing a single physical infrastructure. Depending on application requirements and priorities of execution each application can get a customized virtual environment with as much resources as it needs or is allowed to use.</p><p>Conducting offline simulations is often needed to preliminary assess the correctness and adequacy of the applications that interact with the network, in particular to evaluate performance of networkrelated algorithms. The simulation tools like <ref type="bibr">NS-3 [NS-3 Project Homepage, 2016]</ref> and OMNet++ [OMNet++ project homepage, 2016] allow to perform simulations and evaluate the efficiency and scalability of algorithms or protocols without running them in real networks.</p><p>Our main interest is to use container-based computing infrastructures for parallel highperformance computing applications: parallel programs that consist of a number of processes running on computing nodes and communicating during the execution. Using containers as computing nodes can help us to control and share available computing and networking resources between concurrent parallel applications. Thus, applications with complementary requirements (e.g. fast CPU-slow network + slow CPU-fast network) can co-exist on a single physical node or a VM without affecting each other much.</p><p>The approach that we propose is complementary to the traditional queue-based batch processing used in HPC systems. Applications would not have to wait in the queue until worker nodes become fully free and available. Instead, the scheduler can control fraction of resources allocated for each application thus enabling immediate execution for applications with requirements fitting still available fraction of resources. In addition, flexible quality of service (QoS) and service-level agreement (SLA) policies can be built on top of such infrastructure: applications might be ready to get smaller amount of resources right away rather than wait in line to acquire more resources.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Building and evaluating container-based distributed computing environment</head><p>We have implemented a prototype of container-based distributed computing infrastructure on the cloud resources provided by Microsoft Azure. To build the infrastructure we used a set of 8 virtual machines residing in different regions (5 machines in East US; 3 machines in North Europe) with the following characteristics: Instance type: A1; Cores: 1; Memory: 1.75GB.</p><p>Current prototype implementation does not use any specific container management tools and relies only on Docker and a custom python-based toolkit developed to configure and execute containers for parallel applications (with OpenMPI deployed and configured) and control resource usage with help of a separately maintained database.</p><p>We used several programs from NAS Parallel Benchmarks (NPB) suite as the applications with various requirements to the underlying infrastructure. NPB is a small set of programs designed to help evaluate the performance of parallel computers and clusters. The benchmarks are derived from computational fluid dynamics (CFD) applications and consist of five kernels and three pseudo-applications. Moreover, the benchmark suite contains benchmarks for unstructured adaptive mesh, parallel I/O, multi-zone applications, and computational grids <ref type="bibr">[NAS Parallel Benchmarks, 2016]</ref>. In our experiments we used MG, FT, and CG kernels:</p><p>x MG -Multi-Grid on a sequence of meshes, long-and short-distance communication, memory intensive x FT -discrete 3D fast Fourier Transform, all-to-all communication x CG -Conjugate Gradient, irregular memory access and communication The aims of the experiments were the following:</p><p>x Investigate performance of parallel applications on the prototype of distributed containerbased infrastructure x Check how performance of applications with different requirements on cpu/memory/network varies depending on infrastructure configuration x Evaluate possibilities of concurrent execution of parallel applications, minimizing their influence on each other The first set of experiments was performed to evaluate the resource saturation point for an application: the point when adding more memory (or available cpu, or network bandwith) would not increase application performance anymore. Sample results are presented in figure <ref type="figure" target="#fig_0">1</ref>. We can see that after some point the performance of applications does not increase with increasing the amount of allocated resources per application. Namely, the left plot demonstrates that for the application (FT class S) the performance stops increasing after increasing available bandwidth between the nodes more than 900 Kbit/s; the right plot shows that the amount of available memory is crucial for the application to start (FT class A, the application does not start with less than 70MB of memory available) but does not influence the performance when amount of memory is increased. The results presented in Figure <ref type="figure" target="#fig_1">2</ref> illustrate details of application performance for a particular configuration of computing infrastructure. Next, we have evaluated sequential and concurrent execution of two different application kernels, MG and FT, to ensure that concurrent execution of both applications will not affect their performance in case container clusters are configured to meet the individual requirement of the applications. Figure <ref type="figure" target="#fig_2">3</ref> illustrates observed differences in initialization and benchmark time of MG and FT kernels in a particular virtual hardware configuration (512 MB memory, 120 Kbit/s network) for sequential and concurrent execution. Here sequential execution means allocation of the whole set of resources to each of the applications and executing them one by one; concurrent execution means execution of both kernels simultaneously in separate containers with given limitations. Figure <ref type="figure">4</ref> shows experimental comparison of shared and concurrent execution, where shared execution means running both MG and FT kernels in a single container simultaneously. We can observe that in this case kernels can compete for shared resources which results in overall performance degradation. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Conclusions and future work</head><p>The presented work continues the developments presented in <ref type="bibr" target="#b2">[Korkhov, Kobyshev, …, 2015]</ref>; this approach can be used as an enabling part of the virtual supercomputer concept <ref type="bibr">[Gankevich, Gaiduchok, …, 2013;</ref><ref type="bibr" target="#b1">Gankevich, Korkhov, …, 2014]</ref> to ensure proper and efficient distribution of resources between several applications. Knowing the application demands in advance we can appropriate infrastructure configuration giving just as much resources as needed to each particular instance of a virtual supercomputer running a particular application. Here we use containers as an enabling part of the computing infrastructure. In such a way, free resources can be controlled and granted to concurrent applications without negative effect on other executions.</p><p>In this paper we proposed and evaluated the usage of concurrently running container clusters that are created based on application requirements and have minimal effect on each other by resource allocation control. We demonstrated a proof-of-concept prototype running on Microsoft Azure cloud resources and showed experimental evaluation of its performance on a set of NAS benchmarks based on real application kernels.</p><p>Our future work will be to look more closely into container cluster management and orchestration software (e.g. Docker Swarm, Kubernetes, or Mesos) to delegate the functionality of maintaining the cluster to these tools so that we could concentrate on mechanisms of application requirements evaluation and concurrent execution of applications on distributed container resources.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 .</head><label>1</label><figDesc>Figure 1. Experimental results: saturation of resource requirements for FT kernel</figDesc><graphic coords="3,66.81,591.36,471.34,120.00" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 .</head><label>2</label><figDesc>Figure 2. Experimental results. Left: mem 256MB, net 100 Kb/s; Right: mem 512 MB, net 1024 Kb/s</figDesc><graphic coords="4,80.33,117.87,449.58,120.00" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 3 .</head><label>3</label><figDesc>Figure 3. Experimental evaluation of separate and concurrent execution: difference in init and benchmark time; mem 512MB, net 120 Kb/s</figDesc><graphic coords="4,69.07,406.77,458.58,124.50" type="bitmap" /></figure>
		</body>
		<back>

			<div type="funding">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This work was supported by Russian Foundation for Basic Research (projects N 16-07-01111, 16-07-00886, 16-07-01113) and St. Petersburg State University (project N 0.37.155.2014).</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<author>
			<persName><forename type="first">I</forename><surname>Gankevich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Gaiduchok</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Gushchanskiy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Tipikin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Korkhov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Degtyarev</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bogdanov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Zolotarev</surname></persName>
		</author>
		<idno type="DOI">10.1109/CSITechnol.2013.6710358</idno>
		<title level="m">Virtual private supercomputer: Design and evaluation // CSIT 2013 // 9th International Conference on Computer Science and Information Technologies (CSIT), Revised Selected Papers</title>
				<imprint>
			<biblScope unit="volume">1</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Constructing Virtual Private Supercomputer Using Virtualization and Cloud Technologies</title>
		<author>
			<persName><forename type="first">I</forename><surname>Gankevich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Korkhov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Balyan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Gaiduchok</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Gushchanskiy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Tipikin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Degtyarev</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bogdanov</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of International Conference on Computational Science and Its Applications (ICCSA 2014)</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting>International Conference on Computational Science and Its Applications (ICCSA 2014)</meeting>
		<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="volume">8584</biblScope>
			<biblScope unit="page" from="341" to="354" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Flexible configuration of application-centric virtualized computing infrastructure</title>
		<author>
			<persName><forename type="first">V</forename><surname>Korkhov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Kobyshev</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Krosheninnikov</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computational Science and Its Applications</title>
		<imprint>
			<biblScope unit="page" from="342" to="353" />
			<date type="published" when="2015">2015. 2015. 9158</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<ptr target="http://www.nas.nasa.gov/publications/npb.html(ac-cessed20.11." />
		<title level="m">NAS Parallel Benchmarks</title>
				<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
	<note>Electronic resource</note>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<ptr target="https://www.docker.com/" />
		<title level="m">OMNeT++ project homepage</title>
				<imprint>
			<date type="published" when="2016-11-20">11.2016. 20.11.2016. 20.11.2016</date>
		</imprint>
	</monogr>
	<note>NS-3 Project Homepage. The Docker platform</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
