MATLAB BUSY, NO OUTPUT

2 views (last 30 days)
mpho bosupeng
mpho bosupeng on 4 Jun 2021
Answered: Sanchari on 3 May 2024
Hello, I am running MATLAB 2021 to process some time series decomposition using Fast Iterative Filtering but it takes a lot of time on "busy" and there is no final output. And there is the "waitforbuttonpress" notification. Is the problem with the computer? Any fast processing add in?
Kindly advice. I would appreciate it

Answers (1)

Sanchari
Sanchari on 3 May 2024
Hello mpho,
When MATLAB is stuck on "busy" for an extended period while performing computationally intensive tasks, it suggests that the issue may not necessarily be with your computer's hardware but could be related to the code's execution flow or computational efficiency.
Here are some steps you could take to address these issues:
1. Addressing “waitforbuttonpress”:
  • Code Review: The “waitforbuttonpress” function causes MATLAB to pause execution until a keyboard key is pressed or a mouse button is clicked. This function is often used in scripts for debugging or to manually control the flow of a GUI. Check the code and comment it out if it’s not essential.
  • Debugging: If “waitforbuttonpress” is intentionally used, ensure that its behaviour is as expected. Sometimes, scripts might wait for user input unintentionally due to misplaced function calls.
2. Improving Computational Efficiency:
  • Optimize the code: Ensure the code is optimized for performance. This includes vectorizing loops where possible, preallocating arrays to avoid increasing their size within a loop and using built-in functions.
  • Parallel Processing: MATLAB’s Parallel Computing Toolbox allows you to perform computations in parallel, utilizing multiple CPU cores or GPUs. If your task is parallelizable, this can significantly reduce computation time. For example, you can use “parfor” instead of “for” loops that can run iterations independently.
  • Profile the code: Use MATLAB’s built-in profiler (profile on; profile viewer) to identify bottlenecks in the code. The profiler provides detailed information about which lines of code or functions are consuming the most time, helping to target the optimization efforts more effectively.
  • Hardware considerations: While the issue might not be solely with the computer, do consider upgrading hardware to improve performance if possible.
  • Algorithmic efficiency: Consider the algorithmic complexity of the Fast Iterative Filtering method used in the code. If there are parameters that control the precision or convergence criteria of the algorithm, adjusting these might result in faster computation times at the expense of some accuracy.
  • External Libraries and Tools: For some specific tasks, external libraries or tools might offer more efficient implementations. Ensure that the most updated libraries for time series decomposition are being used and that they are correctly installed and integrated into the MATLAB environment.
3. Fast Processing Add-Ons:
  • MATLAB Coder: Converts MATLAB code to C/C++ code which can be compiled and executed at a higher speed. This is useful for computationally intensive parts of the code.
  • GPU Computing: For numerical computations, using MATLAB’s GPU capabilities can significantly speed up processing times. Check if some tasks can be offloaded to a GPU.
Please refer to the following links to know further about related queries:
  1. MATLAB Coder (Mathworks documentation): https://www.mathworks.com/help/coder/index.html?searchHighlight=MATLAB%20Coder&s_tid=srchtitle_support_results_1_MATLAB%20Coder
  2. GPU Coder (Mathworks documentation): https://www.mathworks.com/help/gpucoder/index.html?s_tid=CRUX_lftnav
  3. Run MATLAB functions on a GPU (Mathworks documentation): https://www.mathworks.com/help/parallel-computing/run-matlab-functions-on-a-gpu.html?searchHighlight=GPU%20coding&s_tid=srchtitle_support_results_2_GPU%20coding
  4. Parallel Computing Toolbox (Mathworks documentation): https://www.mathworks.com/help/parallel-computing/index.html?searchHighlight=parallel%20computing%20toolbox&s_tid=srchtitle_support_results_1_parallel%20computing%20toolbox
  5. Profile function (Mathworks documentation): https://www.mathworks.com/help/matlab/ref/profile.html?searchHighlight=MATLAB%20profiler&s_tid=srchtitle_support_results_1_MATLAB%20profiler
  6. Profiler App (Mathworks documentation): https://www.mathworks.com/help/matlab/matlab_prog/profiling-for-improving-performance.html?searchHighlight=MATLAB%20profiler&s_tid=srchtitle_support_results_3_MATLAB%20profiler
  7. Waitforbuttonpress (mathworks documentation): https://www.mathworks.com/help/matlab/ref/waitforbuttonpress.html?searchHighlight=waitforbuttonpress&s_tid=srchtitle_support_results_1_waitforbuttonpress
  8. Waitforbuttonpress errors (Mathworks documentation): https://www.mathworks.com/support/search.html/answers/102570-why-does-matlab-produce-an-error-when-i-execute-waitforbuttonpress-and-close-the-figure-window-witho.html?fq%5B%5D=asset_type_name:answer&fq%5B%5D=category:matlab/interactive-control-and-callbacks&page=1
Hope this helps!

Community Treasure Hunt

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

Start Hunting!