Я собираюсь построить кластер микрокомпьютеров на работе для стресс-тестирования одного из наших приложений, и хотя у меня есть небольшая финансовая свобода, я хотел бы сохранить низкую стоимость и высокую вычислительную мощность. Я также новичок в идее параллельных вычислений, и небольшое исследование, которое я провел до сих пор, довольно подавляющее. Вот что я хочу сделать:
- есть кластер из n машин
- отправить команду на запуск этих машин (предпочтительно, чтобы они распределили работу между собой, но если мне придется посылать команду каждой из них по очереди, это тоже нормально), и попросить их отчитаться, когда они закончат работу.
- желательно с nodejs, но другие скриптовые языки, такие как python и ruby тоже подойдут
Я не знаю, как передать код на устройства, но я бы ожидал, что моя машина отправит что-то вроде этого, если бы они работали параллельно:
cluster.runTest(0, 1000)
где cluster.runTest
выглядит так:
runTest = function(start, num) {
for(var i=start; i<num; i++) { //split up which devices runs which commands, hopefully
sendRequestToServer()
}
}
Однако если они не могут делегировать полномочия друг другу:
for(var i=0; i<10; i++) { //10 devices
chips[i].runCommand(i*100, (i+1)*100) //run a certain chunk of commands
}
.. было бы достаточно.
Pis дешевы, но, похоже, у них нет той мощности, которая мне нужна для выполнения этих команд в разумные сроки. С другой стороны, я наткнулся наПараллельночто, кажется, достаточно, но стоит немного дороже. Я смотрел и на другие, типа wandboard, cubox, beaglebone и многие, многие другие.
Я извиняюсь, если мои идеи о том, как это работает, неверны, пожалуйста, не стесняйтесь, дайте мне знать, как это будет работать на самом деле! Я также не уверен, разрешены ли здесь вопросы с мнениями, но я стараюсь сохранять максимальную объективность.