-
Notifications
You must be signed in to change notification settings - Fork 0
/
Singularity
122 lines (91 loc) · 5.35 KB
/
Singularity
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Bootstrap: docker
From: nvidia/cuda:7.5-devel-ubuntu14.04
%setup
#Runs on host. The path to the image is $SINGULARITY_ROOTFS
%post
#Post setup, runs inside the image
#Default mount paths
mkdir /scratch /data /shared /fastdata
#Nvidia driver mount paths, only needed if using GPU
mkdir /nvlib /nvbin /cuda
#Add nvidia driver paths to the environment variables
echo "\n #Nvidia driver paths \n" >> /environment
echo 'export PATH="/nvbin:$PATH"' >> /environment
echo 'export LD_LIBRARY_PATH="/nvlib:$LD_LIBRARY_PATH"' >> /environment
#Add NeuroKernel Dependencies
echo "deb http://us.archive.ubuntu.com/ubuntu/ trusty universe" >> /etc/apt/sources.list
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ trusty universe" >> /etc/apt/sources.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates universe" >> /etc/apt/sources.list
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates universe" >> /etc/apt/sources.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ trusty main restricted" >> /etc/apt/sources.list
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ trusty main restricted" >> /etc/apt/sources.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates main restricted" >> /etc/apt/sources.list
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates main restricted" >> /etc/apt/sources.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ trusty universe" >> /etc/apt/sources.list
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ trusty universe" >> /etc/apt/sources.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates universe" >> /etc/apt/sources.list
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates universe" >> /etc/apt/sources.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse" >> /etc/apt/sources.list
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ trusty multiverse" >> /etc/apt/sources.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse" >> /etc/apt/sources.list
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse" >> /etc/apt/sources.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://security.ubuntu.com/ubuntu trusty-security main restricted" >> /etc/apt/sources.list
echo "deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted" >> /etc/apt/sources.list
echo "deb http://security.ubuntu.com/ubuntu trusty-security universe" >> /etc/apt/sources.list
echo "deb-src http://security.ubuntu.com/ubuntu trusty-security universe" >> /etc/apt/sources.list
echo "deb http://security.ubuntu.com/ubuntu trusty-security multiverse" >> /etc/apt/sources.list
echo "deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse" >> /etc/apt/sources.list
echo "deb http://extras.ubuntu.com/ubuntu trusty main" >> /etc/apt/sources.list
echo "deb-src http://extras.ubuntu.com/ubuntu trusty main" >> /etc/apt/sources.list
echo "deb http://archive.ubuntu.com/ubuntu/ trusty main universe" >> /etc/apt/sources.list
apt-get -y update
apt-get -y --force-yes install vim \
curl \
libfreetype6-dev \
libpng12-dev \
libzmq3-dev \
python-numpy \
python-pip \
python-scipy && \
apt-get clean
apt-get -y install git
apt-get -y install wget
apt-get install mlocate
apt-get -y install linux-headers-`uname -r`
apt-get -y install wget libibverbs1
apt-get -y install libnuma1
apt-get -y install libpmi0
apt-get -y install libslurm26
apt-get -y install libtorque2
apt-get -y install libhwloc-dev
apt-get -y install libffi-dev
apt-get -y install libssl-dev
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -p miniconda
rm miniconda.sh
export PATH="/miniconda/bin:${PATH}"
conda config --add channels https://conda.binstar.org/neurokernel/channel/ubuntu1404
conda install -y neurokernel_deps
conda install -y pycuda=2015.1.3=np110py27_cuda75_0
# clone modified neurokernel, with interface eth1, required if docker is causing issues.
git clone https://github.com/AdamRTomkins/neurokernel.git
cd neurokernel
git fetch && git checkout shARC && python setup.py install
cd ../
git clone https://github.com/AdamRTomkins/neurodriver.git
cd neurodriver
git fetch && python setup.py install
cd examples/generic/data/
python gen_generic_lpu.py
cd ../../../../
# Add executable permissions to miniconda
chmod -R ugo+rwx /miniconda
export PATH="/miniconda/bin:${PATH}"
echo 'export PATH="/miniconda/bin:${PATH}:$PATH"' >> /environment
pip install autobahn[twisted]
%runscript
#Runs inside the image every time it starts up
%test
#Test script to verify that the image is built and running correctly