Parallelize Solve () для Ax = b?

Перекрестно с STATS.se, так как эта проблема может охватить оба STATs.se/SO https:// stats.stackexchange.com/questions/17712/parallelize-solve-for-ax-b


У меня есть несколько чрезвычайно больших разреженных матриц, созданных с помощью функции spMatrix из пакета matrix.

Использование функции detect () работает для моей задачи Ax = b, но это занимает очень много времени. Несколько дней.

Я заметил, что http://cran.r-project.org/web/packages/RScaLAPACK/RScaLAPACK.pdf , похоже, имеет функцию, которая может распараллеливать функцию решения, однако установка новых пакетов на этот конкретный сервер может занять несколько недель.

На сервере уже установлен пакет Snow.

Итак

  1. Есть ли способ использовать снег для распараллеливания этой операции?
  2. Если нет, есть ли другие способы ускорить этот тип операции?
  3. Существуют ли другие пакеты, такие как RScaLAPACK? Мой поиск на RScaLAPACK, казалось, показал, что у людей было много проблем с этим.

Спасибо.

[РЕДАКТИРОВАТЬ] - Дополнительные сведения

Матрицы имеют размер примерно 370 000 x 370 000. Я использую его для определения центральности альфа, http://en.wikipedia.org/wiki/Alpha_centrality . Изначально я использовал функцию альфа-центральности в пакете igraph, но это привело бы к сбою R.

Подробнее

  • Это на одной машине с 12 ядрами и 96 гигабайтами памяти (я полагаю)
  • Это ориентированный граф, подобный линиям отношений цитирования в статьях.
  • Расчет числа условий и плотности займет некоторое время. Буду размещать по мере поступления.
  • Выполнит перекрестную публикацию на stat.SE и добавит ссылку сюда

9
задан Community 13 April 2017 в 02:44
поделиться