¿Ha visto aplicaciones de sistemas lineales densos a gran escala (por ejemplo, buscando [matemáticas] x [/ matemáticas] en [matemáticas] Ax = b [/ matemáticas] y la matriz [matemáticas] A \ en K ^ {n \ veces n} [ / math] con [math] n \ geq 10 ^ 6 [/ math] o más grande?

No tengo una respuesta a su pregunta, pero tengo algo de reflexión.

Dices que estás buscando un sistema lineal denso. Supuestamente, esto será lo suficientemente denso como para que no podamos escribirlo más simplemente que como una matriz en la memoria. Es importante tener esto en cuenta porque, con frecuencia, programamos matrices dispersas como pares (índice: valor).

Además, suponga que cada valor es un número entero entre -127 y 127 inclusive. Dichos números requieren solo un byte de espacio. Una matriz con dimensiones 10 ^ 6 x 10 ^ 6 tendría 10 ^ 12 bytes de datos.

Para dar una perspectiva, eso es un terabyte o 1000 gigabytes. La RAM de su computadora probablemente esté entre 4GB y 8GB. AWS ofrece 512 GB de RAM IIRC.

Entonces, para hacer el cálculo en la memoria, tendría que pagar por más recursos o ser inteligente con los recursos que tiene disponibles.

Editar: Vale la pena señalar que solo consideramos enteros relativamente pequeños para esta estimación. Para números menos agradables, probablemente necesitará usar 8 bytes por número (este es un tipo de datos “doble” en muchos lenguajes de programación). Esto es más realista y aumentaría la cantidad de datos utilizados.