Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Fortran > Re: Using exter...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 23 of 23 Topic 8180 of 8668
Post > Topic >>

Re: Using external subroutines in OpenMP?

by jomarbueyes@[EMAIL PROTECTED] Apr 29, 2008 at 07:46 AM

On Apr 29, 7:08 am, Charles Coldwell <coldw...@[EMAIL PROTECTED]
> wrote:
> jomarbue...@[EMAIL PROTECTED]
 writes:
> > On Apr 27, 5:14 pm, Charles Coldwell <coldw...@[EMAIL PROTECTED]
> wrote:
>
> >> IIUC, the problem was in a section of code that looks something like
> >> this:
>
> >> !$omp parallel do private(wk, i2, i1) shared(x, z)
> >>   do i2  = 1, N2
> >>     do i1 = 1, N1
> >>        wk(i1) = x(i1, i2)
> >>     end do
> >>     call <NetLibSubroutine>(wk, z, <other stuff>)
> >>     do i1 = 1, N1
> >>        x(i1, i2) = wk(i1)
> >>   end do
> >> !$omp end parallel do
>
> >> The problem here is most likely coming in the second DO loop.
> >> Although wk is private, x is shared, and all the threads are
executing
> >> the same iterations over i1, and therefore clobbering each other's
> >> lvalues.
>
> > Thank you for your answer. I am a bit puzzled about your explanation
> > that the threads are clobbering each other's lvalues in the second
> > loop.  I might be missing something in the way that OpenMP works. As I
> > understand, the parallel do directive before the outer loop will make
> > sure that different threads use different non-overlaping sets of
> > values of i2.  Thus I'd expect that at a given time each thread is
> > working on a different column of x, thus the memory location x(i1, i2)
> > written too in the second inner loop is different for each thread
> > (that is, even though all threads write to the same set of rows, they
> > are writing different columns). Am I correct in this assumption or am
> > I missing something fundamental about OpenMP?
>
> No, you are correct.  Sorry for the red herring.  However, "z" is
> shared in the example above.  So if several threads are calling
> "<NetLibSubroutine>(wk, z, <other stuff>)" simultaneously, could that
> be the problem?
>
> Chip
>
> --
> Charles M. "Chip" Coldwell
> "Turn on, log in, tune out"
> GPG Key ID: 852E052F
> GPG Key Fingerprint: 77E5 2B51 4907 F08A 7E92  DE80 AFA9 9A8F 852E 052F

Hi Chip,

Thank you for your response.
I also considered the possibility of the array z causing the problem.
Since the array is not too large, I made it into a 2D array z(M,0:*)
and tried three approaches. 1) In serial ****tion I initialize z(:,0)
and copy it to z(:,it), it = 1, 2, ... Nt-1 (Nt is the number of
threads in the team). 2) In the parallel section, a single thread
initializes z(:,0) and copies it to z(:,it), it = 1, ..., Nt-1. Then
the rest of the threads work with it. 3) In the parallel section
thread it initializes z(:,it), even though all initializations are the
same.  Neither of the three approaches worked. Sometimes random
results come back from the Netlib subroutine, other times the program
hangs after entering the Netlib subroutine. I know that the Netlib
subroutines have been thoroughly tested and are very robust in serial
programs, so I know the problem is not the Netlib subroutine itself
but the way OpenMP is handling variables local to the subroutines.

Thanks again for your response

Jomar
 




 23 Posts in Topic:
Using external subroutines in OpenMP?
jomarbueyes@[EMAIL PROTEC  2008-04-25 18:36:24 
Re: Using external subroutines in OpenMP?
Reinhold Bader <Bader@  2008-04-26 11:26:33 
Re: Using external subroutines in OpenMP?
Sebastian Hanigk <hani  2008-04-26 13:12:32 
Re: Using external subroutines in OpenMP?
glen herrmannsfeldt <g  2008-04-26 09:01:53 
Re: Using external subroutines in OpenMP?
Sebastian Hanigk <hani  2008-04-26 19:29:05 
Re: Using external subroutines in OpenMP?
Charles Coldwell <cold  2008-04-27 11:27:29 
Re: Using external subroutines in OpenMP?
Sebastian Hanigk <hani  2008-04-27 17:45:31 
Re: Using external subroutines in OpenMP?
Charles Coldwell <cold  2008-04-27 22:26:50 
Re: Using external subroutines in OpenMP?
jomarbueyes@[EMAIL PROTEC  2008-04-26 22:25:35 
Re: Using external subroutines in OpenMP?
jomarbueyes@[EMAIL PROTEC  2008-04-26 22:36:54 
Re: Using external subroutines in OpenMP?
jomarbueyes@[EMAIL PROTEC  2008-04-26 22:44:18 
Re: Using external subroutines in OpenMP?
jomarbueyes@[EMAIL PROTEC  2008-04-27 07:53:59 
Re: Using external subroutines in OpenMP?
Sebastian Hanigk <hani  2008-04-27 17:38:32 
Re: Using external subroutines in OpenMP?
Charles Coldwell <cold  2008-04-27 22:14:11 
Re: Using external subroutines in OpenMP?
"James Van Buskirk&q  2008-04-27 17:04:45 
Re: Using external subroutines in OpenMP?
Charles Coldwell <cold  2008-04-28 11:19:45 
Re: Using external subroutines in OpenMP?
jomarbueyes@[EMAIL PROTEC  2008-04-28 08:47:32 
Re: Using external subroutines in OpenMP?
Charles Coldwell <cold  2008-04-29 12:08:17 
Re: Using external subroutines in OpenMP?
jomarbueyes@[EMAIL PROTEC  2008-04-28 09:26:26 
Re: Using external subroutines in OpenMP?
Tobias Burnus <burnus@  2008-04-28 09:57:56 
Re: Using external subroutines in OpenMP?
jomarbueyes@[EMAIL PROTEC  2008-04-28 15:21:19 
Re: Using external subroutines in OpenMP?
jomarbueyes@[EMAIL PROTEC  2008-04-28 19:34:56 
Re: Using external subroutines in OpenMP?
jomarbueyes@[EMAIL PROTEC  2008-04-29 07:46:22 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Sun Sep 7 2:30:15 CDT 2008.