Обсуждение участницы:Trrufina: различия между версиями
Trrufina (обсуждение | вклад) |
Trrufina (обсуждение | вклад) |
||
Строка 49: | Строка 49: | ||
В оценке не учитывается пункт 1 – размер разреженной матрицы. | В оценке не учитывается пункт 1 – размер разреженной матрицы. | ||
− | ''' Учитываются | + | ''' Учитываются, размер разреженной матрицы n, хранится она в формате CSR: 2 nnz + n + 1 памяти, плюс x, плотный вектор размера n''' |
= Пункт 2.4 = | = Пункт 2.4 = |
Версия 14:33, 12 декабря 2016
Хорошая работа. Есть несколько замечаний
1 Пункт 1.1
Огромные разрежённые матрицы часто возникают при решении таких задач, как дифференциальное уравнение в частных производных или операции с графами.
Это предложение нужно переформулировать. Разреженные матрицы часто возникают при решении дифференциальных уравнений именно численными методами.
2 Пункт 1.2
Наиболее удобным форматом для вычисления произведения матрицы на вектор является "Compressed Sparse Row" или сокращенно CSR-формат.
С какой точки зрения данный формат является «наиболее удобным»?
Данный раздел хорошо бы дополнить хотя бы кратким упоминанием других способов хранения разреженных матриц.
Алгоритм умножения матрицы на вектор полностью детерминирован и не зависит от порядка хранения элементов принадлежащих одной строке.
Будет ли влиять выполнение свойства ассоциативности для сложения на детерминированность алгоритма?
3 Пункт 1.5
Лучше использовать одинаковую индексацию для псевдокода алгоритма (1.4) и для схемы реализации алгоритма.
4 Пункт 1.6
Для вычисления матрично-векторного произведения матрицы размера [math]n*n[/math] и вектора размера n в последовательном варианте требуется:
* [math]nnz[/math] сложений, * [math]nnz[/math] умножений.
Оценка для числа сложений похоже не совсем правильная для алгоритма в 1.5 (например, для матрицы с одним ненулевым элементом).
5 Пункт 1.8
Можно ли записать параллельный алгоритм, использующий больше чем n процессоров, где n - число строк(столбцов)?
6 Пункт 1.9
Суммарная размерность входных данных: [math] 2(nnz + n) + 1 [/math]
В оценке не учитывается пункт 1 – размер разреженной матрицы.
Учитываются, размер разреженной матрицы n, хранится она в формате CSR: 2 nnz + n + 1 памяти, плюс x, плотный вектор размера n
7 Пункт 2.4
Непонятно какая реализация алгоритма использовалась в экспериментах. Если это собственная реализация, то нужно кратко описать язык программирования, библиотеки, которые использовались и т.п.
4. управляющий процессор разделяет матрицу на блоки в зависимости от числа процессоров и рассылает остальным процессорам строки матрицы и вектор
Разделение матрицы идет только по строкам или по блокам матрицы?
Опечатка - Данный алгоритм несмотря на кажщуюся простоту
Нужно описать, что подразумевается под «Matrix size» на рисунках, число ненулевых элементов или размерность матрицы, и указать обе величины в численных экспериментах.
Улучшенный алгоритм:
4. управляющий (нулевой) процессор собирает результат или же каждый процессор записывает свою часть результата (при помощи процедур параллельной записи)
Если в расчет и 1-го алгоритма и «улучшенного алгоритма» входила параллельная запись в файл, а не просто сборка данных на управляющем процессоре, то нужно это явно уточнить в тексте.
Опечатки - Следует заметить, что в данной реализации матрица генерировалась при помощи случайных числел, и кроме того кластер, на котором прозиводились эксперименты не является однородным, различные ядра имеют различные характеристики, вследствие чего возникает "рельефность" производительности и эффективности.
Тестирование производилось на кластере cluster2 ИВМ РАН.
Нужно добавить ссылку на описание кластера. Почему не проводились эксперименты только на очередях из однородных ядер на кластере ИВМ?