v1.0
Start Here

Option 3: Using Nero GCP

A High-Powered, Paid Option

The ☞ Nero Computing Platform is another Google Cloud-based computational environment that charges based on storage and computational resource usage, and can support large, computationally-intensive analyses. To use this platform for analytic purposes, coding skills are necessary.

Recommended for: Research teams that (1) only contain Stanford personnel/students and individuals with fully-sponsored SUNets (i.e with a Stanford email address), (2) who have the necessary IRB/DRA/DUA agreement(s), (3) funding and a valid PTA, and (4) whose projects are >10TB, need a lot of GPUs, need complex code to run interrupted, or want to use GCP services like BigQuery, Cloud Storage, Compute Engine, etc.


Optimal Use

  • R & RStudio
  • Python
  • SQL
  • Stata (purchase of a license needed)
  • Slurm & terminal consoles available
  • Is Cloud-based & accessed via a web-browser.

Costs

These machines are in Google Cloud so there are cloud costs and setup costs but they are not prohibitive. Approximately $100- 400/month for a typical machine.

You can access Google’s price calculator here (though there’s a Stanford discount that is not reflected in the calculator)


Benefits

  • Stability: Because Nero is based in Google Cloud, downtimes are extremely rare.
  • Flexibility: The computational resource allocation is customizable to your team's needs.
  • Power: It can handle both computationally-intense methods and large cuts of data.
  • Speed: Queries run quickly once sufficient computational resources are allocated.

Drawbacks

  • Slightly more complex to bring data from Redivis into Nero: Must export the data from Redivis to Carina (and depending on the size of the data cut, approval may need to be requested for that through the PHS Data Portal), and then from Carina to Nero GCP.
  • Some associated costs (more details in 'Cost' section above).
  • You will need to work with SRC to set guardrails to prevent unexpected costs.
  • If a dataset is updated, you will have to export a cut of that update from Redivis to Nero in order for it to show up on Nero.
  • May not be ideal for Stata or SAS. Both languages are supported in Nero, but the Jupyter Notebook environment may be less familiar to those accustomed to the desktop applications.
  • You are responsible for ensuring that everyone with access to your Nero Project is currently approved (on the PHS Data Portal) to access the data that is stored within your Nero Project. Those not currently approved should be not have access to the data or the Nero Project.

Using the Platform

Prerequisites

Before using the Nero computing platform, you must first:


Connecting to Nero GCP

Please refer to this demo video, or to the steps below:

(1) Connect to Stanford VPN

Before visiting Nero, you need to join the Stanford Virtual Private Network (VPN) to secure your connection line.

  • Launch Cisco AnyConnect VPN client app
  • Select su-vpn.stanford.edu (or one of the other full-tunnel VPN options) from the drop down menu and click the "Connect" button.
**Figure 1:** The user interface of Cisco AnyConnect VPN client on Mac OS

Figure 1: The user interface of Cisco AnyConnect VPN client on Mac OS

"I can't login using the Cardinal Key" ☞ click here to troubleshoot.

(2) Go to the Nero GCP webpage

  • Launch a web browser (e.g., Chrome, Firefox, IE) from your personal computer and type the address ☞ console.cloud.google.com. This address will bring you to the Google Cloud Platform.

(3) Select your desired project

  • Demonstrated here.

Within Nero GCP, there are several different capabilities you may with to access.

  • Data Storage Buckets: Guidance here
  • BigQuery Data Querying: Guidance here
  • Compute Engine(s) for Statistical Analysis : Guidance here

The Compute Engines take the form of a ☞ JupyterLab web interface. Using this interface, you can write and run codes anywhere using modern data processing languages, such as, Python, R, SAS and Stata, in the form of a Notebook.

**Figure 2:** The JupyterLab Launcher UI tab on Nero

Figure 2: The JupyterLab Launcher UI tab on Nero

You will also have access to a Home folder and a shared directory within the Compute Engine.

IMPORTANT NOTE: You must disconnect/stop your compute engine when you finish your computational task because y__ou are charged money for the time that the compute engine is running. Instructions on how to stop the compute engine are available here.


Transferring Data to Nero GCP

Transferring PHS Data

  1. Sign-up for (free) Carina Access
  2. Export the data from Redivis to Carina
  3. Upload the data from Carina to Nero GCP

Transferring Local Data (such as from your laptop)

Transfer from laptop to Nero GCP (the process is the same as in this video, except that you do it from your laptop rather than from the no-longer-in-existance Nero on-premise):

  1. This requires certain command line tools. Select one, then download and install it.
  2. Run the Google Cloud Shell or Terminal.
  3. Type "gcloud auth login" to authenticate with your stanford account.
  4. Sample transfer of a local folder to Nero GCP bucket: gsutil -m rsync -r /local/folder/to/transfergs://nero-gcp-bucket-name-here/

