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

Материал из Алговики
Перейти к навигации Перейти к поиску
 
(не показано 7 промежуточных версий 3 участников)
Строка 1: Строка 1:
= Пункт 1.7 =
+
Хорошая работа. Есть несколько замечаний
'''принято'''
 
Необходимо пояснить строение графа, он далек от классического инф. графа.
 
Что такое зеленый прямоугольник с "Х"?
 
Что вообще представляют собой элементы на схеме и стрелки?
 
Думается, лучше перерисовать, т.к. на этапе проверки математики алгоритма такой рисунок точно не пройдет...
 
  
 +
'''Спасибо! Внесла небольшие правки в статью по замечаниям. На некоторые замечания ответила в этом тексте'''
  
 +
= Пункт 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 – размер разреженной матрицы.
 +
 
 +
''' Учитываются, размер разреженной матрицы n, хранится она в формате CSR: 2 nnz + n + 1 памяти, плюс x, плотный вектор размера n'''
 +
 
 +
= Пункт 2.4 =
 +
 
 +
Непонятно какая реализация алгоритма использовалась в экспериментах. Если это собственная реализация, то нужно кратко описать язык программирования, библиотеки, которые использовались и т.п.
 +
'''Собственная реализация на языке C, никаких дополнительных библиотек кроме стандартных библиотек языка и mpi.h не использовалось'''
 +
 
 +
'''4. управляющий процессор разделяет матрицу на блоки в зависимости от числа процессоров и рассылает остальным процессорам строки матрицы и вектор'''
 +
 
 +
Разделение матрицы идет только по строкам или по блокам матрицы?
 +
'''Разделение происходит по блокам, которые содержат целое число строк. Число строк на каждом процессоре равно  <math>\frac{n}{k}</math>'''
 +
 
 +
 
 +
Опечатка - исправила
 +
 
 +
 
 +
Нужно описать, что подразумевается под «Matrix size» на рисунках, число ненулевых элементов или размерность матрицы, и указать обе величины в численных экспериментах.
 +
'''«Matrix size» равно <math>n</math>. В экспериментах число ненулевых элементов задавалось как <math>n * \sqrt{n}</math>'''
 +
 
 +
 
 +
'''Улучшенный алгоритм:'''
 +
'''4. управляющий (нулевой) процессор собирает результат или же каждый процессор записывает свою часть результата (при помощи процедур параллельной записи)'''
 +
 
 +
Если в расчет и 1-го алгоритма и «улучшенного алгоритма» входила параллельная запись в файл, а не просто сборка данных на управляющем процессоре, то нужно это явно уточнить в тексте.
 +
'''Нет, запись в файл не производилась в экспериментах'''
 +
 
 +
 
 +
Опечатки - исправила.
 +
 
  
 +
'''Тестирование производилось на кластере cluster2 ИВМ РАН.'''
  
И, конечно, хорошо бы действительно пересчитать на однородном кластере, сделать соответствующие диаграммы, приложить код (на algowiki есть git-репозиторий).
+
Нужно добавить ссылку на описание кластера.
Обратитесь к организаторам, может быть, все это возможно устроить?
+
Почему не проводились эксперименты только на очередях из однородных ядер на кластере ИВМ?
 +
'''Потому что очереди из однородных ядер содержат 16 или 32 ядер, мне этого было недостаточно. Cсылку добавила.'''

Текущая версия на 14:50, 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

Непонятно какая реализация алгоритма использовалась в экспериментах. Если это собственная реализация, то нужно кратко описать язык программирования, библиотеки, которые использовались и т.п. Собственная реализация на языке C, никаких дополнительных библиотек кроме стандартных библиотек языка и mpi.h не использовалось

4. управляющий процессор разделяет матрицу на блоки в зависимости от числа процессоров и рассылает остальным процессорам строки матрицы и вектор

Разделение матрицы идет только по строкам или по блокам матрицы? Разделение происходит по блокам, которые содержат целое число строк. Число строк на каждом процессоре равно [math]\frac{n}{k}[/math]


Опечатка - исправила


Нужно описать, что подразумевается под «Matrix size» на рисунках, число ненулевых элементов или размерность матрицы, и указать обе величины в численных экспериментах. «Matrix size» равно [math]n[/math]. В экспериментах число ненулевых элементов задавалось как [math]n * \sqrt{n}[/math]


Улучшенный алгоритм: 4. управляющий (нулевой) процессор собирает результат или же каждый процессор записывает свою часть результата (при помощи процедур параллельной записи)

Если в расчет и 1-го алгоритма и «улучшенного алгоритма» входила параллельная запись в файл, а не просто сборка данных на управляющем процессоре, то нужно это явно уточнить в тексте. Нет, запись в файл не производилась в экспериментах


Опечатки - исправила.


Тестирование производилось на кластере cluster2 ИВМ РАН.

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