What is the Complexity and Time of a Scalapack Routine ??

Posted:
Thu May 08, 2008 12:42 pm
by arad
Hi guys
I need to estimate the time and the complexity (in Gflops) of the routine PDGEQRF that computes the QR factorization of a matrix. Is there any routine in Scalapack that gives me these results? any link that gives advices on this ?
Thank you !

Posted:
Thu May 08, 2008 2:04 pm
by Julien Langou
No there is no routine in ScaLAPACK that gives you the complexity cost of
a routine. Nor in LAPACK.
To get them you can go and look in the LAPACK Users' Guide the Appendix
C: Operation Counts for the BLAS and LAPACK pp.118-123. In the case,
where m>=n the standard costs for PDGEQRF (you need to look at DGEQRF)
is 2mn^2-2/3n^3.
There are some timing utility in ScaLAPACK and LAPACK but they are
internal, to get the time of a ScaLAPACK routine use whatever parallel timer
you are used to.

Posted:
Thu May 08, 2008 2:57 pm
by arad
thank you a lot
but i cant find this.. can u give me the link ?
thank you !

Posted:
Thu May 08, 2008 3:07 pm
by Julie

Posted:
Fri May 23, 2008 8:06 pm
by arad
Well I tried this in order to count the time required for running the QR routine of my program :
- Code: Select all
CALL CPU_TIME(T2)
CALL PDGEQRF( M, N, A, IA, JA, DESCA, TAU, WORK, LWORK,
$ INFO )
CALL CPU_TIME(T1)
WRITE(*,*) ' TIME FOR QR =',T1-T2
is the routine CPU_TIME reliable for counting this way the time of the routine ? is there any better ?
Re: What is the Complexity and Time of a Scalapack Routine ??

Posted:
Fri Aug 08, 2008 12:09 pm
by Julien Langou
To time a MPI routine, one pretty well accepted way to do is:
- Code: Select all
MPI_Barrier /* so that every process enters the routine (almost) at the same time */
start_time
call routine
stop_time
MPI_Allreduce() /* to find the max time among all the processes */
By the way, another source to know the # of FLOPS of some LAPACK routines is dopla.f.
See Clint Whaley's post:
http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&t=729--julien