This repository collects interactive applications that run on compute nodes using Open OnDemand. All applications are executed using Singularity, a Linux container runtime. The Singularity image OS is Rocky Linux 9.7, and the supported architectures are x86_64 and aarch64.
In this repository, interactive applications are categorized into "Visualization Applications" and "Development Applications". The applications currently provided are listed below.
| Name | x86_64 | aarch64 | Description |
|---|---|---|---|
| Gnuplot | 5.4.3 | 5.4.3 | Command-line driven graphing program |
| ParaView | 6.0.1 | 5.11.1 | Scientific and technical data visualization program |
| XCrySDen | 1.6.3 | 1.6.3 | Visualization program for crystal and molecular structures |
| PyMOL | 2.5.0 | 2.5.0 | Visualization and analysis program for 3D structures of biomacromolecules |
| GrADS | 2.2.3 | - | Visualization and analysis program for gridded data in meteorology and climate fields |
| VisIt | 3.4.2 | - | Visualization and analysis program supporting various scientific data formats |
| VESTA | 3.5.8 | - | Visualization program for crystal structures and 3D data such as electron/nuclear densities |
| Smokeview | 6.10.6 | - | Visualization program for displaying results from FDS and CFAST |
| OVITO | 3.14.1 | - | Visualization and analysis program for large datasets such as particle simulations |
| ImageJ | 1.54 | - | Image processing software running on the Java Virtual Machine |
| Name | x86_64 | aarch64 | Description |
|---|---|---|---|
| Desktop (Xfce) | 4.18 | 4.18 | Lightweight desktop environment running on the X Window System |
| VSCode | 4.108.2 | 4.108.2 | Code editor developed by Microsoft |
| JupyterLab | 4.5.3 | 4.5.3 | Interactive execution environment for programs running in a web browser |
| ttyd | 1.7.7 | 1.7.7 | Command-line tool that enables terminal access through a web browser |
Save this repository under /var/www/ood/apps/sys/.
$ cd /var/www/ood/apps/sys
$ sudo git clone https://github.com/OpenOnDemandJP/oodjp_apps.gitUse containers/rocky97_x86_64.def if the compute node architecture is x86_64, or containers/rocky97_aarch64.def if it is aarch64.
Commands are shown below.
Build time is about 20 minutes, depending on server and network performance.
$ singularity build --fakeroot rocky97_x86_64.sif rocky97_x86_64.def$ singularity build --fakeroot rocky97_aarch64.sif rocky97_aarch64.defEdit /var/www/ood/apps/sys/oodjp_apps/utils/config.yml to match your environment.
Settings for unused architectures are ignored, so you do not need to modify them.
xdg_data_home: Directory for storing application datacontainer_image: Path to the Singularity image
xdg_data_home:
x86_64: "<%= ENV['HOME'] %>/ondemand/x86_64"
aarch64: "<%= ENV['HOME'] %>/ondemand/aarch64"
container_image:
x86_64: /cloud_opt/ondemand/rocky97_x86_64.sif
aarch64: /cloud_opt/ondemand/rocky97_aarch64.sifCreate a symbolic link under /var/www/ood/apps/sys/ for each interactive application you want to use.
The example below is for Desktop.
$ cd /var/www/ood/apps/sys/
$ sudo ln -s oodjp_apps/apps/Desktop .Next, edit the application configuration files. For syntax details, refer to the Open OnDemand manuals linked below.
Use the data in sample_images/.
For details, see sample_images/README.md.
- Keep in mind that the development environments inside the Singularity container and on the host are different. This is especially important when using development applications. It is more convenient if the development environments in the container and on the host are aligned. To do that, in addition to proper bind settings for directories, you need to pass host environment variables, but even then it is difficult to make them completely identical. When possible, we recommend installing development applications on the host and using them from Open OnDemand without Singularity.
- The aarch64 Singularity container uses SBSA (Server Base System Architecture)
nvidia-driver-libs. If you want to use this container on a non-SBSA server, create a container that does not usenvidia-driver-libs. - The original ttyd sets one-time passwords from the command line, so depending on your environment, the password may be visible using the
pscommand. To avoid this, we forked and used the new ttyd, which allows you to set one-time passwords via environment variables.