<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>October</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>EXPLORING APPLICATIONS AND OPPORTUNITIES OF REMOTE VIRTUAL SUPERCOMPUTER</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>O. Iakushkin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>D. Malevanniy</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>O. Sedova</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A. Degtyarev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>V. Korkhov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Oleg Iakushkin</institution>
          ,
          <addr-line>Daniil Malevanniy, Olga Sedova, Alexander Degtyarev, Vladimir Korkhov</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Plekhanov Russian University of Economics Stremyanny lane</institution>
          ,
          <addr-line>36, Moscow, 117997</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2019</year>
      </pub-date>
      <volume>4</volume>
      <issue>2019</issue>
      <fpage>326</fpage>
      <lpage>330</lpage>
      <abstract>
        <p>This paper focuses on integrating a set of technologies such as Blockchain development platforms and HPC applications such as Schrödinger smoke rendering into remote virtual supercomputer system. We have successfully run GPGPU and CPU heavy workloads, User interface heavy and Terminal based applications. We have successfully created a set of virtual work environments for: Telegram Open Network, Hyperledger Fabric, Ethereum, Corda and Iroha blockchains; Student summer AI competitions, Server-side rendering of Schrödinger smoke.</p>
      </abstract>
      <kwd-group>
        <kwd>Blockchain</kwd>
        <kwd>Docker</kwd>
        <kwd>Virtual Supercomputer</kwd>
        <kwd>Remote Desktop</kwd>
        <kwd>Education</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>1 St Petersburg University</p>
    </sec>
    <sec id="sec-2">
      <title>1. Introduction</title>
      <p>We have developed a virtual desktop infrastructure (VDI) framework that allows users to gain
simultaneous access to GPGPU and high-performance computational resources [1]. The main idea is
to provide each user with a fully self-contained desktop environment including all SDKs, IDEs and
applications needed. Our tool is best suited for long lived development processes that require a lot of
short-lived computations running on rare shared resources such as GPGPU nodes. It simplifies and
radically shortens time required for a user to get to the main activity such as software use or
development by providing a familiar full-fledged desktop interface.</p>
      <p>In other words, the main goal of the tool we created is to deliver a fast and reproducible
approach for creating and sharing hand-tailored development environments. This allows a fast
classroom and work infrastructure deployment, access and sharing, which in turn facilitates knowledge
transfer.</p>
      <p>Let’s look at an example case: a junior researcher needs to access GPGPU development
environment. If we point him to a classical cluster-based setting, he would need to learn in addition to
his main development target how to work his way around terminal multitasking, cluster queues and
cluster architecture basics, task management systems such as slurm, probably cluster package
management system such as Singularity, how to debug programs running in a cluster. This is a long
and tedious learning curve that will take at least two month and heavily impact time that could be
spent on valuable research tasks.</p>
      <p>A user in that case had to fully embrace HPC way first and only than could he approach his
main software development task. We want to radically simplify the way a developer prototypes, tests
and debugs his HPC and service applications: provide a remote accessible desktop interface with
short-time access to mission critical resources such as GPGPUs. Such environments can provide the
same level of user isolation as one can get in a Singularity container combining it with an ability to
visually debug programs and use GUI based tools directly on a cluster node. Such approach removes
stiff HPC learning curve that is usually presented to the developers of scientific applications and
services, allowing for a more gradual acquaintance with HPC environment.</p>
      <p>We created a VDI that provides users with access to computational environments nested deep
inside the corporate infrastructure; with independent from computation nodes storage nodes; and a
controller node that manages access rights and provides service access. Architecture is presented in the
figure 1.</p>
    </sec>
    <sec id="sec-3">
      <title>2. Blockchain development environments</title>
      <p>We successfully integrated a set of different Blockchain environments into our system. Each
environment is presented in form of a single runnable container image. Combining a base image with
all the different required tools (listed below) and testing suites (see figure 2) preinstalled allows us
users not only to develop and test new services but also fine-tune and compare capabilities of deferent
distributed ledgers.</p>
      <p>Corda. Inside this container, we have fitted all necessary instruments needed to start
developing Corda based smart-contracts. There are:
1. Preconfigured development environment - IntelliJ IDEA
2. Prepared for Corda development OpenJDK8 and OpenJFX8
3. Our product: UI Tool. This tool is made to make demonstrations of command-line interface
programs
4. A documented example of Corda-based smart-contract</p>
      <p>An example of a demo application with 5 nodes can be seen on Fig. 1.</p>
      <p>Telegram Open Network (TON). Inside this container, we have fitted all necessary instruments
needed to start developing smart-contracts for Telegram Open Network (TON) blockchain. There are:
1. Prebuilt tools and compilers for fift, funC languages.
2. Prebuilt and ready for production blockchain client.</p>
      <p>3. Visual Studio Code Editor</p>
      <p>Hyperledger/Fabric. Inside this container, we have fitted all necessary instruments needed to
