Huge time difference if function is called from within another function
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
James Tursa
2015-8-5
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.
回答(1 个)
Walter Roberson
2015-8-5
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!