Logo
 

General Questions

Read this article.


  1. SSH into the server using your non-sudo user account.
  2. It is assumed that you are installing conda on your home directory ~/miniconda
    However, given how Peradeniya storage system works, you might have instructions to install it in some other project directory.
  3. Go to the miniconda/conda download webpage and copy the download link for the installer. For example, Miniconda3 Linux 64 bit installer on
    https://docs.conda.io/en/latest/miniconda.html is https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
  4. Run the following commands on the SSH shell. (Mind the spaces)
    Command Description
    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    Download the installer.
    bash Miniconda3-latest-Linux-x86_64.sh
    Run the .sh bash installer.
    ENTER To continue with the installer
    Keep reading the agreement to the end
    yes
    To agree
    ~/miniconda
    Select an installation folder. This is just an example. You may use something that you see fit.
    no
    Do not run the init.
    Ideally, you should be able to. However, our multiple NFS (network file system) makes things very complicated.
    ~/miniconda/bin/conda init --user bash
    ~/miniconda/bin/conda init

    Here, we make sure we run the init from our new installation.
    --user

    This change is only for your user account
    bash

    This change is only for your ~/.bashrc
    --user
    This change is only for your user account.
    Logout and login to the SSH shell again
    source ~/.bashrc
    Once this is run, you should see (base) on your SSH prompt.
    which conda

    which python
    You can use these commands to verify if you are using the correct conda/python installations.
  5. This document is a good quick start guide for conda.
  6. When you log in through SSH later, if you don't see (base) in the prompt, you have to run source ~/.bashrc
  7. If you have any questions, you can reach out to the following people.

Source: Google Doc


Method 1: Please contact the admin and request them run update-alternatives as documented here .

Method 2: All gcc/g++ versions are installed in /usr/bin/ . Following is an example on how you can use gcc-8 as gcc using a simple trick (without sudo).


      gcc -v#You will see what the current gcc version is mkdir ~/symlinks cd ~/symlinks ln -s /usr/bin/gcc-8 ./gcc #We are creating a
      symbolic link called gcc to gcc-8 export PATH="~/symlinks:$PATH" #We add the new gcc to the path (before the existing path) cd ~ gcc
      -v #Now you get the gcc-8 when you run gcc command
    

If you are working on a heavy CPU bound computation, use Aiken. Kepler would be suitable if you are working on deep learning because of better GPUs and ready made datasets on the server.

You can check the current GPU utilization of our servers using the GPU Usage Meter .


First, list the available GPUs and their IDs by running:

nvidia-smi -L

You will see output like:

GPU 0: NVIDIA A100 (UUID: GPU-...)
GPU 1: NVIDIA A100 (UUID: GPU-...)
GPU 2: NVIDIA A100 (UUID: GPU-...)

The numbers (0, 1, 2) are the GPU IDs. Use the CUDA_VISIBLE_DEVICES environment variable to limit which GPUs your program can use.

To use only GPU 0:

export CUDA_VISIBLE_DEVICES=0

To use GPU 0 and GPU 2:

export CUDA_VISIBLE_DEVICES=0,2

Then run your code as usual:

python trainer.py

You can verify which GPUs are visible by running:

echo $CUDA_VISIBLE_DEVICES

This is useful when sharing a server with others, so your program does not occupy all GPUs.


Ask headce[at]eng.pdn.ac.lk.

Individual students have their storage as babbage.ce.pdn.ac.lk:/home/e14000 [Not really, but don't worry]. This storage is mounted to the same location to every other server through network interfaces. However, you can request additional storage for your projects on individual servers. This storage is usually faster than babbage.


Make a post on #ask-for-help on #PeraCOM Discord with the following information.

  1. Which server do you need this folder to be created on?
  2. Project name (This should follow the cepdnaclk github repo naming convention. E.g. e14-co542-deep-learning, e15-4yp-object-detection, pg-deepselectnet).
  3. E numbers of the project group (this can be one or more students).If you are a postgrad student, your aiken/tesla username is your "e number".
  4. Endorsing academic staff member (this can be the course coordinator or the project adviser).

We will create a unix group and a folder with chmod 770 permission on the server. We will update this information on the "Server groups, folders, and datasets" Google sheet on this web page .

Please note that every folder comes with an expiry date. Check the date on the Google sheet and make sure that your endorsing academic staff member sends a time extension request (e.g. "extend the expiration date of kepler:/e14-4yp-explainable-ml by 6 months") to webmaster.github.ce@eng.pdn.ac.lk when it is close to the expiry date.

Note: