diff --git a/helix-playground/src/main/resources/code_tf.py b/helix-playground/src/main/resources/code_tf.py
new file mode 100644
index 0000000..221e960
--- /dev/null
+++ b/helix-playground/src/main/resources/code_tf.py
@@ -0,0 +1,30 @@
+import tensorflow as tf
+import numpy as np
+import numpy.polynomial.polynomial as poly
+
+from random import randint
+
+tf.reset_default_graph()
+num_neurons = 5000
+
+indices = []
+values = []
+for i in range(num_neurons):
+    for j in range(num_neurons):
+        x  = 3
+        if i != j:
+            number = randint(0, 99)
+            if number < 5:
+                indices.append([i, j])
+                values.append(1.0/5)
+
+connections = tf.SparseTensor(indices=indices, values=values, dense_shape=[num_neurons, num_neurons])
+
+neuron_values = tf.Variable(np.ones(num_neurons), dtype=tf.float32)
+
+mul_product = tf.sparse_tensor_dense_matmul(connections, tf.reshape(neuron_values, shape=(num_neurons, 1)))
+
+sess = tf.Session()
+sess.run(tf.global_variables_initializer())
+
+output = sess.run(mul_product)
\ No newline at end of file
diff --git a/helix-playground/src/main/resources/job_tf.pbs b/helix-playground/src/main/resources/job_tf.pbs
new file mode 100644
index 0000000..a4d3485
--- /dev/null
+++ b/helix-playground/src/main/resources/job_tf.pbs
@@ -0,0 +1,18 @@
+#!/bin/bash
+# file to submit non interactive jobs to bigred2
+
+#PBS -l nodes=1:ppn=16
+#PBS -l gres=ccm
+#PBS -q debug_gpu
+#PBS -l walltime=00:30:00
+
+#PBS -o STDOUT.txt
+#PBS -e STDERR.txt
+
+#PBS -m bea
+#PBS -M supun.nakandala@gmail.com
+
+module load ccm
+module load anaconda2/4.2.0
+source activate tensorflow_env
+ccmrun python ~/airavata/code_tf.py
\ No newline at end of file
diff --git a/helix-playground/src/main/resources/ssh/id_rsa.pub b/helix-playground/src/main/resources/ssh/id_rsa.pub
new file mode 100644
index 0000000..c3ac0b0
--- /dev/null
+++ b/helix-playground/src/main/resources/ssh/id_rsa.pub
@@ -0,0 +1,2 @@
+
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCr9VP22p0I+2W5o/klPv/OvfTihvcBQwZXKPrSLFF+OB9nVNtIfDDETIwwex7mknn3Kks1jFvEdKMrvRjOFeFInDv3N40LjohHu4v2tiawAON7MOLpz/iX5dWp0wteixlDKfGe7PAEMAk054kLSDiB3em2zBK4d9ApedA5k2JG1dmAsNK0KkbfgFPd5+iXrzgTg4XiefHQoaCSUyS7w6t8645djbYOP+b+SJtgslaf2RqeoBVvrA6YQJE1pUYjcm9yL4KwyqaPo+N/2XZ6xys5+WN8svtL3uRduENU1MQSTpdFq+GLCY4SgLMFgLJKoxHjcjPRfKyE/eYk1gQA7b/Z snakanda@149-161-141-51.dhcp-bl.indiana.edu
diff --git a/helix-playground/src/main/resources/ssh/known_hosts b/helix-playground/src/main/resources/ssh/known_hosts
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/helix-playground/src/main/resources/ssh/known_hosts
