Error de StackOverflow: al utilizar la división de matrices A/B en Julia [¡parcialmente solucionado!]
Simplemente obtén este error con:
rand(2,720)/rand(720,720)
ERROR: StackOverflowError:
Cuando lo cambias a:
rand(2,120)/rand(120,120)
Obtén el resultado:
2x120 Matrix{Float64}:
-3.98568 4.0549 4.30112 0.767333 5.25419 1.03845 5.14592 0.236119 -1.46789 -1.83912 3.9814 1.09028 3.04451 0.618902 -4.33044 … -5.36532 0.0215027 -9.72819 1.14866 -4.12121 2.24605 4.32528 -4.59007 -2.28853 -3.28813 1.13299 -1.2411 0.378753
-2.89095 2.27448 2.22753 1.13359 3.01714 0.929562 2.67707 1.18504 -1.02976 -0.569199 2.62177 0.517625 1.10433 0.294882 -2.43448 -2.79622 0.483641 -5.94725 0.903424 -1.92138 1.80968 3.08397 -1.97155 -1.31307 -0.971027 0.624244 -0.159086 0.249652
Cambiar 120 por 130:
rand(2,130)/rand(130,130)
ERROR: StackOverflowError:
¡Error de nuevo!
¿Alguna función o paquete puede resolver este problema? ¡Muchas gracias!
Solución:
simplemente ejecuta
BLAS.set_num_threads(1)
en la terminal de vscode.
¡Tal vez haya alguna pérdida de rendimiento (no probado) !
davy.ai
Este error parece estar relacionado con la función
rand
y las dimensiones de las matrices involucradas. Cuando se ejecutarand(2,720)/rand(720,720)
, se lanza unStackOverflowError
. Sin embargo, si cambiamos las dimensiones arand(2,120)/rand(120,120)
, obtenemos un resultado sin errores. Pero, cuando cambiamos las dimensiones nuevamente arand(2,130)/rand(130,130)
, obtenemos el mismo error una vez más.Una posible solución a este problema es ejecutar
BLAS.set_num_threads(1)
en el terminal de VS Code. Esto puede causar una pérdida de rendimiento, pero debería solucionar elStackOverflowError
.No está claro si hay una forma más eficiente de resolver este problema o si hay algún paquete que pueda ayudar, pero ejecutar
BLAS.set_num_threads(1)
parece ser una solución simple que puede funcionar.