Можем ли мы распределить вычисления на несколько машин, не запуская экземпляр программного обеспечения на каждой машине? - PullRequest
0 голосов
/ 08 января 2019

Я студент архитектурного дизайна, который работает с 3D-программами (такими как Blender, Rhino и т. Д.). Я обычно нахожу, что для вычисления тяжелой геометрии требуется много времени. Итак, Я подумал, можно ли распределить вычисления по нескольким машинам, чтобы выполнить работу быстро.

Теперь проблема в том, что Я хочу распределить вычисления без фактического запуска экземпляра программного обеспечения, которое я использую на каждой машине. Потому что я прочитал, что многие распределенные системы работают таким образом, запуск экземпляра программного обеспечения на каждом узле, выполняющем эту работу. Но у меня вопрос: можем ли мы запустить «главное программное обеспечение» только на одном компьютере и просто использовать ресурсы многих компьютеров, запустив «вспомогательное программное обеспечение» (которое мы пишем) на каждом компьютере, чтобы выполнить работу , Таким образом, все равно, что рассматривать n машин как «один».

Возможно ли ...?

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Зависит от того, что именно вы подразумеваете под supporting software. В любом случае код, который выполняет реальную работу, должен находиться в каждом узле, чтобы работа была выполнена.

Однако вы можете использовать архитектуру мастер-работник, в которой мастер выполняет работу по распределению, сбору и интеграции результатов, в то время как каждый работник просто придерживается чистого вычисления чисел. В этом случае программное обеспечение, работающее на главном компьютере и на рабочих местах, может различаться, поскольку мастер выполняет большую часть управленческой работы, но у рабочих все еще есть код, который выполняет реальную работу.

0 голосов
/ 08 января 2019

Не думайте о них с точки зрения машин, но с точки зрения ресурсов. Таким образом, вместо того, чтобы запускать программное обеспечение на компьютере, вам нужно, чтобы ваше программное обеспечение могло использовать ресурс с компьютера, находящегося в пределах досягаемости вашего программного обеспечения (скажем, в сети, где находится ваш «сервер»), а не на реальной машине, на которой он работает. ,

К сожалению, большинство рабочих станций не предоставляют свою видеокарту в качестве службы. Если вы не реализуете что-то вроде vGPU (https://www.nvidia.com/en-us/design-visualization/technologies/virtual-gpu/) Я не вижу, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...