Обсуждение участницы:Trrufina: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
Хорошая работа. Один маленький вопрос
+
Хорошая работа. Есть несколько замечаний
 +
 
 +
 
 +
= Пункт 1.1 =
 +
 
 +
'''Огромные разрежённые матрицы часто возникают при решении таких задач, как дифференциальное уравнение в частных производных или операции с графами.'''
 +
 
 +
Это предложение нужно переформулировать. Разреженные матрицы часто возникают при решении дифференциальных уравнений именно численными методами.
 +
 
  
 
= Пункт 1.2 =
 
= Пункт 1.2 =
Наиболее удобный CSR. Почему?
+
'''Наиболее удобным форматом для вычисления произведения матрицы на вектор является "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 ИВМ РАН.'''
  
И, конечно, хорошо бы действительно пересчитать на однородном кластере, сделать соответствующие диаграммы, приложить код (на algowiki есть git-репозиторий).
+
Нужно добавить ссылку на описание кластера.
Обратитесь к организаторам, может быть, все это возможно устроить?
+
Почему не проводились эксперименты только на очередях из однородных ядер на кластере ИВМ?

Версия 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 ИВМ РАН.

Нужно добавить ссылку на описание кластера. Почему не проводились эксперименты только на очередях из однородных ядер на кластере ИВМ?