¿La complejidad del tiempo de scipy.linalg.solve (LAPACK gesv) en matriz grande?

Si yo usoscipy.linalg.solve (que creo que llama a la función gesv de LAPACK) en un ~ 12000 problema desconocido (con una matriz densa, no simétrica de ~ 12000 cuadrados) en mi estación de trabajo, recibo una buena respuesta en10-15 minutos.

Solo para explorar los límites de lo que es posible (nota que no digo "útil"), doblé la resolución de mi problema subyacente, lo que lleva a la necesidad de resolver por aproximadamente 50000 incógnitas. Si bien esto técnicamente se ejecutaría en mi estación de trabajo una vez que hubiera agregado más 10s de GBytes de intercambio, parecía más prudente usar algunos HW con la RAM adecuada, así que lo arranqué en un AWS EC2 Quadruple High Memory Quadruple Extra Large. .. donde ha estado puliendo hasta el final14 horas (Hey, las instancias puntuales son baratas) y es imposible decir qué tan lejos está.

Desafortunadamente, no tengo idea de cuál es la complejidad temporal de los solucionadores involucrados (mi google-fu me falló en este caso). Si es O (N ^ 2), habría esperado que se hiciera después de unas 4 horas; si es O (N ^ 3) entonces tal vez se haga en 16 horas. Por supuesto, eso es interpretar N como el número de incógnitas, que se ha cuadruplicado, ¡el número de elementos en la matriz ha aumentado en un factor de 16!

¡Y los consejos que me ayudarán a determinar si esto tiene alguna posibilidad de completarse en la vida de mi (proyecto) o no recibirlo con gratitud!

Otra información:

Las matrices dispersas no son de interés aquí (mi matriz es densa y, en cualquier caso, Scipy's no funciona con más de2**31 elementos distintos de cero incluso en 64 bits).

Estoy usando el scipy de Debian / Squeeze en la estación de trabajo, Ubuntu 12.04 en EC2. Ambos, obviamente, de 64 bits.

Respuestas a la pregunta(1)

Su respuesta a la pregunta