How to compute execution time for code uses parfoor?

6 次查看(过去 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?

回答(1 个)

Adit Alware
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
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 CenterFile Exchange 中查找有关 Parallel Computing Fundamentals 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by