Message Passing Interface (MPI) ->, одна из реализаций MPICH --> - кто нибудь работал со всем этим? Насколько оно монструозно|просто|эффективно? Идея сама по себе очень привлекательная. https://ru.wikipedia.org/wiki/MPICH
https://ru.wikipedia.org/wiki/Message_Passing_Interface
OpenMP
https://ru.wikipedia.org/wiki/OpenMP
На каждом узле сети (локалки в офисе, например) запускаешь некую "либу" и целевую задачу, оно само конфигурится под имеющийся ресурс (+ руками задаешь), и что-то там обрабатывает. Если алгооритмы параллелятся - сколько есть выч. узлов, столько и получил мощи.
Как я понял, за счет универсальности окружения MPI не важно, где задача - локально в соседнем потоке крутится или на другом узле. И это очень важно для масштабирования. Можно искать оптимальное соотношение много ядер на кристалле | много простых узлов в рамках заданных ограничений бюджета.
Особенно это интерсно при использованиия виртуальных машин с неэксклюзивным использованием ядер процессора - VmWare, например. Память VmWare выделяет эксклюзивно для VM, а процессоры нет.
Пусть под линухом в фоне запущена "счиалка" с MPI с низким приоритетом. Если кто-то работает в Венде - ресурсы проца пошли под венду, затихла там жизнь - снова считаеи.
Даже десяток машин в офисе с 16G памяти (что сейчас недорого стоит) - уже довольно неплохая "считалка". Не обязательно именно как вычислялка - можно всякие сетки нейронный поднимать и изучать, как это работает.
Во вложении довольно интересные презы по использованию MPI для Deep Learning, с которого все сейчас с ума сходят.