Huge time difference if function is called from within another function

4 visualizaciones (últimos 30 días)
Function A, when called directly, runs in 10 minutes. However, if function A is called by function B, and I run function B, the time spent of running function A is 100 minutes or so. Is this is a feature of Matlab?
Also, if I run two instances of Matlab, and run the same function on both these instances, can it happen that the first instance takes less time compared to the other?
  2 comentarios
James Tursa
James Tursa el 5 de Ag. de 2015
You need to give more information about what functions you are calling and how you are calling them. There is no generic 10x time penalty for calling a function from within another function.
tirupam goel
tirupam goel el 7 de Ag. de 2015
Thank you. Given the complexity of my code, I thought it would be better to simplify the question. I figured the issue. Suppose function A needs another functions C. It matters if function C is passed as a parameter to function B (which then passes it to function A), versus function C being constructed within function B. The former is much faster, and it worked for me.

Iniciar sesión para comentar.

Respuestas (1)

Walter Roberson
Walter Roberson el 5 de Ag. de 2015
What you describe could happen if function B restricts the number of threads to execute on, or opens a parpool that is smaller than the number of cores, and A is working with large matrices using data patterns that can normally be divided up into multiple cores automatically by BLAS or MLK or the like.
  1 comentario
tirupam goel
tirupam goel el 7 de Ag. de 2015
Thank you. Parallel code was not the issue. I figured the issue. Suppose function A needs another functions C. It matters if function C is passed as a parameter to function B (which then passes it to function A), versus function C being constructed within function B. The former is much faster, and it worked for me.

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by