Suggestion: Run IJulia on the julialang.org site for people to try

338 views
Skip to first unread message

Daniel Carrera

unread,
Nov 25, 2013, 5:08:52 PM11/25/13
to julia...@googlegroups.com
Hey,

Just an idea: How about running IJulia on the main Julia site (e.g. "http://julialang.org/try-julia") ?

Then put that on the front page, and let people experiment with Julia right on the stop. Include some plotting packages (Winston and PyPlot seem to work well) and some other packages... and I think it could work well.

Just an idea.

Cheers,
Daniel.


Stefan Karpinski

unread,
Nov 25, 2013, 5:14:46 PM11/25/13
to Julia Users
We've wanted to do that for years, but it requires a fair amount of infrastructure and sysadmin work. The running IJulia instance needs run somewhere and has to be sandboxed in some fairly lightweight manner. We also don't want to make it an anonymous attack avenue for blackhats. And of course, there's the mundane problem that someone needs to pay for the instance-hours on AWS (presuming that's how we host it).

Rahul Dave

unread,
Nov 25, 2013, 7:45:40 PM11/25/13
to julia...@googlegroups.com, Stefan Karpinski
Perhaps we could take a page out of notebookcloud?


You have to put in your was credentials to make it work. The code is on github...


-- 
Rahul Dave
Sent with Airmail

Daniel Carrera

unread,
Nov 26, 2013, 2:13:55 AM11/26/13
to julia...@googlegroups.com, Stefan Karpinski
NotebookCloud looks neat. But I don't have a solution to the "who is going to pay for this" problem. I don't have a good sense of how much this is likely to cost. I currently have an AWS account that is cheap because I only use it to host a Tor bridge, so the traffic is low. I don't know that I could pay for real traffic.

Elliot Saba

unread,
Nov 26, 2013, 2:17:27 AM11/26/13
to julia...@googlegroups.com, Stefan Karpinski
So when will LLVM be able to compile down to Javascript so we can just run everything in the browser?  ;)
-E

Daniel Carrera

unread,
Nov 26, 2013, 2:18:59 AM11/26/13
to julia...@googlegroups.com, Stefan Karpinski
I wonder if the NotebookCloud people would be willing to add IJulia to the standard NotebookCloud distribution. I suppose it's possible.

About the money thing: It must be possible to put a bandwidth limit on AWS, right?

On Tuesday, 26 November 2013 01:45:40 UTC+1, Rahul Dave wrote:

Amit Murthy

unread,
Nov 26, 2013, 3:01:19 AM11/26/13
to julia...@googlegroups.com, Stefan Karpinski
It is not just the bandwidth. Any try-julia setup should also be able to handle short term load spikes reasonably well - for example, when a news item becomes popular on HN/reddit .

Every additional julia process takes around 140MB on my 64-bit machine, i.e., without running any user code - just the libs allocating memory I guess. 

So, we need any public setup to 
- spin up new AWS instances and shut them down dynamically
- limit the resources consumed by a singe user session. 






Daniel Carrera

unread,
Nov 26, 2013, 3:45:39 AM11/26/13
to julia...@googlegroups.com, Stefan Karpinski
Wait... Does IJulia create a new process for every user? That doesn't
sound very efficient. Can it be avoided?
--
When an engineer says that something can't be done, it's a code phrase
that means it's not fun to do.

Jiahao Chen

unread,
Nov 26, 2013, 3:54:39 AM11/26/13
to julia...@googlegroups.com, Stefan Karpinski
That's pretty much the only way (at the moment) to keep everyone's variables in separate memory spaces.

Matthias BUSSONNIER

unread,
Nov 26, 2013, 4:14:01 AM11/26/13
to julia...@googlegroups.com, Stefan Karpinski, Kyle Kelley
Right now it is even one kernel per notebook, so even 1 user can hame multiple kernel.
The possibility of "forking" kernels at early stage to speed up kernel spawning was envisaged
for python, but ZMQ doesn't like forks when they happen to late.

People at SageMath have demo website, they use part of IPython stack on their dev site.
You might want to ask them.

As for IPython, we might have some resources available on RackSpace.
I wondering if we couldn't have a few blessed examples (1/lang ?) that are
runnable on nbviewer (cc Kyle), but in any case it would be a lot of work to maintain
the stack.

--
M




Michael Bean

unread,
Nov 26, 2013, 5:37:37 AM11/26/13
to julia...@googlegroups.com, Stefan Karpinski, Kyle Kelley
It's not iJulia, but Forio has maintained a web REPL for the past year at:

and it includes a basic tutorial for Julia. Just type "tutorial" at the command prompt.

