The UML library and clustering ideas can be combined to allow normal applications to be clustered fairly transparently. They will be clustered to the extent they use kernel functionality.
Their own code will be tied to the node that they started on, but the kernel code will be perfectly willing to migrate between nodes.
So, if the app has its own threads running on different nodes, any kernel data that they use will be transparently migrated as needed between nodes.
The result would be a hybrid between a cluster and a standalone node (or a set of standalone nodes if the application creates its own threads on those nodes).