Является ли Apache Thrift хорошей платформой для параллелизма?

#parallel-processing #rpc #thrift

#параллельная обработка #rpc #Бережливость

Вопрос:

В последнее время я много слышал об Apache Thrift, хотя знаю о нем очень мало. Я понимаю, что это платформа удаленного вызова процедур, которая абстрагирует вызывающие функции между языками и на разных машинах. Я изучил MPI и обнаружил, что он абсурдно низкоуровневый. Будет ли Thrift хорошей заменой более высокого уровня, позволяющей выполнять параллельные вычисления на сетевой группе машин?

Комментарии:

1. Я не знал, что Thrift определяет что-либо, кроме протокола wire и базового RPC — это совсем другая цель / роль, чем MPI . Кроме того, MPI не обязательно предназначен для «распределенных параллельных вычислений» и может выполняться на суперкомпьютерах с десятками (или сотнями) тысяч ядер. Попробуйте сделать это с помощью Thrift. Я думаю, что у подхода «распределенного участника» уже есть другие конкуренты.

Ответ №1:

Ответ зависит от ваших требований к производительности. Если вы ищете чистую вычислительную мощность, используя объединенную в сеть группу машин, то thrift не совсем готов.

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

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

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