User:Sshah

From Octave
Revision as of 17:17, 24 March 2019 by Sshah (talk | contribs)
Jump to navigation Jump to search

Octave on Public Clouds

This description is for installing the latest released stable version of Octave and running it on instances on public clouds such as Amazon AWS. The user interacts with a desktop client which connects to the servers running octave over a secure internet connection.

Users often want to preserve code portability between desktop and the servers. Moreover, users may want to preserve the desktop interaction experience.

On Amazon AWS EC2, spot instances (and preemptible VMS on GC) permit use of powerful machines for short periods of time. Many octave computations run much faster on multicore machines. In addition, embarrassing parallelism can be easily exploited using octave packages such as parallel.

Because of network latency over the internet, user interaction that relies on desktop level sub ms latency does not work well. This requires some changes to the standard desktop user interaction experience, relying more on the faster local client response. Jupyter notebook is an example of such an interface.


AWS EC2

Ubuntu

On AWS EC2, choose the official Ubuntu AMI for EC2 for your region. See Ubuntu cloud image locator


Installing on Ubuntu LTS 16.04 LTS

sudo apt update
sudo apt install build-essential

Installing on Ubuntu LTS 18.04 LTS

Connecting to the cloud instance

Mac OS

When you launch the EC2 instance, you can secure access to your instance using a ssh protocol on port 22. You may want to limit the port 22 outbound access on the instance firewall to your IP address.


If you are using X-11 for plotting in octave (gnuplot xterm), you will need to do X-11 forwarding using ssh -Y . You will also need Xquartz installed on your machine and issue

 xhost + <your instance public IPV4 address>  

For qt graphics, you do not need the X-11 forwarding.


Octave Kernel in Jupyter Notebook Server

Because of network latency between the remote cloud server and the local client, response to user keystrokes is delayed. Running an octave kernel in Jupyter notebook avoids this because the local browser responds to keystrokes during editing.

This description only addresses single user Jupyter notebook server not the multi-user Jupyter Hub server.