Archives


- Beowulf
- Beowulf Announce
- Scyld-users
- Beowulf on Debian

[Beowulf] OpenMP on AMD dual core processors

Many of your questions may have already been answered in earlier discussions or in the FAQ. The search results page will indicate current discussions as well as past list serves, articles, and papers.

Search

Nathan Moore ntmoore at gmail.com
Fri Nov 21 07:42:37 PST 2008


What a relief that no one castigated me for including a "goto"!  I'm
teaching out of Kupferschmid's "Classical Fortran", and he makes a rather
compelling case that goto s actually more pedagogically sound (for
beginners) than "do while"

Successive steps in the equilibration are time-dependant, so they're
IMPOSSIBLE to parallelize.  I suppose I could get around the
re-initialization by including a "SINGLE" directive around the iteration
control structure.

Nathan

On Fri, Nov 21, 2008 at 9:05 AM, <rssr at lncc.br> wrote:

> Hi All
>
> I thing the problem could be the  convergence "loop" test and the criation
> of threads
>
> 10 converged = 1
> !$OMP PARALLEL
> !$OMP DO
> .....
> !$OMP ENDDO
> !$OMP END PARALLEL
> if(converged.eq.0) then
>
>      goto 10
> endif
>
> Each time you "goto 10"
> the compiler "create" and "initialize" the threads
> and this is time comsuming.
> try to change the convergence test to a
> reduce operation this will
> take time but not some much as !$OMP
> PARALLEL
>
> I hope its help
>
> Renato Silva
>
>
>
> > Hi All,
> >
> > I'm getting to the end of a semester of computational physics at my
> > institution, and thought it would be fin to close the semester with a
> > discussion of parallel programming. Initially, I was simply planning to
> > discuss MPI, but while reading through the gfortran man page I realized
> > that
> > gcc now supports OpenMP directives.
> >
> > Given that the machines my students are using are all dual core, I
> started
> > working on a simple example that I hoped would show a nice speedup from
> > the
> > "easy" library.
> >
> > The specific problem I'm working on is a 2-d solution to the laplace
> > equation (electrostatics). The bulk of the computation is a recursion
> > relation, applied to elements of a 2-d array, according to the following
> > snippet.
> >
> > Of course, by now I should know that "simple" never really is. When I
> > compile with gfortran and run with 1 or 2 cores (ie, OMP_NUM_THREADS=2,
> > export OMP_NUM_THREADS) there is basically no difference in execution
> > time.
> >
> >
> > Any suggestions? I figured that this would be a simple example to
> > parallelize. Is there a better example for OpenMP parallelization? Also,
> > is there something obvious I'm missing in the example below?
> >
> > Nathan Moore
> >
> > integer,parameter::Nx=1000
> > integer,parameter::Ny=1000
> > real*8 v(Nx,Ny)
> > integer boundary(Nx,Ny)
> >
> > v_cloud = -1.0e-4
> > v_ground = 0.d0
> >
> > convergence_v = dabs(v_ground-v_cloud)/(1.d0*Ny*Ny)
> >
> > ! initialize the the boundary conditions
> > do i=1,Nx
> > do j=1,Ny
> > v_y = v_ground + (v_cloud-v_ground)*(j*dy/Ly)
> > boundary(i,j)=0
> > v(i,j) = v_y
> > ! we need to ensure that the edges of the domain are held
> > as
> > boundary
> > if(i.eq.0 .or. i.eq.Nx .or. j.eq.0 .or. j.eq.Ny) then
> > boundary(i,j)=1
> > endif
> > end do
> > end do
> >
> > 10 converged = 1
> > !$OMP PARALLEL
> > !$OMP DO
> > do i=1,Nx
> > do j=1,Ny
> > if(boundary(i,j).eq.0) then
> > old_v = v(i,j)
> > v(i,j) =
> > 0.25*(v(i-1,j)+v(i+1,j)+v(i,j+1)+v(i,j-1))
> > dv = dabs(old_v-v(i,j))
> > if(dv.gt.convergence_v) then
> > converged = 0
> > endif
> > endif
> > end do
> > end do
> > !$OMP ENDDO
> > !$OMP END PARALLEL
> > if(converged.eq.0) then
> > goto 10
> > endif
> > _______________________________________________
> > Beowulf mailing list, Beowulf at beowulf.org
> > To change your subscription (digest mode or unsubscribe) visit
> > http://www.beowulf.org/mailman/listinfo/beowulf
> >
>



-- 
- - - - - - -   - - - - - - -   - - - - - - -
Nathan Moore
Assistant Professor, Physics
Winona State University
AIM: nmoorewsu
- - - - - - -   - - - - - - -   - - - - - - -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.scyld.com/pipermail/beowulf/attachments/20081121/127b013f/attachment.html


More information about the Beowulf mailing list