Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 12 additions & 9 deletions lang/en/docs/cli/actions/add-software.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,18 @@
Users can compile their own software via the
[Command Line Interface](../overview.md) (CLI). This is helpful if users need
to run a specific version of an application that is not installed "globally".
The globally installed applications are currently distributed as
Apptainer[^1] (Singularity[^2]) containers, bundled with all required
dependencies. This ensures that each application is isolated and avoids
dependency conflicts.

When planning to run an application that is not installed in
our cluster, we encourage packaging code and its dependencies as an
Apptainer/<wbr/>Singularity container. Existing Docker images
can be converted into an Apptainer/<wbr/>Singularity images.
The globally installed applications are currently distributed as Apptainer[^1]
(Singularity[^2]) containers, bundled with all required dependencies. This
ensures that each application is isolated and avoids dependency conflicts.

When planning to run an application that is not installed in our cluster, we
encourage packaging code and its dependencies as an Apptainer/<wbr/>Singularity
container. Existing Docker images can be converted into an
Apptainer/<wbr/>Singularity images.

<div class="video-wrapper">
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/G1hfW_kS8oY?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

## Using Sandbox mode
Apptainer's sandbox mode is helpful for testing and fine-tuning the build steps
Expand Down
221 changes: 221 additions & 0 deletions lang/en/docs/cli/actions/apptainer-tutorial.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
{
"descriptionLinks": [
"Build containerized applications with GPU support: https://docs.mat3ra.com/cli/actions/add-software/"
],
"description": "How to build containerized applications with GPU support using Apptainer.",
"tags": [
{
"...": "../../metadata/general.json#/tags"
},
"apptainer",
"container",
"containerization",
"gpu",
"nvidia",
"singularity"
],
"title": "Mat3ra Tutorial: Build containerized applications with GPU support",
"youTubeCaptions": [
{
"text": "In this tutorial, <break time='0.15'/> we will learn, how we can build containerized applications with Apptainer.",
"startTime": "00:00:00.150",
"endTime": "00:00:06.000"
},
{
"text": "We will also discuss how you can enable GPU support for such containers.",
"startTime": "00:00:06.500",
"endTime": "00:00:15.000"
},
{
"text": "The detailed steps of this tutorial are available on our documentation site.",
"startTime": "00:00:16.000",
"endTime": "00:00:21.000"
},
{
"text": "The documentation link can be found in the description below.",
"startTime": "00:00:21.500",
"endTime": "00:00:25.000"
},
{
"text": "Now, let's head over to platform dot matera dot com and launch the web terminal.",
"startTime": "00:00:25.500",
"endTime": "00:00:30.000"
},
{
"text": "Alternatively, you can connect to the login node using SSH.",
"startTime": "00:00:30.500",
"endTime": "00:00:34.000"
},
{
"text": "Let's verify that the Apptainer is installed, and check its version.",
"startTime": "00:00:34.500",
"endTime": "00:00:39.000"
},
{
"text": "First, <break time='0.15'/> we can use the Apptainer sandbox mode to test and fine tune the build steps interactively.",
"startTime": "00:00:39.500",
"endTime": "00:00:45.000"
},
{
"text": "Once the build steps are finalized, we can package the sandbox folder into a final image.",
"startTime": "00:00:45.500",
"endTime": "00:00:51.000"
},
{
"text": "Or, <break time='0.15'/> we can create a definition file with finalized build steps and build the container from it.",
"startTime": "00:00:51.500",
"endTime": "00:00:55.000"
},
{
"text": "Let's call our sandbox folder GCC sandbox.",
"startTime": "00:00:55.500",
"endTime": "00:01:00.000"
},
{
"text": "And initialize the sandbox with Alma Linux 9 base-image from the Docker registry.",
"startTime": "00:01:00.500",
"endTime": "00:01:06.000"
},
{
"text": "Notice the warning messages, we first need to set appropriate file permissions for the sandbox folder to be able to delete it later.",
"startTime": "00:01:06.500",
"endTime": "00:01:13.000"
},
{
"text": "Next, we can enter the sandbox container in the shell mode with write permission and as root user.",
"startTime": "00:01:13.500",
"endTime": "00:01:19.000"
},
{
"text": "Now, we can install packages in the sandbox container as you would normally do.",
"startTime": "00:01:19.500",
"endTime": "00:01:24.000"
},
{
"text": "Once the installation is complete, we can exit the sandbox container.",
"startTime": "00:01:24.500",
"endTime": "00:01:28.000"
},
{
"text": "We can package the sandbox folder into a final image with the build command.",
"startTime": "00:01:28.500",
"endTime": "00:01:33.000"
},
{
"text": "Now, we can verify that the container is working by running the GCC compiler.",
"startTime": "00:01:33.500",
"endTime": "00:01:38.000"
},
{
"text": "There is a second way to build the container, by creating a definition file with the build steps.",
"startTime": "00:01:38.500",
"endTime": "00:01:45.000"
},
{
"text": "An example definition file is available in our documentation site, let's copy it to clipboard.",
"startTime": "00:01:45.500",
"endTime": "00:01:51.000"
},
{
"text": "To transfer the clipboard content from the host machine to the web terminal, we can open the Remote-connection Sidebar by pressing Control Alt Shift <break time='0.15'/> in Windows and Linux <break time='0.15'/> or Control Option Shift in Mac.",
"startTime": "00:01:51.500",
"endTime": "00:02:03.000"
},
{
"text": "We can open vim editor, press i to enter insert mode, and right click to paste the clipboard content.",
"startTime": "00:02:03.500",
"endTime": "00:02:08.000"
},
{
"text": "Press the escape key, and type colon <break time='0.15'/> w q to save and exit the file.",
"startTime": "00:02:08.500",
"endTime": "00:02:14.000"
},
{
"text": "Now, we can run apptainer build command <break time='0.15'/> with the image name followed by the definition file name.",
"startTime": "00:02:14.500",
"endTime": "00:02:19.000"
},
{
"text": "However note that computationally intensive builds should not be directly run on the login node.",
"startTime": "00:02:19.500",
"endTime": "00:02:25.000"
},
{
"text": "Instead they should be submitted as a job to the batch system as described in our documentation.",
"startTime": "00:02:25.500",
"endTime": "00:02:30.000"
},
{
"text": "If you need GPU support, please use the dash dash NV flag with apptainer exec command.",
"startTime": "00:02:30.500",
"endTime": "00:02:37.000"
},
{
"text": "This will map the necessary drivers from the host to the container and set the necessary environment variables.",
"startTime": "00:02:37.500",
"endTime": "00:02:44.000"
},
{
"text": "Note that it is not necessary to install all dependencies inside the container.",
"startTime": "00:02:44.500",
"endTime": "00:02:49.000"
},
{
"text": "Especially large libraries like NVIDIA HPC SDK or Intel OneAPI.",
"startTime": "00:02:49.500",
"endTime": "00:02:55.000"
},
{
"text": "Instead, you can map such libraries from the host to the container using the bind directive.",
"startTime": "00:02:55.500",
"endTime": "00:03:01.000"
},
{
"text": "Commonly used libraries are available in our clusters under /export or /cluster-share directories.",
"startTime": "00:03:01.500",
"endTime": "00:03:06.000"
},
{
"text": "You may visit our open source container registry at GitHub to inspect the definition files.",
"startTime": "00:03:06.500",
"endTime": "00:03:11.000"
},
{
"text": "You are also welcome to contribute to our container registry by submitting a pull request.",
"startTime": "00:03:11.500",
"endTime": "00:03:16.000"
},
{
"text": "And build containers automatically via GitHub Actions workflow.",
"startTime": "00:03:16.500",
"endTime": "00:03:22.000"
},
{
"text": "Once the images are built, they are listed under the packages.",
"startTime": "00:03:022.500",
"endTime": "00:03:27.000"
},
{
"text": "First select the application name, then select appropriate image tag and copy its URL.",
"startTime": "00:03:27.500",
"endTime": "00:03:32.000"
},
{
"text": "We can go back to the web terminal and download the image using apptainer pull command.",
"startTime": "00:03:32.500",
"endTime": "00:03:38.000"
},
{
"text": "Now, visit platform dot matera dot com and try building your own containers.",
"startTime": "00:03:38.500",
"endTime": "00:03:44.000"
},
{
"text": "Thank you for watching this tutorial and using our platform.",
"startTime": "00:03:44.500",
"endTime": "00:03:46.000"
}
],
"youTubeId": "G1hfW_kS8oY"
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ various UI components of Mat3ra web platform.
<iframe class="gifffer"
width="100%"
height="100%"
src="https://www.youtube.com/embed/hT1VBFH7HHo"
src="https://www.youtube.com/embed/hT1VBFH7HHo?controls=0"
frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
Expand Down
2 changes: 1 addition & 1 deletion lang/en/docs/jobs/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,5 +64,5 @@ Below we present a short video demonstrating how to create jobs in Mat3ra
platform.

<div class="video-wrapper">
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/hT1VBFH7HHo" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/hT1VBFH7HHo?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
2 changes: 1 addition & 1 deletion lang/en/docs/jupyterlite/accessing-jupyterlite.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,5 @@ In the below tutorial, we present how we can use JupyterLite session in Mat3ra
platform to postprocess or analyze data.

<div class="video-wrapper">
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/PXosTghiAzs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/PXosTghiAzs?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
2 changes: 1 addition & 1 deletion lang/en/docs/tutorials/dft/electronic/hubbard.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ Once the job is finished, the Hubbard U values are shown in the **Results** tab.
In the below animation, we go through an example calculation.

<div class="video-wrapper">
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/33PykNO8QlQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/33PykNO8QlQ?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>


Expand Down
2 changes: 1 addition & 1 deletion lang/en/docs/tutorials/dft/electronic/spin-magnetic-qe.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,5 +104,5 @@ down spin components, respectively.
In the below video, we go through an example calculation.

<div class="video-wrapper">
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/-FVgw46gh3w" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/-FVgw46gh3w?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -102,5 +102,5 @@ topological Dirac states clearly.
In the below video, we go through an example calculation.

<div class="video-wrapper">
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/Zr1jcalLYPU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/Zr1jcalLYPU?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -127,5 +127,5 @@ plotting program for visualization.
In the below tutorial, we go through the whole process.

<div class="video-wrapper">
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/v7c52D4p1gs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/v7c52D4p1gs?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
2 changes: 1 addition & 1 deletion lang/en/docs/tutorials/jobs-cli/qe-gpu.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,5 +86,5 @@ and find what gives you the best performance.
## Step-by-step screenshare video

<div class="video-wrapper">
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/trLDEwWc3ho" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/trLDEwWc3ho?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -126,5 +126,5 @@ Jupyter Notebook session in our platform to further analyze output files.
In the below animation, we walk you through the whole workflow process.

<div class="video-wrapper">
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/daTwJyMPIvE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/daTwJyMPIvE?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
10 changes: 5 additions & 5 deletions lang/en/docs/tutorials/platform-access.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# Accessing the Platform

There are three main modes of accessing the Mat3ra platform:
There are three main modes of accessing the Mat3ra platform:

- (1) Web/browser interface
- (2) [Command line interface](../cli/overview.md) (CLI), and
- (1) Web/browser interface
- (2) [Command line interface](../cli/overview.md) (CLI), and
- (3) [REST API](../rest-api).

- Below we present a short video demonstrating various ways of accessing the Mat3ra platform. It covers:

- 00:54 Web platform overview
- 01:42 Materials designer
- 02:26 Command Line Interface
- 02:26 Command Line Interface
- 02:57 SSH to login node
- 04:01 Web terminal
- 04:13 API access
Expand All @@ -20,5 +20,5 @@ There are three main modes of accessing the Mat3ra platform:
## The Video

<div class="video-wrapper">
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/vERldqp77bU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe class="gifffer" width="100%" height="100%" src="https://www.youtube.com/embed/vERldqp77bU?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
2 changes: 1 addition & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ extra_javascript:
copyright: <a target="_blank" href="https://mat3ra.com">Exabyte Inc</a>. All rights reserved. | <a target="_blank" href="https://platform.mat3ra.com">Back to platform</a>

extra:
version: "2025.12.25"
version: "2026.1.22"
preload_javascript:
- /extra/js/preload_hotjar.js
- /extra/js/preload.js
Expand Down