Sustainable computing
I have learned the hard way that internet speed is almost irrelevant and that what really matters is latency. Since 2019, we live in the countryside where there is no fiber broadband connection to be found in the near future. Instead, our only option is to use a permanent 4G connection which gives great speed up to 200 Mbps with the external antennas on the roof compared to about 50 Mbps with the modems original antennas. However, the latency never goes below 40 ms which might not sound like much, but depending on your usage scenario, it can drive you insane. In comparison, a fiber connection lies in the 4-5 ms domain.
What this means in practice is that large file transfers of a few files, like downloading a game from Steam, are no problems at all. But when you are working from home and wish to access your company file server with hundreds or thousands of folders and files, that is when the waiting championships begin. If you want to access 1000 files with a latency of 40 ms, that equates to 40 seconds… Whereas a single 1 Gb file takes 40 ms to access. Maybe I’m a bit incorrect here with the technical details so correct me if I am wrong, but in any case, this is exactly what it feels like. When you are working on a 4 ms low latency internet connection, the same operation would take 4 seconds. And you will feel this difference. I have been working like this now for four years and it has been crunching on my nerves until I can’t take it anymore. I have been trying to work my way around the high latency by adapting my workflow, but a change in behavior can only get you so far. Consequently, I have opened an office in the city center with a proper internet connection. Even a 30-minute one way commute is worth it, depending on what work you plan to accomplish.
But then I have had the idea of installing an always-on workstation on the fiber internet and connecting to that one from my home office using remote desktop. I learned about a great tool for remote work called Parsec a couple of weeks ago from a friend. It is actually intended for remote gaming, but hey, if you can play a first person shooter over the internet, then you can without a doubt create some CAD drawings, review PDF binders or send invoices. Anyone who uses remote desktops regularly knows that latency is always an issue. The main benefit of Parsec compared to all the other options I have tried, is that it is hardware accelerated. I have been thinking about that off-site workstation for years, but I concluded that it wasn’t really worth the hassle because of the suboptimal “flow” experience using regular remote software. Parsec changed my mind. Even with the 40 ms lag on the user interface, file operations now run at full speed on my offsite workstation. And this translates into a much, much nicer user experience.
There’s a saying that if it was easy, everybody would do it. And it has some merit for sure. I have been experimenting a lot with Parsec using a couple of old laptops at various locations to evaluate the latency. And it differs quite a lot (50-100 ms) between the locations. I also have encountered NAT issues which at first unfortunately stopped me from using Parsec at my new city office. The one location that really mattered…sigh. Well, I kept banging my head against the wall and finally learned about another amazing tool called ZeroTier. It is a network virtualization software, that creates p2p tunnels between your devices, and with this tool I finally got Parsec running at (almost) full speed and around 100 ms latency. I first tried it with a regular VPN and it also worked, but the problem with VPN is that it usually wraps your UDP traffic in TCP, which will add unacceptable latency for real-time applications. As a comparison, I got around 150-200 ms using VPN. I am a bit disappointed that I couldn’t get closer to my theoretical max of ~50 ms, but 100 ms is close enough for rock and roll. At least when I connect from a proper fiber connection, I can go below 20 ms, which is seriously impressive. And the video quality is flawless by the way.
So, if you are in the market for extremely usable remote desktops, I highly recommend that you check out Parsec. If you are lucky, it will work right out of the box. The only place I was forced to use ZeroTier was at my offsite office but in all the other locations I have tried, it was truly plug and play.
Now, my plan is to use this for a couple of weeks and try it out thoroughly. Long-term stability is another crucial factor which I obviously cannot comment on right now. But so far so good! My next project is to build a dedicated headless and reasonably powerful workstation. Just imagine how useful it can be to be able to connect to a high performance PC using an ultraportable tablet or laptop, from hotel rooms, building sites, project meetings or lectures. Or from an address with poor internet access. As long as you have low latency, the experience is amazing and you can sometimes even forget that you are on another PC when you are using full screen. And that is a proper testament of quality. It also sounds like a smarter usage of resources to me. Running a workstation 24/7 consumes a bit of electricity, but you must compare it to buying a powerful laptop and lug it around and replacing it every three years.
I am currently using Parsec on equipment that is more than a decade old! And I am writing this piece on a machine from 2009. If I only had proper internet access at my home, I would not hesitate one ms to build a high performance workstation/server and hiding it in the garage or some other place, and resort to thin clients. I have even tried game streaming to my Iphone, and that also works flawlessly on my home network.
Oh, how far we have come. I am old enough to remember a world before internet.