Opened 2 years ago

Last modified 3 months ago

#30313 new enhancement

Doc: Add instructions how to run a remote SageMath jupyter kernel

Reported by: Matthias Köppe Owned by:
Priority: major Milestone: sage-9.8
Component: documentation Keywords:
Cc: Nils Bruin, Erik Bray, Samuel Lelièvre, Joshua Campbell Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Change History (15)

comment:1 Changed 2 years ago by Matthias Köppe

Cc: Nils Bruin Erik Bray Samuel Lelièvre added

On Windows, running the notebook in a native python installation and connecting to the Sage jupyter kernel running in cygwin would also be an attractive deployment option.

Last edited 2 years ago by Matthias Köppe (previous) (diff)

comment:2 Changed 2 years ago by Matthias Köppe

Description: modified (diff)

comment:3 Changed 2 years ago by Matthias Köppe

Cc: Joshua Campbell added

comment:4 Changed 2 years ago by Nils Bruin

The title of this ticket seems to suggest a setup where the jupyter server process runs on one machine and the sage kernel runs on another. That's a tricky set-up. I don't think it's one we can expect to support any time soon. It opens a whole new can of worms where the Jupyter server file browser may show entirely different files than the ones that are available to the kernel process, since there might not be a shared filesystem between the two machines.

Another other problem is the added latency: In that set-up you'd have browser <-> jupyter server <-> kernel, with each of the arrows really needing to go over networking protocols. With the guarantee that the server and the kernel process are on the same machine, the server <-> kernel communication should end up being just local pipes, for which the operating system hopefully can figure out nice optimizations.

Third, the sage kernel needs quite a few plug-ins. Keeping those synced across different machines will be even more complicated. Not impossible, but I don't think advisable unless really required.

I think all we need is instructions to connect a browser to a remote server, which isn't really a sage-specific thing (but probably something that's worth helping people with).

comment:5 in reply to:  4 Changed 2 years ago by Matthias Köppe

Replying to nbruin:

The title of this ticket seems to suggest a setup where the jupyter server process runs on one machine and the sage kernel runs on another.

That's right.

Another other problem is the added latency: In that set-up you'd have browser <-> jupyter server <-> kernel, with each of the arrows really needing to go over networking protocols. With the guarantee that the server and the kernel process are on the same machine, the server <-> kernel communication should end up being just local pipes, for which the operating system hopefully can figure out nice optimizations.

Actually, the use case is exactly to improve latency, such as in an HPC environment. The head node of a shared cluster typically has abysmal interactive performance because dozens of users run stuff on it. One does not want to run the user interface on it!

Third, the sage kernel needs quite a few plug-ins. Keeping those synced across different machines will be even more complicated. Not impossible, but I don't think advisable unless really required.

Well, for example #30123 intends to fix exactly this: Replace ad-hoc installation of stuff into the notebook server by a more disciplined installation scheme: nbextensions. These can be managed and inspected in a robust and user friendly way.

comment:6 Changed 2 years ago by Matthias Köppe

Description: modified (diff)

comment:7 Changed 2 years ago by Matthias Köppe

Description: modified (diff)

comment:8 Changed 2 years ago by Matthias Köppe

Description: modified (diff)

comment:9 Changed 2 years ago by Matthias Köppe

I've added a few links. (I haven't used any of these packages myself yet.)

comment:10 Changed 2 years ago by Matthias Köppe

Milestone: sage-9.2sage-9.3

comment:11 Changed 22 months ago by Matthias Köppe

Milestone: sage-9.3sage-9.4

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

comment:12 Changed 17 months ago by Matthias Köppe

Milestone: sage-9.4sage-9.5

comment:13 Changed 12 months ago by Matthias Köppe

Milestone: sage-9.5sage-9.6

comment:14 Changed 7 months ago by Matthias Köppe

Milestone: sage-9.6sage-9.7

comment:15 Changed 3 months ago by Matthias Köppe

Milestone: sage-9.7sage-9.8
Note: See TracTickets for help on using tickets.