How to compute execution time for code uses parfoor?
3 次查看(过去 30 天)
显示 更早的评论
I have a code that uses parfoor from the parallel toolbox, and I need to compute the execution time. using tic, toc is highly depending on the processes that are running in the same time, therefore I decided to use (cputime) from MATLAB that computes the cputime..
but is it OK to use cputime if the code uses (parfor) with multiple workers?
if I use parfor, does it mean I am usin GPU? or different clusters in CPU?
if a code uses GPU then how to compute the execution time without using (tic,toc)?? cputime is enough or not?
0 个评论
回答(1 个)
Adit Alware
2022-5-27
Hi Maryam,
Using parfor does not mean you are leveraging GPUs. Parfor runs multiple workers on the available cores of your system's CPU. Since GPU cores can not serve as parallel pool workers.
Thus using cputime function to calculate the time elasped looks fine to me.
However, if you want to run your code over GPUs, you can use parfor in conjunction with spmd statement.
To understand about how to use multiple GPUs in parallel pool you may refer to the following links:
To calculate total time elasped, you may also use the timeit function:
t = timeit(f) % f is the function handle
Timeit measures the time (in seconds) required to run the function specified by the function handle f. In order to perform a robust measurement, timeit calls the specified function multiple times and returns the median of the measurements. If the function runs fast, timeit might call the function many times.
Thanks
1 个评论
Walter Roberson
2022-5-27
If you are using GPUs then gputimeit() instead of timeit()
When you use parfor you should cputime() within each worker, and total the results.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 GPU Computing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!