2012-04-24 2 views
2

Я пишу тестовое приложение для Cicero, и мне нужен простой смущающий параллельный алгоритм, который легко понять, но немного менее тривиальным, как добавление одного к входу.Какие простые смущающие параллельные алгоритмы?

Прямо сейчас меня интересуют только алгоритмы, для которых требуется только «карта». В качестве альтернативы, меня интересует только шаг «карты» алгоритма.

Любые идеи?

+0

посмотреть на cpi.c: http://www.usqcd.org/fnal/example/cpi.c – Anycorn

+1

Интересный вопрос, но слишком широкий, вам необходимо ограничить сферу своего вопроса, чтобы избежать падения в " конструктивной "категории. –

ответ

2

Неловкий параллельный алгоритм - это тот, который обычно имеет некоторую структуру данных D, собранную из элементов e некоторой операцией o, например, конкатенацию. Вы получаете смущающий параллелизм, когда хотите применить операции X-D, например, вычислить X (D), и вы получите его, используя дистрибутивный закон X (D) = X (p) O X (q) с D = p o q. Разделив D на свои элементы, вы можете применить X к каждому из них и вычислить ответы взаимозависимо.

Многие операции с матрицами, которые применяют поэтапные операции (например, добавление матрицы, вычитание), смущающе параллельны. FORTRAN имеет функцию ELEMENTAL, которую вы можете применить к массивам, которые предназначены для использования в таких операциях.

Вы можете обобщить операцию конкатенации в N измерениях или операций склеивания, которые составляют подграфы вместе.

Смежные вопросы