Временная сложность scipy.linalg.solve (LAPACK gesv) на большой матрице?

Если я используюscipy.linalg.solve (который, я полагаю, вызывает функцию gesv LAPACK) для ~ 12000 неизвестных задач (с плотной несимметричной матрицей размером ~ 12000 квадратов) на моей рабочей станции, я получаю хороший ответ в10-15 minutes.

Просто чтобы исследовать пределы возможного (обратите внимание, я не говорю «полезный»), я удвоил разрешение своей основной проблемы, что приводит к необходимости решения для ~ 50000 неизвестных. Хотя технически это работало бы на моей рабочей станции после того, как я добавил еще несколько десятков гигабайт подкачки, было бы более разумно использовать некоторое HW с достаточным объемом ОЗУ, и поэтому я запустил его на AWS EC2 с большой памятью Quadruple Extra Large. .. где он был в прошлом14 hours (эй, точечные экземпляры дешевы), и невозможно сказать, как далеко они пройдут.

К сожалению, я понятия не имею, какова временная сложность участвующих решателей (мой гугл-фу не помог мне в этом). Если это O (N ^ 2), то я ожидал, что это будет сделано приблизительно через 4 часа; если это O (N ^ 3), то, возможно, это будет сделано через 16 часов. Конечно, это интерпретирует N как число неизвестных - которое увеличилось в четыре раза - число элементов в матрице увеличилось в 16 раз!

И совет, который поможет мне определить, есть ли у этого шанс на завершение в моей (проекте) жизни или не был с благодарностью получен!

Другая информация:

Разреженные матрицы здесь не представляют интереса (моя матрица плотная, и в любом случае scipy не работает с более чем2**31 ненулевые элементы даже на 64-битных).

Я использую scipy Debian / Squeeze на рабочей станции, Ubuntu 12.04 на EC2. Оба 64-битных очевидно.

Ответы на вопрос(1)

Ваш ответ на вопрос