is there a solution to accelerate a local process using remote PC CPUs (and/or GPU)?
Да, то, что вы описываете, называется компьютерным кластером. Но я полагаю, вы уже знали это, потому что вы пометили вопрос как таковой. Поэтому я рассмотрю ваши пункты:
work without the need to rewrite the app to use a specific library;
Нет. Таким же образом многопоточное приложение должно быть написано для использования многоядерного ЦП, распределенное приложение должно быть написано для распределения его рабочей нагрузки между узлами в кластере. С точки зрения логистики, это та же проблема, что и с людьми, работающими вместе как часть команды. Вы должны придумать план, разбить его на отдельные задачи, делегировать эти задачи определенным людям, а затем координировать с этими людьми, чтобы выполнить работу. Это должно быть сделано так, потому что другие люди не могут поделиться вашей памятью, услышать ваши мысли или увидеть ваше видение в вашей голове.
work on heterogeneous OSes and archs (using dynamic recompilation if necessary);
Это возможно либо с клиентом, написанным для каждой целевой платформы, либо с общим языком, таким как Java или Python.
support service fail-over: if some network nodes go down execution can still proceed on the remaining nodes (or even just locally if the main node became isolated).
Хорошо написанное распределенное приложение не должно беспокоиться о выходе узла из строя. Вычислительные задачи разбиваются на сегменты "главным узлом" и делегируются процессорам из списка. Если узел обработки выходит из строя, эти задачи никогда не выполняются и остаются в списке для обработки другими узлами.
Независимо от того, как вы это нарежете, нет волшебной пули, которая сделает суперкомпьютерный кластер для создания электронных таблиц Excel и запуска игр. Распределенные приложения должны быть специально разработаны для решения таких задач. Помните, что большинство приложений не могут даже использовать более одного процессорного ядра на той же машине, не говоря уже о том, что оно находится на компьютере где-то в облаке.