User:Sshah: Difference between revisions

From Octave
Jump to navigation Jump to search
No edit summary
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Octave on Public Clouds =
= Octave on Public Clouds =


For installing the latest released stable Octave version and running it on instances on public clouds such as Amazon AWS.   
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 sub milli-second response latency of a desktop does not work well.
 
This requires some changes to the standard desktop user interaction model, relying more on the faster local client response.  Jupyter notebook is an example of such an interface.
   
 


== AWS EC2 ==
== AWS EC2 ==


=== Ubuntu ===
=== Ubuntu ===
Installation of octave from source on Ubuntu LTS images published by Ubuntu is described first.


On AWS EC2, choose the official Ubuntu AMI for EC2 for your region.  See [https://cloud-images.ubuntu.com/locator/ec2/ Ubuntu cloud image locator]
On AWS EC2, choose the official Ubuntu AMI for EC2 for your region.  See [https://cloud-images.ubuntu.com/locator/ec2/ Ubuntu cloud image locator]
Line 12: Line 25:
=== Installing on Ubuntu LTS 16.04 LTS ===
=== Installing on Ubuntu LTS 16.04 LTS ===


sudo apt update
sudo apt install build-essential


=== Installing on Ubuntu LTS 18.04 LTS ===
=== Installing on Ubuntu LTS 18.04 LTS ===
Line 22: Line 38:




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>   
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.   
For qt graphics, you do not need the X-11 forwarding.   
Line 32: Line 50:
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.
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 only addresses single user Jupyter notebook server not the multi-user Jupyter Hub server.
This description only addresses single user Jupyter notebook server not the multi-user Jupyter Hub server.

Latest revision as of 21:22, 28 March 2019

Octave on Public Clouds[edit]

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 sub milli-second response latency of a desktop does not work well.

This requires some changes to the standard desktop user interaction model, relying more on the faster local client response. Jupyter notebook is an example of such an interface.


AWS EC2[edit]

Ubuntu[edit]

Installation of octave from source on Ubuntu LTS images published by Ubuntu is described first.

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[edit]

sudo apt update
sudo apt install build-essential

Installing on Ubuntu LTS 18.04 LTS[edit]

Connecting to the cloud instance[edit]

Mac OS[edit]

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[edit]

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.