Note: Some users can create buckets in their Nero GCP projects to transfer to. If you need a bucket to be created for you, please email srcc-support@stanford.edu for assistance.


Common Tasks within Nero GCP

Creating a Notebook

In this documentation, we are going to give an introduction to Jupyter Notebook on Nero using Python as an example. To create a new Python notebook project, click "Python 3" under the Notebook section. Other data processing languages are also available, such as: R, SAS and Stata.

**Figure 4:** An animated demonstration on creating a new Jupyter notebook on Nero

Figure 4: An animated demonstration on creating a new Jupyter notebook on Nero

Writing Code

Note: This is not a Python tutorial and this section is intended to give a quick look of the Jupyter Notebook on Nero.

In the Jupyter Notebook, you write a piece of code in a space called the cell, represented by a one-line empty text field. The height of the cell is adaptable to the size of your code, so it can get bigger. To run the code, press the SHIFT + ENTER keys on your keyboard or select "Run > Run Selected Cells" on the top menu bar.

**Figure 5:** Executing a Python command on Jupyter notebook (press Shift+Enter)

Figure 5: Executing a Python command on Jupyter notebook (press Shift+Enter)

If there is an output to be displayed, the notebook will display it immediately at the bottom of the cell, as illustrated by the example above.


Writing Documentation

The Jupyter Notebook supports the ☞ Markdown syntax to write a well-form documentation text. Similar to writing the Python code, you will write the Markdown-formatted text in a cell too. However, you need to change the setting for that specific cell from "Code" to "Markdown" as illustrated by the image below.

**Figure 6:** Switching between the "Code" mode and the "Markdown" mode on Jupyter notebook. Use the Markdown mode to write a documentation.

Figure 6: Switching between the "Code" mode and the "Markdown" mode on Jupyter notebook. Use the Markdown mode to write a documentation.

Use the same command: SHIFT + ENTER to render the Markdown-formatted text into a styled text.

Check these excellent public notebooks to see what other people have made and learn from them:

The Need for Openness in Data Journalism, by Brian Keegan; San Francisco's Drug Geography, a GIS analysis of public crime data in SF, by Lance Martin; Kaggle Competition: Titanic Machine Learning from Disaster, By Andrew Conti.


Appendix A: Changing the Kernel to R, SAS or Stata

The Jupyter Notebook on Nero supports other programming kernels, such as: R, SAS and Stata. You can select the different kernel from the beginning using the "Launcher" page, or you can change dynamically by selecting an item from the drop-down menu, as illustrated by the image below.

**Figure 7:** Switching different kernels on Jupyter notebook

Figure 7: Switching different kernels on Jupyter notebook


Appendix B: Important Jupyter Notebook Shortcuts

The table below shows several important keyboard shortcuts to speed-up your work in the Jupyter Notebook.

Note: You might need to enter the "command mode" first (by pressing the Esc button) to execute some of the shortcuts below (e.g., A = insert cell above, M = change the cell type to Markdown).

Keyboard shortcutAction
EscEnter the command mode.
EnterEnter the edit mode.
Shift + EnterRun the current cell, and then select the cell below.
Ctrl + EnterJust run the current cell.
AInsert cell (A)bove.
BInsert cell (B)elow.
D (press the key twice)Delete the selected cell.
YChange the cell type to "Code".
MChange the cell type to "(M)arkdown".
HShow all shortcuts.

Appendix C: Common Markdown Writing Syntax

The table below shows several common Markdown syntax to create a documentation in your notebook.

MarkdownAction
# Heading 1Heading level 1. (Use 2 '#' symbols for heading level 2, 3 '#' symbols for heading level 3, and so on.)
BoldMake a bold text.
ItalicMake an italicized text.
  1. First item
  2. Second item
  3. Third item
Make an ordered list.
* First item* Second item * Third itemMake an unordered list.
Inline codeMake an inline code.
<br>Block<font color="#444444"><span><br></span></font>Code<br>Make a block of code.
TextMake a link, e.g., Duck Duck Go

More reading resources:


Additional Nero Resources

Overview of Nero GCP: https://nero-docs.stanford.edu/gcp-overview.html

Comparison of Nero and Carina: https://carinadocs.stanford.edu/prem-vs-cloud

Nero Account Request Form (Click 'Order Nero GCP' in the bottom left): https://nero-docs.stanford.edu

Introduction to Nero GCP Webinar: Here

Nero Support: https://nero-docs.stanford.edu/help-and-support.html

Nero Office Hours: https://calendly.com/srcc-officehours/nero-officehours

Support Email Address: srcc-support@stanford.edu

Nero Slack Channel: #nero-users