Servers

How to get server access?

Generate a public key using ssh-keygen -b 4096 and send the file ~/.ssh/id_rsa.pub to Timo L (with ~ being you home directory). After your account has been created you can access it by the command ssh <username>@norcal.physik3.de or ssh <username>@134.76.92.76.

For comfortable access you might want to create a ~/.ssh/config which looks like this:

Host norcal
    HostName norcal.physik3.gwdg.de
    Port 22
    User <username>

Please take care not to waste any resources and interfere with other users.

Norcal

norcal.physik3.gwdg.de

Rules

  • Don’t consume all the computing resources on your own. Use htop to see if other users are currently working on norcal. If you need all resources talk to the other users.

  • Make the datasets you use public for all users (exept they are secret) by storing them at /media/resources/[your_dataset]. Please also add a readme.txt briefly explaining the dataset and its license.

Available Libraries and Tools

There are several libraries available on norcal:

  • Theano
  • Tensorflow
  • OpenCV (incl. Python API)
  • Boost
  • Cython
  • Caffe (incl. Python API)

These tools might also be helpful for you:

  • Jupyter Notebook
  • Virtualenv

Caffe vs. Theano vs. Tensorflow

Caffe, theano, tensorflow and keras enable deep learning. However, they are quite different libraries. Keras is a frontend for theano or tensorflow (you can choose), i.e. it requires at least one of them to be installed as well. I recommend to use caffe if you use C++ and are interested in a powerful classificator or feature extractor using an existing, fixed model (such as AlexNet or GoogLeNet). Tensorflow also provides a C++ API. If you want to build you own networks (or just differentiable functions) with a custom architecture I recommend keras with theano or tensorflow backend.

Custom Libraries

If you need a specific version of a library please install it locally for your user (pip3 install <package> --user). virtualenv is a useful tool to manage multiple python environments, which is rarely required, though.

Setup

You need to set a couple of environment variables (e.g. in your ~/.bashrc):

Tensorflow

Use only one GPU (your adivsor has to tell you which GPU number):

export CUDA_VISIBLE_DEVICES="0"

Theano

Create a file .theanorc in your home folder with the following content (gpu0 or gpu1):

[global]
device = gpu0
floatX = float32

CuDNN

export LD_LIBRARY_PATH=$LD_LIBARY_PATH:/opt/cudnn-v5.1/cuda/lib64
export CPATH=$CPATH:/opt/cudnn-v5.1/cuda/include
export LIBRARY_PATH=$LIBARRY_PATH:/opt/cudnn-v5.1/cuda/lib64

Have Fun!

Neural Data Science Group
Institute of Computer Science
University of Goettingen