Singularity

From Robin

Jump to: navigation, search

Contents

Running containers on IFIs clients!

Do you want to use ROS/openpose/bare bone Ubuntu/bare bone Mint/ etc.? singularity is the software for you!

Read Singularitys introduction here: https://sylabs.io/2023/03/an-introduction-to-singularity-containers/

Use-case:

Rather than talking about what singularity is, lets look into use-cases:

1: Running ROS and robins Tiago robot in a simulator environment:

When using one of the platforms available in ROBIN, it makes sense to have a standardized setup to get you started in your research activities. We have created a (currently) small library of prebuilt singularity images (.sif-files) that can be run with a single command:

$ singularity exec --nv -p /projects/robin/programs/sing-con/ros-melodic-pal/ros-melodic-pal.sif bash -c 'source /opt/ros/melodic/setup.bash; source /tiago_public_ws/devel/setup.bash; roslaunch tiago_2dnav_gazebo tiago_mapping.launch public_sim:=true robot:=steel'

See Fig.1 for output or check out: https://github.uio.no/robin-engineer/tiago_sim_setup

2: Course setups

Starting out with a bare bone ROS container, the students can build their ROS environments themself starting with:

$ singularity shell /projects/robin/programs/sing-con/ros-kinetic/ros-kinetic-desktop-full.sif

Now, the user can build their own ROS setup:

$ source /opt/ros/kinetic/setup.sh
$ printenv | grep ROS

See Fig.2 or check out: https://github.uio.no/robin-engineer/singularity_crustcrawler_setup

3: Running openpose:

Let's try a specific software that has a lot of dependancies in driver and python-modules; namly openpose. This particular container requires a specific range of Nvidia GPUs. One of the GPU types openpose works with is GTX1080Ti. On rudolph.ifi.uio.no we have three GTX1080Ti. Run openpose's demo: (remember to run on rudolph)

$ singularity exec --nv -p /projects/robin/programs/sing-con/openpose/openpose.sif bash -c 'cd /openpose/; ./build/examples/openpose/openpose.bin'

See Fig.3 or check out: https://github.uio.no/robin-engineer/openpose_singularity/

4: Building your own containers:

Do you want a custom setup? Feel free to build your own containers:

$ singularity build --remote openpose.sif openpose.def

Singularity lets you build from docker hub (to name one) if you wish.

Portability and security

The portability is one of the great features of running containers. You can run on your desktop at your desk, run on one of our Deep learning workstations or run on HPC such as robin-hpc.

When using the IFI RHEL clients, you have full backup of all your code and date, and good security.

Using singularity on HPC

Examples on how to use singularity on HPC, can be found here.

Interested?

You can read more about singularity on sylabs.io or try out the commands mentioned above yourself.

Personal tools
Front page