Setup for deep learning workstation

This page covers the steps for setting up a machine primarily intended for deep learning analyses. This is assuming Ubuntu has already been installed.

Ubuntu installation notes:

Other tips/notes on running analyses: KerasTips

Initial setup

Early on, presumably right after installation of OS, remember to update all packages:

sudo apt-get update
sudo apt-get upgrade

Package installation

These two are definite necessities. In particular, need to install openssh-server before basically anything else because otherwise we can't get SSH access.

sudo apt-get openssh-server
sudo apt-get install tightvncserver

The following may not be necessary anymore -- it was for our old VNC setup. But it shouldn't hurt to install these packages anyway, just in case we want to use something like the old setup again.

sudo apt-get install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

OLD VNC server configuration

# ! /bin/sh [no spaces]
[-x /etc/vnc/startup] && exec /etc/vnc/startup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & x-window-manager & gnome-panel & gnome-settings-daemon & metacity & nautilus

NEW VNC server configuration

Steps roughly follow https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-16-04. Exact instructions below:

Install the following packages:

sudo apt-get install xfce4 xfce4-goodies
sudo apt-get install autocutsel

Next, start up VNC:

vncserver:yourvncnumber

It will prompt you to set and confirm a password; do so. Then end the session:

vncserver -kill :yourvncnumber

This creates ~/.vnc/xstartup.

Either edit ~/.vnc/xstartup , or delete it and make a new file. IF MAKING A NEW FILE, enter this command as well:

chmod 755 ~/.vnc/xstartup

The new contents of ~/.vnc/xstartup should be:

 #!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

Adding users

sudo adduser newusername
sudo usermod -aG sudo newusername

Keras setup

Install and run Anaconda:

ls /opt/anaconda3
sudo bash [name of anaconda .sh file]

pip install theano
pip install keras
apt-get install git

Edit keras.json (in home folder)

Change backend: from tensorflow -> theano

Change image_dim_ordering: from tf -> th

Install CUDA 8 and CUDNN:

http://askubuntu.com/questions/788323/change-runlevel-on-16-04

http://askubuntu.com/questions/481414/install-nvidia-driver-instead-nouveau (top solution)

Add CUDA directory cuda/bin to path

Copy cudnn.h to cuda include directory

Copy shared libraries to cuda library

Make .theanorc in home directory

Set CUDA/root environment variable

Change ldconfig in cuda lib directory: sudo ldconfig /usr/local/cuda/lib64 (unclear how often we have to do this -- each restart? Per user?)

Mount Farnsworth

Only needs to be done once. Will only unmount if we do so explicitly or if Agnew/Calculon/Lrrr/Ndnd gets rebooted (or if their network connection dies)

Install cifs-utils package: sudo apt-get install cifs-utils sudo mkdir /mnt/eeg_data_analysis (or whatever the share is named)

sudo mount -t cifs -o username=matt //farnsworth/eeg_data/analysis /mnt/eeg_data_analysis/ (replace username with your Farnsworth username)

Start VNC session

Enter in Terminal:

ssh yourusername@agnew/calculon.local
vncserver :yourvncnumber -geometry  (whatever, e.g.) 1280x800

Enter in VNC:

agnew/calculon.local :yourvncnumber

End VNC session

vncserver -kill :yourvncnumber