In this example, we will add a new Jupyter Notebook app based on an installation in this user's group project space


There are several things you need to have in place before you'll be able to follow along with this document:

1. Install Anaconda Python in your group's project directory.  Instructions can be found here

2. Configure your environment and create an additional module for using your python in OnDemand.  Instructions can be found here

3. Request the configuration of the OnDemand development environment for your account.  See this article for more information





Click on the </>Develop menu option and select "My Sandbox Apps"




Click on the "New App" button and then click on the "Clone Existing App" button:



NOTE: If you do not already have a SSH key in the system, you will have to create one.  Click the button to generate the SSH key and then go back to Clone Existing App.



Enter a directory name which will also be your app name.  Here we're using jupyter_test.
Recommended:  choose a unique, but short, name so you don't confuse it with existing CCR apps


Then enter a Git repository to clone from.  Here we're using an example repository pre-configured for running on CCR's systems: https://github.com/ubccr/ood_example_jupyter.git 


Make sure to check the checkbox next to: Create a new Git Project from this?


Then click the Submit button:



You now have a Jupyter notebook app configured to run with your version of python!  Click the "Launch Jupyter Notebook" button.  Enter the partition and qos options you require and any optional information such as account, hours, nodes, and email address.  Then click "Launch".






NOTICE - The selected app is under "Interactive Apps [Sandbox] and is highlighted in blue.  If you'd like to change the name of the app, go to Develop, Sandbox Apps and click on the Jupyter Notebook app.  Then click on Edit Metadata:





Change the name to whatever you'd like.  Then click the Submit button:




You'll notice the name changed everywhere, including on the list of interactive app:




Troubleshooting

Ideally, your app should just work and launch Jupyter Notebook on a CCR node.  However, if the job fails, you will need to investigate the cause of the problem.  You'll find output files for every OnDemand job in your home directory:


/user/<username>/ondemand/data/sys/dashboard/batch_connect/dev/<your_app_name>/output/

Job directories are assigned a random string of characters so look at the latest directory created.  Inside that will be a file named output.log

View the error messages found and see if your problems are python related or something else.




To run your Jupyter Notebook app on a private faculty cluster:


This example is setup to run on the ub-hpc (academic) cluster.  If you have access to the Faculty or Industry clusters at CCR, you can update your app so that it will run on that cluster.  Navigate to your development directory, in a shell:


cd /user/<username>/ondemand/dev/<your_app_name>


edit the file form.yml and change the line that reads:

vi form.yml

cluster: "ub-hpc"


You will need to have access to another cluster at CCR in order to run your app on that cluster.  Make your change and save your file.  NOTE: You can not point an app to run on more than one cluster.  If you need to do so, you must create a separate app for each cluster.