2010-08-01 3 views

ответ

0

Не существует эффективных алгоритмов для создания разреженных матриц в параллельном доступе. Правдоподобным является тип матрицы координат, который требует сортировки после заполнения содержимого, но этот тип медленный для матричных продуктов и т. Д.

Решение. Вы не строите разреженную матрицу - вы не храните ее в памяти; вы выполняете неявные операции, когда вы вычисляете элементы разреженной матрицы.

0

Если вы храните свою матрицу в качестве карты координат, любой язык, на котором имеется параллельная реализация словаря, должен выполнить эту работу за вас.

У Java есть ConcurrentHashMap, а .NET 4 имеет ConcurrentDictionary, оба из которых позволяют параллельно вставлять многопоточный неблокирующий (afaik) элемент.

+0

Параллелизм и параллелизм - это не одно и то же. Проблема в том, что это действительно параллельное заполнение элементов элементами в разреженной матрице. В частности, в моем случае я хочу реализовать его на графических процессорах. –