Есть более чем одна противоположность "неловко параллельной" проблемы.
Идеально последовательный
Одна противоположность - это непараллелизуемая проблема, то есть проблема, для которой не может быть достигнуто ускорение при использовании более одного процессора. Несколько предложений уже были опубликованы, но я бы предложил еще одно имя: совершенно последовательная проблема.
Примеры: проблемы ввода-вывода задачи, тип задачи «вычислить f 1000000 (x 0 )», вычисление некоторых криптографических хэшей функции .
Связь с интенсивным
Другая противоположность - это распараллеливаемая проблема, которая требует много параллельной связи (проблема интенсивная связь ). Реализация такой проблемы будет правильно масштабироваться только на суперкомпьютере с высокоскоростным межсоединением с низкой задержкой. Сравните это с смущающими параллельными проблемами, реализация которых эффективно работает даже в системах с очень плохим соединением (например, фермы ).
Яркий пример задачи, требующей интенсивного общения: решение A x = b
, где A
- большая плотная матрица. Фактически, реализация проблемы используется для составления рейтинга TOP500 . Это хороший тест, поскольку он подчеркивает вычислительную мощность отдельных процессоров и качество межсоединения (из-за интенсивности связи).
В более практических терминах любая математическая модель, которая решает систему уравнений в частных производных на регулярной сетке с использованием дискретного перехода по времени (например: прогноз погоды, in silico краш-тесты), распараллеливается на декомпозиция домена . Это означает, что каждый ЦП заботится о части сетки, и в конце каждого временного шага ЦПУ обмениваются своими результатами на границах области с «соседними» ЦП. Эти обмены делают этот класс проблем интенсивным общением.