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