DAG scheduling implemented with locks fails?

General OpenMP discussion

DAG scheduling implemented with locks fails?

Postby jhogg » Thu Aug 07, 2008 8:09 am

Hi,
I'm trying to implement a simple panel based cholesky factorization using a dag scheduler implemented via locks.

Main code: http://pastebin.com/m5e186800
Wrapper program: http://pastebin.com/d25c339a8

This works fine in serial, achieving a good residual of O(1e-14) .

In parallel it seems that the data in matrix A isn't getting communicated between threads. Specifically updates using a block (TASK_UB) get the wrong data which should have come from the column solve (TASK_SC); also column solves aren't getting the correct data from diagonal block factorizations (TASK_FD).

As far as I can tell this shouldn't happen - the locks on these blocks should have an implicit flush which forces the data to be correct, but with all compilers on problems of sufficient size I get poor residuals of O(1). This is on a system with two quad-core intel chips.

Any ideas why this isn't working appreciated.

Thanks,

Jonathan Hogg
jhogg
 

Re: DAG scheduling implemented with locks fails?

Postby jhogg » Fri Aug 08, 2008 8:59 am

Problem found - DAG not correct. Not an OpenMP problem.
jhogg
 

Re: DAG scheduling implemented with locks fails?

Postby ejd » Mon Aug 11, 2008 5:38 am

If you don't mind sharing, I would be interested in knowing what you found. This code seems like it would be perfect for using OpenMP V3.0 tasking and I would like to try and see which implementation is faster (the approach you took or tasking). Thanks.
ejd
 
Posts: 1025
Joined: Wed Jan 16, 2008 7:21 am


Return to Using OpenMP

Who is online

Users browsing this forum: No registered users and 4 guests