В наши дни существует большой интерес к Erlang как к языку для написания параллельных программ на многоядерных процессорах. Я слышал, как люди утверждают, что модель передачи сообщений Erlang легче программировать, чем доминирующие модели с общей памятью, такие как потоки.
И наоборот, в сообществе высокопроизводительных вычислений доминирующей моделью параллельного программирования был MPI, который также реализует модель передачи сообщений. Но в мире высокопроизводительных вычислений эта модель передачи сообщений обычно считается очень сложной для программирования, и люди утверждают, что модели с общей памятью, такие как OpenMP или UPC, легче программировать.
Кто-нибудь знает, почему существует такая разница в восприятии передачи сообщений и разделяемой памяти в мирах ИТ и высокопроизводительных вычислений? Это связано с какой-то фундаментальной разницей в том, как Erlang и MPI реализуют передачу сообщений, что делает передачу сообщений в стиле Erlang намного проще, чем MPI? Или есть какая-то другая причина?