We did some significant work on the REPL this past summer and it has been stable for a few months now.

Best, Michael

Viral Shah

unread,
Nov 26, 2013, 6:18:16 AM11/26/13
to julia...@googlegroups.com, Stefan Karpinski
We did this with a private cloud at MIT for the undergraduate numerical computing class. There are a couple of projects in this direction. I am fairly confident we will get something going in a few weeks. The payment problem remains, but perhaps we can worry about it when the spend becomes too expensive.

Maybe people will donate spare cycles for this - the promise of grid computing is hopefully still alive, somewhere. :-)

-viral

Daniel Carrera

unread,
Nov 26, 2013, 6:57:38 AM11/26/13
to julia...@googlegroups.com, Stefan Karpinski, Kyle Kelley
The REPL at Forio looks great. Are there any plotting tools as in IJulia?

/playing with the tutorial right now

Cheers,
Daniel.

Patrick O'Leary

unread,
Nov 26, 2013, 12:49:56 PM11/26/13
to julia...@googlegroups.com, Stefan Karpinski
You mean like Emscripten, the LLVM-to-JS compiler?

https://github.com/kripken/emscripten/wiki

Stefan Karpinski

unread,
Nov 26, 2013, 12:58:18 PM11/26/13
to Julia Users
We really need to peel off some of the external dependencies and have a Julia Lite™ image that is just the pure language itself. That could potentially be run in the browser via emscripten.

Patrick O'Leary

unread,
Nov 26, 2013, 1:04:19 PM11/26/13
to julia...@googlegroups.com
Did I experience a Google Groups UI fail? I meant to reply to Elliot's comment, if that wasn't clear. (Not that your comment is irrelevant, just that I realize my comment may have seemed to come from nowhere.)

Isaiah Norton

unread,
Nov 26, 2013, 1:19:03 PM11/26/13
to julia...@googlegroups.com
[Julia -> Scheme -> C -> C++ JIT]  ->
            pre-compiled JavaScript       |
----------------------------------------------     |
                 JavaScript JIT                  <-


Dude, that's a lot of turtles.
(I love the idea, of course)

Stefan Karpinski

unread,
Nov 26, 2013, 1:30:59 PM11/26/13
to Julia Users
It's even more absurd than that. Since Julia uses LLVM and emscripten is essentially an LLVM backend what we want is for LLVM to be able to compile itself (plus a very small amount of C and C++ code that implements Julia) to JavaScript. Maybe we should email Alon and see if he thinks this might work or if he knows that it won't (yet).

Stefan Karpinski

unread,
Nov 26, 2013, 1:35:17 PM11/26/13
to Julia Users
Couldn't find an email address, so I tweeted the question:

Elliot Saba

unread,
Nov 26, 2013, 1:40:59 PM11/26/13
to julia...@googlegroups.com

Wow, I was rather tongue in cheek when I first suggested this. If everything were implemented in pure Julia, this would be feasible, I think. But we have BLAS, LAPACK, SuiteSparse, FFTW, etc.... All of which are not implemented in Julia.

So I suppose it could serve as a general language tutorial, but you won't be able to do anything "serious" with it. :/

-E

Stefan Karpinski

unread,
Nov 26, 2013, 1:44:04 PM11/26/13
to Julia Users
That's true, but that's really all we need.

Tom Short

unread,
Nov 26, 2013, 2:13:21 PM11/26/13
to julia...@googlegroups.com
Emscripten is awesome. It can compile quite a few things with little modification, and Alon and the rest of the community are very responsive. I've managed to get basic BLAS and LAPACK to compile to JavaScript with Emscripten. I've used it to run simulations that run within 3X of native speed in Firefox. Here's an example:

http://tshort.github.io/mdpad/mdpad.html?Modelica.Electrical.Analog.Examples.ChuaCircuit.md

My interest in a Julia/Emscripten combination is a little different. I don't really need a REPL in a browser, but I'd really like to use Julia functions in web apps. When Jameson's static compilation gets merged, I'm really looking forward to seeing if I can compile functions to LLVM bitcode and then see if Emscripten can compile to JavaScript/asm.js. Emscripten is pretty good about only including code you use. It might be a lot of work, but Emscripten is surprising as to how much it can compile.



Rahul Dave

unread,
Nov 26, 2013, 10:52:14 PM11/26/13
to Amit Murthy, julia...@googlegroups.com, Stefan Karpinski
I wasn't suggesting that we pay for the AWS credits. The notebook cloud model is that the user pays, but notebook-cloud provides all the connecting, setting up the instance, setting up a port for the notebook, etc.
-- 
Rahul Dave
Sent with Airmail

Reply all
Reply to author
Forward
0 new messages