Преимущества использования MPI на машине UMA
Каковы преимущества использования MPI на машине UMA. Мне кажется, что было бы более разумно использовать OpenMP с машиной UMA, потому что они оба совместно используют память. Где MPI имеет больше смысла на машине NUMA, потому что NUMA предоставляет каждому процессу свою собственную память.
1 ответ
Ценность использования модели программирования с распределенной памятью, такой как MPI или Charm++, даже на номинально однородном оборудовании с разделяемой памятью заключается в том, что она создает гораздо более локальный дизайн алгоритмов и реализации. Даже для одного ядра затраты на доступ к памяти неодинаковы - предположения о пространственной и временной локализации глубоко вписываются в структуру общих иерархий памяти микропроцессора. Проектирование распределенной памяти также означает проектирование для работы с локальными порциями данных, а не со всем рабочим набором сразу.
Кроме того, имейте в виду, что даже многоядерная система с одним сокетом по-прежнему имеет частные кэши для каждого ядра, и что передача данных из одного кэша в другой влечет за собой расходы на связь, превышающие затраты на доступ к частным данным в локальном кэше. Пример того, как это может быть реализовано в приложениях, см. В статье Jetley & Kale "Оптимизация приложений, управляемых сообщениями, в многоядерных архитектурах", опубликованной на HiPC 2011.