I struggle to understand why an established user needs JuliaBox. I understand the advanced computing resources, but there are services dedicated to providing that alone. That’s pretty hard to compete with. As an educational platform, it would need to have the tons of course content to justify it as a completely independent platform.
It’s also not part of the JuliaPro IDE. So if it is suppose to introduce people to using Julia then it’s not really a logical gateway to the “official” IDE.
I am not sure how financing courses from grant money was even suggested — that is indeed an explicit misuse of funds.
But costs related to teaching courses are something that come up routinely (more so in some fields than others, eg materials for labs in the life sciences, etc), and universities have a framework in place for handling them. Whether they consider them justified is another issue, but as I was saying, unless university IT finds it cost-effective to set it up, outsourcing it for a class may make sense.
FWIW I just had a workshop where I insisted all the students install julia + Atom + Jupyter on their computers (I warned them beforehand) and download my materials locally. It took like 45 minutes before everyone had it, but on the up side this makes it much likely that they’ll play with it again in the future.
This is not great for a shorter workshop but worked fine here (I had 8 hours); for a university course I would never dream of doing it on JuliaBox, I would consider it an explicit course outcome that students had a working julia install on their laptops after taking it.
So one thing to realise is that JuliaBox is built as an interactive system, not a batch/job processing system. So this limits how resources are shared. For one, we do not overcommit memory. Every logged in user gets a certain amount of memory allocated, for the python jupyter process and one julia kernel. Also we are limited by how much we can overcommit CPUs – users do a 1+1 and expect near instant results in an interactive system. So even if users use use very little CPU for their code, the need for interactive latency limits how much we overcommit.
So right now, our costs are pretty directly related to concurrent logged in users, and not on the total CPU-Hours consumed to Julia processes running on the system.
I should also mention an obvious constraint that any pricing strategy or usage limit needs to be a) reliably monitored, and b) easily explained.
Lots of great responses in this thread. Whatever we end up doing with Juliabox, the fact that it’s been useful to many of you makes us very pleased.
I can’t really respond to so many messages individually but I’ll make a few points.
Our current published pricing is indeed per student. There is some concern that classes don’t have budgets individually. That is true, but on the other hand, any class today that uses Julia is an outlier in terms of technology within an university. And that makes doing university wide deals very difficult. Hopefully that will change soon. But even now, we have done one annual department wide deal for Juliabox, partnering with internal IT. So that certainly is possible. What we do not have the ability to do yet is navigate university purchasing departments effectively, so instructors will have to help us do that.
One major feature of Juliabox is that it provides strong isolation between all users. Second, it provides a dynamically scalable cluster on the cloud. One side-effect of this is that running Juliabox requires creating and maintaining a reasonably complex cluster. This is the primary reason we havent supported installing Juliabox on your own.
Hence, in a class setting, running your own Jupyterhub installation maybe sufficient. There are a few institutions who’ve done that. It takes some effort and maintainance, but is not too onerous. But of course, if you want a zero effort turnkey solution, subscribing to Juliabox is your best option, even if I say so myself
That’s actually our solution… we (the department) rented a hosted powerful “computational” server that I set up with JupiterHub for us the researcher and for the students in courses ran by researchers at our department. Works well.
We didn’t go at the univ level because it would have been too bureaucratic and many researchers teach on different institutions.
If you can share, I am curious about the specifics, eg the specs of the server (CPUs, RAM) and the number of students. We did something similar, but set it up on our existing “general” computational server, and found that even for about 15-20 students, you really do need a lot of resources to keep it running smoothly, especially if they use it at the same time (eg in class, practice sessions).
I teach a linear-algebra course with about 200 students. This is not a programming course, nor are students expected to learn to program. However, we want to incorporate computation into the course — both in the lectures and in the assignments, even if the latter are merely using Julia as a glorified calculator to start with. For this to work it is essential that doing computation has a low barrier to entry.
In such a large course, it a huge headache to deal with everyone’s installation problems, especially on the ancient underpowered Windows laptops that some students have. And you will have a mess with students (including students who joined the class a few days late, as many students do) struggling to do the first assignment (or two or three) because of software problems that they didn’t sign up for in a math course. Before juliabox, I went through this for small classes (< 40 students) and I recall weeks of pain at the beginning of each semester.
On top of that, because Julia is a young language, you can expect that most of the TAs and other help resources are newcomers to Julia (if they are familiar at all, which is doubtful), and will be helpless in the face of installation problems.
This is the kind of thing where juliabox has been indispensable — without something similar, I don’t think it would have been possible to incorporate Julia for computation into large classes here.
Because we’ve used Julia in several classes for several semesters now, that gives me some leverage to press our university to allocate funds (either for a juliabox contract or for a local jupyterhub installation), although I don’t know yet whether I will be successful or how long it will take. For people introducing Julia for the first time at a school, I think getting these kinds of funds will be much more difficult.
The best hope for many schools, in my mind, is to piggyback off of Python and/or R — convince the university to set up JupyterHub or similar for use in established courses that employ Python or R. Once that is done, adding Julia to the mix should be relatively easy. For the same reason, juliabox as a turnkey service may be more successful if they can offer Python and R as well as Julia.
I should probably add that I was not advocating my solution for everyone. I definitely see the usefulness of JuliaBox in a university setting, and was only talking about my own decision-making in my own context.
My undergrad always had a computer lab for non-computing courses that required software. It was somewhat of a pain at times because you had to go at odd hours if you didn’t want to wait for a computer, but that’s because no one was willing to pay for SPSS. With OSS I would’ve imagined the barrier to use is smaller.
Do you think relying one individual installations is a more reasonable expectation as the language matures on more platforms, or do you think there will always need to be some sort of work around like you described? (I ask because I’ve thought of pushing for courses that integrate Julia where I’m at).
MIT has this as well, but nowadays they are less and less used as most students have laptops. I think there has been a cultural shift — in a large course, the students consider it a bizarre imposition to be required to go to a computer lab to complete their assignments, and will spend hours being frustrated by software problems on their laptops if there is no one around to help them.
Do you think relying one individual installations is a more reasonable expectation as the language matures on more platforms.
While it is certainly much easier to get Jupyter+IJulia working than in the early days, there are countless ways that installation of a large multi-component software system can break — even for something as mature as Python — and finding in-person support resources is a problem for Julia given its niche status. In general, also, I think there is a shift away from individual software installation towards cloud services that is only going to accelerate, especially as computation is incorporated into non-CS courses.
I try to set a good example by cursing at their computers while I am helping them to debug (especially when waiting the 30 seconds cheap Windows laptops apparently require every time you touch the filesystem).
However, my condition is worst and better at the same time. Worst because, since I am in a government institution, it will be almost impossible to buy such subscription every year (Brazilian laws…, very long history). Better because since I am teaching at post-graduate only courses, the number of the students is way less (~15). Given our economic disparity, 7 USD per month is too much for most of the students that does not have family on my city. However, this might fit on a personal budget available from funding institution. Let’s see what can I do in the following year.
I kind of hope that @stevengj decides to go with the JupyterHub solution for his course. That would probably be the single most effective way that JupyterHub ends up working without any issues with julia
Another point if favor of institution wide JupyterHub setups is that students could potentially keep access to it after a course ends and keep using it while they are on campus.
Note that JuliaBox and similar are convenience services. If funding for such a service is a problem, one can always just install Julia on a computer for each user — it is free software, and the whole thing just takes a few minutes.
I don’t understand the problems people have with the price (and here I don’t mean to single out your comment). I understand that it can be a significant amount of money in some contexts (I grew up in an Eastern European country), but an analogy that comes to mind is eating out in a restaurant vs cooking a meal from scratch at home. You get the something to eat in both cases, it’s just that the first one may be more convenient, and one pays extra for that.
The key point in this topic is that providing this convenience service takes hardware and labor, and neither of them is free. Some users will find that it is cheaper to outsource these things, some won’t. Both can be sensible solutions in their place. But in the long run, it is not possible to get the convenience service unless someone pays for it.
I also understand that some people argue that providing a free web platform for Julia can help with spreading the language. But I am sceptical about this too, for the following reason: learning even the basics of Julia takes a few hours, and installing it on a PC takes a few minutes. If the second one is a barrier to entry for someone, surely the first one is too, and to a much larger extent. Julia is not a language that magically shines after 5 minutes of experimentation (quite the opposite, it requires significant investment for the gains to materialize). So if someone is unwilling to even invest the time it takes for a local installation, they may be the kind of person who will be very disappointed with Julia anyway.