is there a solution to accelerate a local process using remote PC CPUs (and/or GPU)?
Ja, was Sie beschreiben, wird als Computercluster bezeichnet. Aber ich weiß, dass Sie das bereits gewusst haben, weil Sie die Frage als solche markiert haben. Ich werde mich also mit Ihren Punkten befassen:
work without the need to rewrite the app to use a specific library;
Auf dieselbe Weise muss eine Multithread-Anwendung geschrieben werden, um eine Multi-Core-CPU zu verwenden. Eine verteilte App muss geschrieben werden, um ihre Arbeitslast auf die Knoten in einem Cluster zu verteilen. Logistisch gesehen ist es das gleiche Problem, wenn Sie als Teammitglieder zusammenarbeiten. Sie müssen einen Plan ausarbeiten, ihn in einzelne Aufgaben aufteilen, diese Aufgaben an bestimmte Personen delegieren und dann mit diesen Personen abstimmen, um die Aufgabe zu erledigen. Es muss auf diese Weise geschehen, weil andere Menschen Ihre Erinnerungen nicht teilen können, Ihre Gedanken nicht hören oder die Vision sehen können, die Sie in Ihrem Kopf haben.
work on heterogeneous OSes and archs (using dynamic recompilation if necessary);
Dies ist entweder mit einem Client, der für jede der Zielplattformen geschrieben wurde, oder mit einer gemeinsamen Sprache wie Java oder Python möglich.
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).
Eine gut geschriebene verteilte App muss sich keine Sorgen darüber machen, dass ein Knoten ausfällt. Rechenaufgaben werden von einem "Leitknoten" in Segmente aufgeteilt und aus einer Liste an Verarbeitungseinheiten delegiert. Wenn ein Verarbeitungsknoten ausfällt, werden diese Aufgaben nie erledigt und bleiben in der Liste, damit andere Knoten sie bearbeiten können.
Egal wie Sie es schneiden, es gibt keine magische Kugel, die einen schlechten Supercomputer-Cluster für Excel-Tabellenkalkulationen und das Ausführen von Spielen bildet. Verteilte Anwendungen müssen speziell für diese Art von Aufgabe entwickelt werden. Denken Sie daran, dass die meisten Anwendungen nicht einmal mehr als einen Prozessorkern in der SAME-Maschine verwenden können, geschweige denn in einem Computer irgendwo in der Cloud.