forked from BIDData/BIDMach
-
Notifications
You must be signed in to change notification settings - Fork 0
/
bidmach
executable file
·100 lines (87 loc) · 3.61 KB
/
bidmach
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
#!/bin/bash
# export JAVA_HOME="" # Set here if not set in environment
# export CUDA_PATH="" # Set here if not set in environment
MEMSIZE="-Xmx14G"
export JAVA_OPTS="${MEMSIZE} -Xms128M -Dfile.encoding=UTF-8" # Set as much memory as possible
BIDMACH_ROOT="${BASH_SOURCE[0]}"
if [ ! `uname` = "Darwin" ]; then
BIDMACH_ROOT=`readlink -f "${BIDMACH_ROOT}"`
else
while [ -L "${BIDMACH_ROOT}" ]; do
BIDMACH_ROOT=`readlink "${BIDMACH_ROOT}"`
done
fi
BIDMACH_ROOT=`dirname "$BIDMACH_ROOT"`
pushd "${BIDMACH_ROOT}" > /dev/null
BIDMACH_ROOT=`pwd`
BIDMACH_ROOT="$( echo ${BIDMACH_ROOT} | sed 's+/cygdrive/\(.\)+\1:+' )"
JCUDA_LIBDIR="${BIDMACH_ROOT}/lib"
LIBDIR="${BIDMACH_ROOT}/lib"
JCUDA_VERSION=`echo lib/jcuda-natives-*.jar | sed 's/.*jcuda-natives-//' | sed 's/-.*\.jar//'`
BIDMAT_VERSION=`echo lib/BIDMat-*-cpu-*.jar | sed 's/.*BIDMat-//' | sed 's/-cpu.*\.jar//'`
OSS=`uname -a`
if [ "$ARCH" = "" ]; then
ARCH=`arch`
fi
if [[ "$OSS" == Darwin* ]] ; then
if [[ "$OSS" == *x86_64 ]] ; then
ARCH="x86_64"
fi
OSS="apple"
elif [[ "$OSS" == Linux* ]] ; then
OSS="linux"
elif [[ "$OSS" == CYGWIN* ]] ; then
if [[ "$OSS" == *WOW* ]] ; then
ARCH="x86_64"
fi
OSS="windows"
else
echo "OS not supported" $OSS
exit 1
fi
popd > /dev/null
if [ "$OSS" = "windows" ]; then
if [ ! "${JAVA_HOME}" = "" ]; then
JAVA_HOME=`${BIDMACH_ROOT}/shortpath.bat "${JAVA_HOME}"`
export JAVA_HOME=`echo ${JAVA_HOME} | sed 's_\\\\_/_g'`/bin
fi
fi
BIDMACH_LIBS="${BIDMACH_ROOT}/target/BIDMach-${BIDMAT_VERSION}.jar;\
${LIBDIR}/BIDMach-${BIDMAT_VERSION}-cpu-${OSS}-${ARCH}.jar;\
${LIBDIR}/BIDMach-${BIDMAT_VERSION}-gpu-${OSS}-${ARCH}.jar;\
${LIBDIR}/BIDMat-${BIDMAT_VERSION}.jar;\
${LIBDIR}/BIDMat-${BIDMAT_VERSION}-cpu-${OSS}-${ARCH}.jar;\
${LIBDIR}/BIDMat-${BIDMAT_VERSION}-gpu-${OSS}-${ARCH}.jar;\
${LIBDIR}/ptplot-1.0.jar;${LIBDIR}/ptplotapplication-1.0.jar;${LIBDIR}/protobuf-java-3.1.0.jar;\
${LIBDIR}/jhdf5-3.2.1.jar;${LIBDIR}/jhdf5-3.2.1-${OSS}-${ARCH}.jar;\
${LIBDIR}/commons-math3-3.2.jar;${LIBDIR}/lz4-1.3.jar;${LIBDIR}/json-io-4.1.6.jar;\
${LIBDIR}/jfreechart-1.0.19.jar;${LIBDIR}/jcommon-1.0.23.jar"
JCUDA_LIBS=""
for lib in jcuda jcublas jcufft jcurand jcusolver jcusparse; do
JCUDA_LIBS="${JCUDA_LIBS};${LIBDIR}/${lib}-${JCUDA_VERSION}.jar;${LIBDIR}/${lib}-natives-${JCUDA_VERSION}-${OSS}-${ARCH}.jar"
done
if [ ! -e ${LIBDIR}/IScala.jar ]; then
echo "Downloading Iscala jar"
source="http://people.eecs.berkeley.edu/~jfc/biddata"
curl -o ${LIBDIR}/IScala.jar ${source}/lib/IScala.jar
fi
ALL_LIBS=";${LIBDIR}/IScala.jar;${BIDMACH_ROOT}/BIDMach.jar;${BIDMACH_LIBS};${JCUDA_LIBS};${JAVA_HOME}/lib/tools.jar"
if [ "$OSS" = "windows" ]; then
if [ ! "${CUDA_PATH}" = "" ]; then
NEWPATH=`${BIDMACH_ROOT}/shortpath.bat "${CUDA_PATH}"`
NEWPATH=`echo $NEWPATH | sed 's_\\\\_/_g'`/bin
fi
else
ALL_LIBS=`echo "${ALL_LIBS}" | sed 's/;/:/g'`
fi
if [ "$1" = "notebook" ]; then
shift 1
if [ ! -z "$@" ]; then
KERNEL_CMD="[\"java\", \"-cp\", \"${ALL_LIBS}\", \"${MEMSIZE}\", \"-Xms128M\", \"-Dfile.encoding=UTF-8\", \"org.refptr.iscala.IScala\", \"--profile\", \"{connection_file}\", \"--parent\", \"$@\"]"
else
KERNEL_CMD="[\"java\", \"-cp\", \"${ALL_LIBS}\", \"${MEMSIZE}\", \"-Xms128M\", \"-Dfile.encoding=UTF-8\", \"org.refptr.iscala.IScala\", \"--profile\", \"{connection_file}\", \"--parent\"]"
fi
ipython notebook --profile=scala --KernelManager.kernel_cmd="$KERNEL_CMD"
else
${BIDMACH_ROOT}/scripts/scala/scala -Dscala.repl.maxprintstring=8000 -nobootcp -toolcp "${ALL_LIBS}" -cp "${ALL_LIBS}" -Yrepl-sync -i ${LIBDIR}/bidmach_init.scala ${NOREPL} "$@"
fi