{"id":2243,"date":"2021-03-05T09:11:39","date_gmt":"2021-03-05T07:11:39","guid":{"rendered":"https:\/\/modinst.lu.lv\/?p=2243"},"modified":"2021-03-08T11:51:30","modified_gmt":"2021-03-08T09:51:30","slug":"singularity-containers","status":"publish","type":"post","link":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/","title":{"rendered":"Capabilities of Singularity containers"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">About this material<\/h2>\n\n\n\n<p>This guide has been developed as support material for March 5, 2021, online seminar \u201cSingularity Container Capabilities\u201d. This event has been made possible by the EuroHPC project \u201cNational Competence Centers in the framework of EuroHPC\u201d (EuroCC). This project has started on September 1, 2020, and Latvia is represented in this project by the HPC Center of Riga Technical University together with the Institute of Numerical Modelling of the University of Latvia. The EuroCC project aims to create a European network of supercomputing competence centres. 33 countries are involved in the project; it will last for 2 years with total funding of more than 56 million EUR.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_EuroCC.png\" alt=\"\" class=\"wp-image-2231\" width=\"183\" height=\"158\" srcset=\"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_EuroCC.png 900w, https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_EuroCC-300x259.png 300w, https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_EuroCC-768x664.png 768w, https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_EuroCC-705x609.png 705w\" sizes=\"auto, (max-width: 183px) 100vw, 183px\" \/><\/figure><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_RTU-1030x1023.png\" alt=\"\" class=\"wp-image-2232\" width=\"156\" height=\"155\" srcset=\"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_RTU-1030x1023.png 1030w, https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_RTU-300x298.png 300w, https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_RTU-80x80.png 80w, https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_RTU-768x763.png 768w, https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_RTU-1536x1526.png 1536w, https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_RTU-2048x2035.png 2048w, https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_RTU-36x36.png 36w, https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_RTU-180x180.png 180w, https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_RTU-1500x1490.png 1500w, https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/logo_RTU-705x701.png 705w\" sizes=\"auto, (max-width: 156px) 100vw, 156px\" \/><\/figure><\/div>\n<\/div>\n<\/div>\n\n\n\n<p>The task of the competence centres established during the project will be to create a unified support structure to promote the use of supercomputing opportunities in higher education, research, public administration, and industry. The Competence Centres will bring together the competencies, experience, and computing resources available in all EU countries.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class='avia-iframe-wrap'><iframe loading=\"lazy\" title=\"Semin\u0101rs &quot;Singularity konteineru iesp\u0113jas&quot;\" width=\"1500\" height=\"844\" src=\"https:\/\/www.youtube.com\/embed\/WNhxZyj-XUk?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p>When using high-performance computing (HPC) resources, it often becomes important to use non-standard software that is not available in the form of installed, ready-to-use software modules. In this situation, you can ask the administrator for help installing the software. But often this does not completely solve the problem:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>The desired software may not be compatible with the operating system used in the cluster.<\/li><li>Many different software packages with specific versions need to be installed.<\/li><li>The user may want to use an identical environment on different clusters\/workstations.<\/li><\/ul>\n\n\n\n<p>In the described situation, it is very suitable to use the software in the form of containers \u2013 a fully equipped and encapsulated software environment, which allows you to perform your desired calculation tasks on different systems. To use the required software environment (container), all you have to do is copy\/obtain the desired container file.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Demonstration of basic functionality<\/h2>\n\n\n\n<p>Below is an example of the basic functionality of software containers on the LU INM HPC cluster. The example considers a case where a container with <em>Anaconda Python<\/em> is already stored in a user&#8217;s folder (a tool with a series of <em>Python <\/em>tools that is typically used to process HPC data with <em>Python<\/em>).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># See that base OS offers only old and incomplete Python version (2.x.x.)\npython --version\n\n# It is possible to use software module provided by the administrators\n# See that the module indeed offers feature-rich Anaconda Python (3.x.x.)\nmodule avail\nmodule load anaconda3\/anaconda-2020.11\npython --version\n\n# However, there is an alternative \u2013 use of containers!\n# Detach previously loaded modules\nmodule purge\n\n# Load 'singularity' module\nmodule load singularity\/3.4.1\n\n# Use of available container (for executing a single command)\n# See that, indeed, container features Anaconda Python (3.x.x.)\nsingularity exec ~\/my_containers\/my_anaconda.simg python --version\n\n# Use of available container (for interactive shell)\nsingularity shell ~\/my_containers\/my_anaconda.simg\npython --version\n\n# While being in the container, see that all the user files are accessible\nls ~\n<\/code><\/pre>\n\n\n\n<p>From the example shown, it can be seen that containers provide the use of a particular software environment. However, it is not as cumbersome as using a separate virtual machine, which is usually not possible or suitable for HPC clusters. It should be noted that the use of containers can, of course, be specified in queue system scripts like any other command.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><em>Singularity <\/em>and <em>Docker <\/em>comparison<\/h2>\n\n\n\n<p>In recent years, software containerization has gained popularity in the form of the widely used platform Docker \u2013 the community of this platform has created many different, freely available container images in the <a href=\"https:\/\/hub.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>DockerHub<\/em><\/a> repository. However, there is an alternative containerization solution that is more suitable and popular in the HPC environment: <a href=\"https:\/\/sylabs.io\/docs\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Singularity<\/em><\/a>. This solution has several advantages that make it particularly suitable for HPC:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Unlike <em>Docker<\/em>, the use of <em>Singularity <\/em>containers does not require administrator rights. This allows you to make full use of these containers in an HPC environment. (Administrator rights are still required to create containers, however.)<\/li><li>Singularity containers offer ready-made solutions for parallel calculations (OpenMPI) as well as GPU calculations.<\/li><li>Singularity is compatible with Docker containers, allowing you to take advantage of the points above while allowing the use of the <em>DockerHub <\/em>repository.<\/li><\/ul>\n\n\n\n<p>Based on these advantages, as well as the fact that Singularity is available on both the LU INM cluster and the RTU HPC Center cluster, this guide specifically addresses the use of Singularity containers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Obtaining <em>DockerHub <\/em>containers<\/h2>\n\n\n\n<p>The previous demonstration with the <em>Anaconda Python<\/em> container was possible because it was obtained from the <a href=\"https:\/\/hub.docker.com\/r\/continuumio\/anaconda3\" target=\"_blank\" rel=\"noreferrer noopener\"><em>DockerHub <\/em>repository<\/a>. To obtain\/build this container file, proceed as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Load 'singularity' module\nmodule load singularity\/3.4.1\n\n# Obtain container using the link seen on DockerHub\n# \u2018pull\u2019 will download the container within few seconds\nsingularity pull ~\/my_containers\/my_anaconda.simg docker:\/\/continuumio\/anaconda3\n\n# Optionally \u2013 you can also use \u2018build\u2019 command\n# This converts the image to the newest available image format\n# In this case, build takes around 3 min\nsingularity build ~\/my_containers\/my_anaconda.simg docker:\/\/continuumio\/anaconda3\n<\/code><\/pre>\n\n\n\n<p>The <em>DockerHub <\/em>repository contains a number of different containers, which contain sets of software tools suitable for typical tasks in various fields &#8211; physics calculations, data processing, and IT solution tools (e.g., databases). However, there are several repositories besides <em>DockerHub<\/em>, where software containers are freely available.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Title<\/strong><\/td><td><strong>URL<\/strong><\/td><td><strong><em>singularity pull<\/em> prefi<\/strong>x<\/td><\/tr><tr><td>Singularity Library<\/td><td><a href=\"https:\/\/cloud.sylabs.io\/library\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/cloud.sylabs.io\/library<\/a><\/td><td>singularity pull library:\/\/<\/td><\/tr><tr><td>Docker Hub<\/td><td><a href=\"https:\/\/hub.docker.com\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/hub.docker.com<\/a><\/td><td>singularity pull docker:\/\/<\/td><\/tr><tr><td>Singularity Hub<\/td><td><a href=\"https:\/\/singularity-hub.org\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/singularity-hub.org<\/a><\/td><td>singularity pull shub:\/\/<\/td><\/tr><tr><td>NVIDIA GPU Cloud<\/td><td><a href=\"https:\/\/ngc.nvidia.com\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/ngc.nvidia.com<\/a><\/td><td>singularity pull docker:\/\/nvcr.io\/<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Installing <em>Singularity <\/em>and creating containers from scratch<\/h2>\n\n\n\n<p>Despite the extensive repository resources, sometimes it is necessary to create your own, specific container. Because this operation requires administrator privileges, it would typically be performed on your personal computer (or a <em>Linux <\/em>virtual machine available to you).<\/p>\n\n\n\n<p>The example below considers the creation of a container for using ESPResSo software, a specific tool for soft matter physics simulations. Installing this software requires several different additional tools, which can be time-consuming for the user and HPC cluster administrators. This situation makes the <em>ESPResSo <\/em>program a great candidate for a container demonstration.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installing <em>Singularity <\/em>on your personal computer<\/h3>\n\n\n\n<p>To be able to build your own containers, you need to install <em>Singularity <\/em>on a <em>Linux <\/em>computer with administrator privileges. For those who do not use <em>Linux <\/em>on their personal computer, it is worth mentioning that any computer with <em>Windows 10 Enterprise \/ Pro<\/em> already has a <a href=\"https:\/\/docs.microsoft.com\/en-us\/virtualization\/hyper-v-on-windows\/quick-start\/enable-hyper-v\" target=\"_blank\" rel=\"noreferrer noopener\">built-in option to run virtual instances of <em>Linux<\/em><\/a>. The example below was implemented on an <em>Ubuntu 20.04 LTS<\/em> virtual machine. Following <a href=\"https:\/\/sylabs.io\/guides\/3.7\/user-guide\/quick_start.html#install\" target=\"_blank\" rel=\"noreferrer noopener\">this <em>Singularity <\/em>installation guide<\/a>, a number of dependencies were first installed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update &amp;&amp; sudo apt-get install -y \\\n    build-essential \\\n    libssl-dev \\\n    uuid-dev \\\n    libgpgme11-dev \\\n    squashfs-tools \\\n    libseccomp-dev \\\n    wget \\\n    pkg-config \\\n    git \\\n    cryptsetup\n<\/code><\/pre>\n\n\n\n<p>Lai b\u016btu iesp\u0113jas kompil\u0113t un ieg\u016bt lieto\u0161an\u0101 Singularity, nepiecie\u0161amas programm\u0113\u0161anas valodas <em>Go<\/em> r\u012bki, kurus var lejupiel\u0101d\u0113t <em><a href=\"https:\/\/golang.org\/dl\/\" target=\"_blank\" rel=\"noreferrer noopener\">golang.org<\/a><\/em> m\u0101jaslap\u0101. Instal\u0101cija veicama sekojo\u0161i:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Atarhiv\u0113 lejupiel\u0101d\u0113to arh\u012bvu\ntar -C \/usr\/local -xzf go1.16.linux-amd64.tar.gz\n\n# Pievieno \u2018go\u2019 mapi datora PATH\nexport PATH=$PATH:\/usr\/local\/go\/bin\n\n# Restart\u0113 datoru vai ar\u012b izpilda komandu:\n$HOME\/.profile\n<\/code><\/pre>\n\n\n\n<p>To be able to compile and use <em>Singularity<\/em>, you need <em>Go <\/em>programming tools, which can be downloaded from <a href=\"https:\/\/golang.org\/dl\/\" target=\"_blank\" rel=\"noreferrer noopener\">golang.org<\/a>. The installation is performed as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Extracting the downloaded archive\ntar -C \/usr\/local -xzf go1.16.linux-amd64.tar.gz\n\n# Adding the \u2018go\u2019 folder to system PATH\nexport PATH=$PATH:\/usr\/local\/go\/bin\n\n# Reboot computer or execute command:\n$HOME\/.profile\n<\/code><\/pre>\n\n\n\n<p>You can continue with the installation of the <em>Singularity<\/em> program itself. The code of the latest version of the program can be downloaded from the <a href=\"https:\/\/github.com\/hpcng\/singularity\/releases\" target=\"_blank\" rel=\"noreferrer noopener\"><em>GitLab<\/em> site<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Extracting archive and changing directory\ntar -xzf singularity-3.7.1.tar.gz\ncd singularity\n\n# Install singularity by specifying location (here \/usr\/local is chosen)\n.\/mconfig -b .\/buildtree -p \/usr\/local\ncd .\/singularity\/buildtree\nmake\nsudo make install\n\n# Check if installation was successful\nsingularity version\n<\/code><\/pre>\n\n\n\n<p>After completing the steps above, <em>Singularity <\/em>has been successfully installed and it is possible to use <em>Singularity<\/em> on your computer and prepare containers for use elsewhere, e.g., HPC clusters.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Create container using a recipe file<\/h3>\n\n\n\n<p>You can create your own containers using the container <strong>recipe file<\/strong>. Its contents indicate what software, what parameters and other functional aspects should be included within the container file that is about to be built. You can read about the blocks and parameters in the contents of these recipe files in <a href=\"https:\/\/sylabs.io\/guides\/3.7\/user-guide\/definition_files.html\" target=\"_blank\" rel=\"noreferrer noopener\">this manual<\/a>. However, it is extremely valuable to get acquainted with and base your work on the various examples of recipe files compiled in <a href=\"https:\/\/github.com\/sylabs\/examples\" target=\"_blank\" rel=\"noreferrer noopener\">this <em>GitHub<\/em> repository<\/a>.<\/p>\n\n\n\n<p>Below is an example of a recipe file that creates a container with the aforementioned <em>ESPResSo <\/em>software. As you can see from the contents of this file, the operation is similar as with a typical computer: for the most part, the file consists of the <em>%post<\/em> section, with contents identical to the <em>ESPResSo <\/em>installation guide.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Bootstrap: docker\nFrom: ubuntu:18.04\n\n\n%help\n    Container with ESPResSo\n    ESPResSo means: Extensible Simulation Package for Research on Soft Matter\n    Website: http:\/\/espressomd.org\/wordpress\/\n    Main binary for using ESOResSo via this container is 'pypresso'.\n\n%post\n    # Updating repositories and packages\n    apt-get update &amp;&amp; apt-get -y upgrade\n    \n    # Installing all dependencies (as shown on ESPResSo website)\n    apt-get -y install wget tar build-essential \\\n        cmake cython3 python3-numpy libboost-all-dev \\\n        openmpi-common fftw3-dev libhdf5-dev \\\n        libhdf5-openmpi-dev python3-opengl libgsl-dev\n   \n    # Installing ESPResSo (as shown on ESPResSo website)\n    cd ~\n    wget -c \\\n    https:&#47;&#47;github.com\/espressomd\/espresso\/releases\/download\/4.1.4\/espresso-4.1.4.tar.gz\n    tar zxvf espresso-4.1.4.tar.gz\n    mkdir \/usr\/bin\/espresso &amp;&amp; cd \/usr\/bin\/espresso\n    cmake ~\/espresso\n    cmake --build .\n    \n    # Cleaning up\n    apt-get clean\n    apt-get autoremove\n   \n%environment\n    # Something about locale... everyone seems to be doing this.\n    export LC_ALL=C\n    \n    # Adding ESPResSo directory to PATH, so that the command 'pypresso' is available\n    export PATH=\/usr\/bin\/espresso:$PATH\n<\/code><\/pre>\n\n\n\n<p>Once the recipe file has been created and saved as <em>ESPResSo_container_recipe.def<\/em>, you can build a container using the command below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo singularity build ESPResSo_container.sif ESPResSo_container_recipe.def<\/code><\/pre>\n\n\n\n<p>In this case, the process took 5-10 minutes (downloading the basic environment and packages, compiling the specific software). The size of the container file created at the end is about 400 MB. Once a container file has been created, it can be used in the same way as previously shown, with exec and shell commands. The container file can be copied and used elsewhere, including an HPC cluster.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>singularity exec ESPResSo_container.sif pypresso &lt;pypresso script file&gt;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Using containers with GPU-compute capabilities<\/h2>\n\n\n\n<p>Although containers are encapsulated software environments, their execution can be linked to base operating system resources and hardware: enabling the use of system GPU cards and supplying external software resources (such as CUDA libraries for use inside a container). Below is a brief example of using a <em><a href=\"https:\/\/www.tensorflow.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tensorflow<\/a> <\/em>container with GPU acceleration. <em>Tensorflow <\/em>is a popular tool used to perform machine learning tasks.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Load 'singularity' module\nmodule load singularity\/3.4.1\n\n# Load CUDA library\n# This module containes information where to look for CUDA commands\n# within the system (\u2018\/bin\u2019 folder), and defines the CUDA_HOME variable\nmodule load cuda\/cuda-10.2\n\n# Using the container from DockerHub while enabling use of GPU (\u2018--nv\u2019),\n# as well as bind the CUDA library folder with \u2018--bind ..\u2019.\nsingularity shell --nv --bind ${CUDA_HOME} \\ \n                     ~\/my_containers\/tensorflow_2.3.1-gpu.sif\n<\/code><\/pre>\n\n\n\n<p>Similarly, any other external software can be passed to the container by using the bind parameter. Thus, containers can be made smaller: for example, it is not necessary to include <em>Anaconda Python<\/em> in a container if it is clearly known that it can be passed through with the <em>bind<\/em> parameter. In this case, only the specific\/non-standard software should be included in the container.<\/p>\n\n\n\n<p>Topic discussed in this last section is thoroughly analyzed in the presentation that was shown during the seminar on March 5. It is made available to you as PDF file:<\/p>\n\n\n\n<div class=\"wp-block-file aligncenter\"><a href=\"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/Singularity_seminars_Aleksandrs_Gutcaits.pdf\">Singularity GPU Containers Options (PDF)<\/a><a href=\"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/Singularity_seminars_Aleksandrs_Gutcaits.pdf\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>About this material This guide has been developed as support material for March 5, 2021, online seminar \u201cSingularity Container Capabilities\u201d. This event has been made possible by the EuroHPC project \u201cNational Competence Centers in the framework of EuroHPC\u201d (EuroCC). This project has started on September 1, 2020, and Latvia is represented in this project by [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":2229,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,14],"tags":[],"class_list":["post-2243","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-computing-centre","category-news"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Capabilities of Singularity containers - Institute of Numerical Modelling<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/modinst.lu.lv\/en\/singularity-containers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Capabilities of Singularity containers - Institute of Numerical Modelling\" \/>\n<meta property=\"og:description\" content=\"About this material This guide has been developed as support material for March 5, 2021, online seminar \u201cSingularity Container Capabilities\u201d. This event has been made possible by the EuroHPC project \u201cNational Competence Centers in the framework of EuroHPC\u201d (EuroCC). This project has started on September 1, 2020, and Latvia is represented in this project by [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/modinst.lu.lv\/en\/singularity-containers\/\" \/>\n<meta property=\"og:site_name\" content=\"Institute of Numerical Modelling\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/modinstlv\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-05T07:11:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-08T09:51:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/singularity_tutorial_cover-1030x580.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1030\" \/>\n\t<meta property=\"og:image:height\" content=\"580\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Miha\u0113ls Doro\u0146ins\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Miha\u0113ls Doro\u0146ins\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/singularity-containers\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/singularity-containers\\\/\"},\"author\":{\"name\":\"Miha\u0113ls Doro\u0146ins\",\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/#\\\/schema\\\/person\\\/0cc8b45b0663ea4eb91eb0a2e0570d6d\"},\"headline\":\"Capabilities of Singularity containers\",\"datePublished\":\"2021-03-05T07:11:39+00:00\",\"dateModified\":\"2021-03-08T09:51:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/singularity-containers\\\/\"},\"wordCount\":1411,\"publisher\":{\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/singularity-containers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/modinst.lu.lv\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/singularity_tutorial_cover-scaled.jpg\",\"articleSection\":[\"Computing Centre Tutorials\",\"News\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/singularity-containers\\\/\",\"url\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/singularity-containers\\\/\",\"name\":\"Capabilities of Singularity containers - Institute of Numerical Modelling\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/singularity-containers\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/singularity-containers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/modinst.lu.lv\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/singularity_tutorial_cover-scaled.jpg\",\"datePublished\":\"2021-03-05T07:11:39+00:00\",\"dateModified\":\"2021-03-08T09:51:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/singularity-containers\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/singularity-containers\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/singularity-containers\\\/#primaryimage\",\"url\":\"https:\\\/\\\/modinst.lu.lv\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/singularity_tutorial_cover-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/modinst.lu.lv\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/singularity_tutorial_cover-scaled.jpg\",\"width\":2560,\"height\":1441},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/singularity-containers\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Capabilities of Singularity containers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/\",\"name\":\"Institute of Numerical Modelling\",\"description\":\"Scientific Institute of the University of Latvia\",\"publisher\":{\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/#organization\",\"name\":\"Institute of Mathematical Modeling\",\"url\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/modinst.lu.lv\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/INM_EN_hor_RGB.jpg\",\"contentUrl\":\"https:\\\/\\\/modinst.lu.lv\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/INM_EN_hor_RGB.jpg\",\"width\":1500,\"height\":540,\"caption\":\"Institute of Mathematical Modeling\"},\"image\":{\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/modinstlv\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/lu-inm\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/#\\\/schema\\\/person\\\/0cc8b45b0663ea4eb91eb0a2e0570d6d\",\"name\":\"Miha\u0113ls Doro\u0146ins\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6c7007cd3cf8cad26e93b88168ec847cf158a820316d268247b8547288e036d1?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6c7007cd3cf8cad26e93b88168ec847cf158a820316d268247b8547288e036d1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6c7007cd3cf8cad26e93b88168ec847cf158a820316d268247b8547288e036d1?s=96&d=mm&r=g\",\"caption\":\"Miha\u0113ls Doro\u0146ins\"},\"url\":\"https:\\\/\\\/modinst.lu.lv\\\/en\\\/author\\\/mihaels-doronins\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Capabilities of Singularity containers - Institute of Numerical Modelling","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/","og_locale":"en_US","og_type":"article","og_title":"Capabilities of Singularity containers - Institute of Numerical Modelling","og_description":"About this material This guide has been developed as support material for March 5, 2021, online seminar \u201cSingularity Container Capabilities\u201d. This event has been made possible by the EuroHPC project \u201cNational Competence Centers in the framework of EuroHPC\u201d (EuroCC). This project has started on September 1, 2020, and Latvia is represented in this project by [&hellip;]","og_url":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/","og_site_name":"Institute of Numerical Modelling","article_publisher":"https:\/\/www.facebook.com\/modinstlv","article_published_time":"2021-03-05T07:11:39+00:00","article_modified_time":"2021-03-08T09:51:30+00:00","og_image":[{"width":1030,"height":580,"url":"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/singularity_tutorial_cover-1030x580.jpg","type":"image\/jpeg"}],"author":"Miha\u0113ls Doro\u0146ins","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Miha\u0113ls Doro\u0146ins","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/#article","isPartOf":{"@id":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/"},"author":{"name":"Miha\u0113ls Doro\u0146ins","@id":"https:\/\/modinst.lu.lv\/en\/#\/schema\/person\/0cc8b45b0663ea4eb91eb0a2e0570d6d"},"headline":"Capabilities of Singularity containers","datePublished":"2021-03-05T07:11:39+00:00","dateModified":"2021-03-08T09:51:30+00:00","mainEntityOfPage":{"@id":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/"},"wordCount":1411,"publisher":{"@id":"https:\/\/modinst.lu.lv\/en\/#organization"},"image":{"@id":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/#primaryimage"},"thumbnailUrl":"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/singularity_tutorial_cover-scaled.jpg","articleSection":["Computing Centre Tutorials","News"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/","url":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/","name":"Capabilities of Singularity containers - Institute of Numerical Modelling","isPartOf":{"@id":"https:\/\/modinst.lu.lv\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/#primaryimage"},"image":{"@id":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/#primaryimage"},"thumbnailUrl":"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/singularity_tutorial_cover-scaled.jpg","datePublished":"2021-03-05T07:11:39+00:00","dateModified":"2021-03-08T09:51:30+00:00","breadcrumb":{"@id":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/modinst.lu.lv\/en\/singularity-containers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/#primaryimage","url":"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/singularity_tutorial_cover-scaled.jpg","contentUrl":"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2021\/03\/singularity_tutorial_cover-scaled.jpg","width":2560,"height":1441},{"@type":"BreadcrumbList","@id":"https:\/\/modinst.lu.lv\/en\/singularity-containers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/modinst.lu.lv\/en\/"},{"@type":"ListItem","position":2,"name":"Capabilities of Singularity containers"}]},{"@type":"WebSite","@id":"https:\/\/modinst.lu.lv\/en\/#website","url":"https:\/\/modinst.lu.lv\/en\/","name":"Institute of Numerical Modelling","description":"Scientific Institute of the University of Latvia","publisher":{"@id":"https:\/\/modinst.lu.lv\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/modinst.lu.lv\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/modinst.lu.lv\/en\/#organization","name":"Institute of Mathematical Modeling","url":"https:\/\/modinst.lu.lv\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/modinst.lu.lv\/en\/#\/schema\/logo\/image\/","url":"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2020\/02\/INM_EN_hor_RGB.jpg","contentUrl":"https:\/\/modinst.lu.lv\/wp-content\/uploads\/2020\/02\/INM_EN_hor_RGB.jpg","width":1500,"height":540,"caption":"Institute of Mathematical Modeling"},"image":{"@id":"https:\/\/modinst.lu.lv\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/modinstlv","https:\/\/www.linkedin.com\/company\/lu-inm"]},{"@type":"Person","@id":"https:\/\/modinst.lu.lv\/en\/#\/schema\/person\/0cc8b45b0663ea4eb91eb0a2e0570d6d","name":"Miha\u0113ls Doro\u0146ins","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/6c7007cd3cf8cad26e93b88168ec847cf158a820316d268247b8547288e036d1?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6c7007cd3cf8cad26e93b88168ec847cf158a820316d268247b8547288e036d1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6c7007cd3cf8cad26e93b88168ec847cf158a820316d268247b8547288e036d1?s=96&d=mm&r=g","caption":"Miha\u0113ls Doro\u0146ins"},"url":"https:\/\/modinst.lu.lv\/en\/author\/mihaels-doronins\/"}]}},"_links":{"self":[{"href":"https:\/\/modinst.lu.lv\/en\/wp-json\/wp\/v2\/posts\/2243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/modinst.lu.lv\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/modinst.lu.lv\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/modinst.lu.lv\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/modinst.lu.lv\/en\/wp-json\/wp\/v2\/comments?post=2243"}],"version-history":[{"count":5,"href":"https:\/\/modinst.lu.lv\/en\/wp-json\/wp\/v2\/posts\/2243\/revisions"}],"predecessor-version":[{"id":2274,"href":"https:\/\/modinst.lu.lv\/en\/wp-json\/wp\/v2\/posts\/2243\/revisions\/2274"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/modinst.lu.lv\/en\/wp-json\/wp\/v2\/media\/2229"}],"wp:attachment":[{"href":"https:\/\/modinst.lu.lv\/en\/wp-json\/wp\/v2\/media?parent=2243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/modinst.lu.lv\/en\/wp-json\/wp\/v2\/categories?post=2243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/modinst.lu.lv\/en\/wp-json\/wp\/v2\/tags?post=2243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}