es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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) !

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Este error parece estar relacionado con la función rand y las dimensiones de las matrices involucradas. Cuando se ejecuta rand(2,720)/rand(720,720), se lanza un StackOverflowError. Sin embargo, si cambiamos las dimensiones a rand(2,120)/rand(120,120), obtenemos un resultado sin errores. Pero, cuando cambiamos las dimensiones nuevamente a rand(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 el StackOverflowError.

    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.

Comments are closed.