Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.
1696 Discussions

Is there any parallel version of sstein? if so, how?

1 Reply
Honored Contributor III
If you look at sstein.f ( it would appear that you could do some parallization. As to the overall effect for your application I could not venture to guess. The listed subroutine is not parallel however some of the library functions called (in MKL equivilent) may be parallel. Some of the statements in this routine can be parallized. I won't list the routine here but I will make some comments if you care to look at the listing:

On cursory look the DO 160 loop (main loop) cannot be parallized because this is an iterative convergence type of loop.

The section of code that computes ONENRM could be lifted out of the DO 160 loop and create an array of ONENRM(I) in a parallel DO I=1,IBLOCK(M). Then inside the DO 160 loop use new arreayONENRM(NBLK) instead of the scalar ONENRM

Depending on BLKSIZ and memory controllerthe four calls to SLARNV, SCOPY, SCOPY, SCOPY could be performed in parallel (SECTIONS).

The DO 130 loop should be made into two loops to avoid ZEROing Z(B1:B1+BLKSIZ-1)

As to what is inside the MKL sstein I cannot say.

Jim Dempsey
0 Kudos