start developing HL Fabric based smart-contracts. There are:
1. Visual Studio Code editor with Hyperledger Composer plugin for developing your
smart-contracts.
2. Testing network with all necessary dependencies (Docker, Go)
3. Our product: UI Tool. This tool is made to make demonstrations of command-line
interface programs</p>
      <p>For Hyperledger Fabric setup it is important to have local capabilities to run docker images,
shown on Fig. 2.</p>
      <p>Ethereum. Inside this container, we have fitted all necessary instruments needed to start
developing Ethereum based smart-contracts. There are:
1.</p>
      <p>Geth console that runs the test network. Launches on container start, with mining turned on
and one registred user with some ether.
2. Remix IDE - development environment for Ethereum smart-contracts, which can connect to
the test network. Inside you will find a Solidity language editor and compilator, UI for
interaction with smart-contracts, and a JavaScript console to interact with test network.
3. Standalone Solidity compilator - solc.
4. Smart-contract demo as an example of developing custom smart-contract and interaction with
it.</p>
    </sec>
    <sec id="sec-4">
      <title>3. Environments for research and education</title>
      <p>For the development of Schrödinger smoke rendering application, we have equipped a node
with a Mesa renderer and Houdini 3D Procedural Animation Software on top of it with OpenGL 3.3
emulation starting rendering scripts with:</p>
      <p>MESA_GL_VERSION_OVERRIDE=3.3 scrypt.py</p>
      <p>Such environment creation tool has quickly found use in a classroom allowing us to create and
deploy student’s virtual desktop environments in a protected setting, providing them with direct access
to GPGPU nodes and powerful HPC nodes. Students have used this tool at:
1. SPbU summer coding school at 2018 and 2019 years
2. Sochi Sirius blockchain intensive course 2019</p>
      <p>Examples showing developer IDE and 3D rendering application can be found in Fig. 3</p>
      <p>Code Coverage in % of lines of code
100
90
80
70
60
50
40
30
20
10
0
corda</p>
      <p>Fabric (Core)</p>
      <p>Iroha</p>
    </sec>
    <sec id="sec-5">
      <title>3. Drawbacks</title>
    </sec>
    <sec id="sec-6">
      <title>4. Conclusion</title>
      <p>The main system drawbacks are space consumption per image and inability to equally share
rare resources such as GPGPUs. This leads to the enforcement of computations running on such
resources to be short lived. In future we hope to integrate better GPGPU provisioning such as Nvidia
GRID to share GPGPUs.</p>
      <p>
        The system we presented allows for multidisciplinary application deployment and shows
interesting results for students training. We hope to see integration with applications [
        <xref ref-type="bibr" rid="ref1">2-5</xref>
        ] in the
nearest future.
      </p>
    </sec>
    <sec id="sec-7">
      <title>5. Acknowledgement</title>
      <p>This research was partially supported by the Russian Foundation for Basic Research grants
(projects no. 17-29-04288). The authors would like to acknowledge the Reviewers for the valuable
recommendations that helped in the improvement of this paper.
[1] Malevanniy D., Sedova O., Iakushkin O. (2019) Controlled Remote Usage of Private Shared
Resources via Docker and NoVNC. In: Misra S. et al. (eds) Computational Science and Its
Applications – ICCSA 2019. ICCSA 2019. Lecture Notes in Computer Science, vol 11622. Springer,
pp. 782-791
[2] Iakushkin O., Selivanov D., Tazieva L., Fatkina A., Grishkin V., Uteshev A. (2018) 3D
Reconstruction of Landscape Models and Archaeological Objects Based on Photo and Video
Materials. In: Gervasi O. et al. (eds) Computational Science and Its Applications – ICCSA 2018.
ICCSA 2018. Lecture Notes in Computer Science, vol 10963. Springer, pp. pp 160-169
[3] Iakushkin O., Fatkina A., Plaksin V., Sedova O., Degtyarev A., Uteshev A. (2018)
Reconstruction of Stone Walls in Form of Polygonal Meshes from Archaeological Studies. In: Gervasi
O. et al. (eds) Computational Science and Its Applications – ICCSA 2018. ICCSA 2018. Lecture
Notes in Computer Science, vol 10963. Springer, pp 136-148
[4] Iakushkin, Oleg, Anna Kondratiuk, Alexey S. Eremin, and Olga Sedova. "Development of a
containerized system to build geometric models and perform their strength analysis." In 3rd
International Conference on Applications in Information Technology, ICAIT 2018, pp. 146-149.
Association for Computing Machinery, 2018.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Iakushkin</surname>
            ,
            <given-names>Oleg O.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Olga</surname>
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Sedova</surname>
          </string-name>
          .
          <article-title>"Creating CAD designs and performing their subsequent analysis using opensource solutions in Python."</article-title>
          <source>In AIP Conference Proceedings</source>
          , vol.
          <year>1922</year>
          , no.
          <issue>1</issue>
          , p.
          <fpage>140011</fpage>
          . AIP Publishing,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>