If you have heard of Hadean before now, it was likely in the realm of spatial simulation and gaming. The company recently joined the Open 3D Engine (O3DE) Project as one of its founding members, and its products have been touted for powering massively multiplayer online (MMO) games like Eve Online and Minecraft.
Hadean’s products go beyond gaming, however, and the company has now released a new, Rust-based software development kit (SDK) for its Hadean Platform, which it calls “a friction free route to a cloud native infrastructure” and comes with the familiar tagline of being able to “write applications once and deploy anywhere.”
Hadean chief technology officer and co-founder Aidan Hobson-Sayers admits that the value proposition may sound familiar, but Hadean takes it and adds on a bit of something else: supercomputing.
“Really, it’s about trying to take some of the good parts of Kubernetes, which is the kind of the elephant in the marketplace, the number one thing that everyone uses, but identifying some of the limitations of that, and combining it with some of our learning from other technologies,” said Hobson-Sayers. “The supercomputing space has a whole set of tools and ways of writing applications that allows you to create very powerful applications like weather simulations, and so on, that you wouldn’t really run on Kubernetes. What we’ve said is, what if we could take the good parts of Kubernetes, the good parts of supercomputing, and bring them together, allowing you to write these very high performance, large scale applications on the cloud?”
While Kubernetes may shine when it comes to partitioning your applications for organizational benefits, explained Hobson-Sayers, the supercomputing field is looking for as little barrier as possible between application and hardware.
The supercomputing community is very hyperfocused on performance, and they want as little between the metal and their application as possible,” said Hobson-Sayers. “They have very harsh requirements on the amount of data that gets moved between different nodes, so the classic way of running supercomputing applications is you build a million-dollar piece of hardware that you can then use, but that’s not very kind of agile. You can’t scale that down. It’s a one-off expense and then it goes out of date in a number of years.”
Hadean, meanwhile, not only outsources the initial hardware cost implied with building your own supercomputing data center, but it also provides the interface with that hardware that minimizes the distance between hardware and application.
The Hadean Platform, explained Hobson-Sayers, takes inspiration from things like the Erlang programming language or the Akka library, both of which are built around passing messages from one part of an application to another, which he says maps really went onto hardware. “By building on top of this message passing interface, we’re recognizing the realities of the hardware, particularly when you go multimachine,” he explained.
The classic way to move data around, with languages like C or C++, for example, is to move a pointer to the data, which is instantaneous between different threads of execution, but can only be scaled as far as you can vertically scale your machines, he explained. With Azure, he noted, the max number of cores is around 72, and “once you get beyond that, you now need to start looking at moving data over the network and that’s where things start to get, unfortunately, pretty slow.”
The idea then is to use a shared-nothing architecture, which he explained “starts from the point of view that everything is just about passing data around, and there are just different characteristics of latency and bandwidth and so on, and by bringing that to the forefront of the API that we expose, we let people design around it. We don’t try and paper over the cracks in the abstractions of distributed systems, we actually just give people the tools to deal with them.”
Currently, the Hadean Platform SDK is available as a free-to-use trial version, and Hobson-Sayers said that the basic idea is to start developers thinking about what it makes possible.
“It’s about sparking the ideas in the heads of grassroots developers. Saying, ‘Here’s this new thing, you can write applications that scale to many machines just as easily as you can write applications on a single machine. What could you do with this?’ The classic example that we have of this agent is the Aether engine, our simulation engine, where we said, ‘What if you could run a simulation with millions of entities, tens of thousands of concurrent connected users, across multiple machines, multiple geographic regions?’ That’s the kind of really big scale, but we don’t pretend that we know all the use cases, and so really, this is about starting a conversation,” he said.