[Beowulf] OpenMP on AMD dual core processors
landman at scalableinformatics.com
Fri Nov 21 07:23:51 PST 2008
Geoff Jacobs wrote:
> If this were done with MPI, one would have to be careful of the
> boundaries on the matrix as it's partitioned for computation. OpenMP is
> intelligent enough to hold off computation on the tiles south and east
> of the first until the first is done, and so forth?
No... I didn't address the interior vs exterior. I have a nice worked
example where I convert this sort of code into an exterior, a skin, and
the communication for an MPI and OpenMP version. Scales pretty well.
You are right, I should have fixed that as well.
>> ! now all you need is a "linear scan" to find positive elements in
>> ! dv. You can approach these as sum reductions, and do them in
>> ! parallel
>> do i=1,Nx
>> do j=1,Ny
>> sum = sum + dabs(dv(i,j) .gt. 0.0) * dv(i,j)
>> end do
>> if (sum .gt. 0.0) converged = 0
>> end do
>> The basic idea is to replace the inner loop conditionals and remove as
>> many of the shared variables as possible.
> Yup, keep things pipelined.
That was the idea, though I didn't compile/test the code to be sure it
would work. That and I usually try to avoid real coding when I am tired
at night. Coding and beer don't mix (for me).
Joseph Landman, Ph.D
Founder and CEO
Scalable Informatics LLC,
email: landman at scalableinformatics.com
web : http://www.scalableinformatics.com
phone: +1 734 786 8423 x121
fax : +1 866 888 3112
cell : +1 734 612 4615
More information about the Beowulf