Enough is not enough

People like to tell me about their digital life. Recently, I hear a lot about laptops replacing desktops. To my surprise, many are willing to spend quite a bit for this transition: most more than €1000 and some €2000 and above. All of the former assure me that the performance of their desktop replacement is "more than enough". Several of the latter actually believe that the system's performance is directly related to its pricetag. One member of this group owns a Macbook 12 (sorry for the cliché, but what can I do) and tried to convince me in a particular insistent and tenacious way that his gadget would outperform even the most powerful desktops available.

As a matter of fact, it is quite far from this feat (look here). As all ultrabooks equipped with a Core M-5YXX processor, it performs slightly better (20–40%) than my €299 Fujitsu Lifebook which, however, is miles away from a decent desktop:

Right, the last one is not your usual desktop, but a compute server with—at the moment of the screenshot—a load of 24. The remaining 8 physical cores managed to outperform my desktop, if only by a slight margin. But I bet that my new office desktop (an i7 4790) will be able to complete the run under 100 s ... let's see tomorrow. 😉

Update: even below 80 s:

In any case, my lifebook has been thoroughly smashed and humiliated: instead of the 2 minutes required by the Xeons it needed a staggering 20 minutes for the same result. The lifebook is great for writing this entry, but for serious tasks I rather turn to a serious computer. And the same applies to your Core M driven ultrabooks.

At this point, the compassionate ones of the laptop owners are sure to secretly pity me. Just imagine that I have to stay all time in a kind of server room for being able to take advantage of the performance depicted above. ... how gruesome!

Well, as much as I like to sit in my study, I prefer to run my computations from where I want. How do I do that?

I have WiFi. 😄

Seriously, for computations I use an ipython server running on my desktop. The posts of Fillipo and Nikolaus have helped me to find the best (most robust and convenient) way to connect to this server.

For what follows, both the server and the client need to have mosh installed. For the server, tmux (which I also like to use for different reasons) is required in addition.

From the client, I connect to the server (blackvelvet) by issuing

mosh blackvelvet -- tmux new-session -s ipython

In this session, I then start an ipython notebook server on blackvelvet:

ipython notebook --no-browser --port=8889

and subsequently detach the session with Ctrl-a d.

I can attach again anytime by issuing

mosh blackvelvet -- tmux a

on the client. Isn't that neat?

To connect to the server, I start an ssh tunnel on the client with

ssh -N -L localhost:8888:localhost:8889 cobra@blackvelvet

and open the notebook at http://localhost:8888/:

Thanks to MathJax, the font rendering is way better than that of Mathematica.

The ssh tunnel can be stopped with a single Ctrl-C on the client, the ipython server needs a double one on the server (after attaching the session again).