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