#parallel-processing #rpc #thrift
#параллельная обработка #rpc #Бережливость
Вопрос:
В последнее время я много слышал об Apache Thrift, хотя знаю о нем очень мало. Я понимаю, что это платформа удаленного вызова процедур, которая абстрагирует вызывающие функции между языками и на разных машинах. Я изучил MPI и обнаружил, что он абсурдно низкоуровневый. Будет ли Thrift хорошей заменой более высокого уровня, позволяющей выполнять параллельные вычисления на сетевой группе машин?
Комментарии:
1. Я не знал, что Thrift определяет что-либо, кроме протокола wire и базового RPC — это совсем другая цель / роль, чем MPI . Кроме того, MPI не обязательно предназначен для «распределенных параллельных вычислений» и может выполняться на суперкомпьютерах с десятками (или сотнями) тысяч ядер. Попробуйте сделать это с помощью Thrift. Я думаю, что у подхода «распределенного участника» уже есть другие конкуренты.
Ответ №1:
Ответ зависит от ваших требований к производительности. Если вы ищете чистую вычислительную мощность, используя объединенную в сеть группу машин, то thrift не совсем готов.
У Thrift есть своя собственная сериализация, позволяющая абстрагироваться от преобразования типов между языками и версиями API. Это отлично подходит для корпоративных / клиент-серверных систем, которые могут снизить производительность при выполнении этих преобразований ради преимуществ, связанных с поддержкой работы клиентов и серверов на разных языках. Однако для высокопроизводительной сетевой группы машин это может быть бесполезно, поскольку ваши узлы, вероятно, будут использовать один и тот же язык.
Кроме того, асинхронный ввод-вывод является довольно новым и незрелым для большинства языков, что означает использование блокирующего сетевого ввода-вывода. Вероятно, это не идеально для того, что вы хотите сделать.
Я широко использую thrift, и он решает множество проблем, а сообщество довольно активно. Однако, вероятно, это неподходящий инструмент для вашей проблемы.