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
htopto 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.txtbriefly 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!
