Theano is available on HCC resources via the modules system. Both CPU and GPU versions are available on Crane. Additionally, installs for both Python 2.7 and 3.6 are provided.
Theano attempts to write to a ~/.theano
directory in some
circumstances, which can cause errors as the /home
filesystem is
read-only on HCC machines. As a workaround, create the directory on
/work
and make a symlink from /home
:
mkdir -p $WORK/.theano
ln -s $WORK/.theano $HOME/.theano
This only needs to be done once on each HCC machine.
To use the CPU version, simply load the module and run your Python code. You can choose between the Python 2.7, 3.5 or 3.6 environments:
module load theano/py27/1.0
python my_python2_script.py
or
module load theano/py35/1.0
python my_python3_script.py
or
module load theano/py36/1.0
python my_python3_script.py
To use the GPU version, first create a ~/.theanorc
file with the
following contents (or append to an existing file as needed):
[global]
device = cuda
Next, load the theano module:
module load theano/py27/0.9
To test the GPU support, start an interactive job on a GPU node and import the theano module within the Python interpreter. You should see output similar to the following:
Python 2.7.15 | packaged by conda-forge | (default, May 8 2018, 14:46:53)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-15)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import theano
Using cuDNN version 7005 on context None
Mapped name None to device cuda: Tesla K20m (0000:03:00.0)