Integration of transactional memory support into a data-flow extension of OpenMP

Patrick Marlier patrick.marlier@unine.ch
Tue May 3 15:03:00 GMT 2011


Hi Ismail!

> My study mainly focuses on integration of transactional memory support
> into data-flow extension of OpenMP that is
> aiming increased expressiveness and performance while preserving the
> paradigms' properties.

I am really happy to see people working with transactional memory. I 
will try to follow your work.

> My project combines development and research components and can be
> decomposed into 5 phases.
>
> 1. Study the compatibility of the transactional memory and OpenMP
> constructs in the
> transmem development branch of GCC and propose solutions to the possible
> technical
> difficulties.

In the Velox project, one application named QuakeTM was using TM and 
OpenMP without problem but I know that the OpenMP was not used 
extensively. So probably you will find some problems.


> 2. Study the desgin and implementation of both data-flow (streaming) and
> transmem branches
> of GCC, interacting with their maintainers.

I am not a maintainer (not yet at least) of the trans-mem branch but I 
know quite well TM and some part of implementation details in gcc. So if 
you post questions, I will try to answer them.

> Note : Just an example code from LeeTM for compatibility research of
> OpenMP and trans-mem .
>
> #define MEMSET _ITM_memsetW
> #define MEMCPY	_ITM_memcpyRtWt
> #define BEGIN_TRANSACTION \
>    _ITM_beginTransaction (pr_instrumentedCode |  pr_hasNoIrrevocable\
> 			 | pr_hasNoAbort)
>
> #define END_TRANSACTION \
>    _ITM_commitTransaction ()

Why did you use explicit calls to _ITM_* functions? why not using the 
__transaction semantic?

> 		// transaction body
> 		lee->layNextTrack(track, targ->private_buffer);

Did you transactify accesses in this function? or does it use only 
MEMSET and MEMCPY?
(I have tried LeeTM only one time and I can't remember implementation 
details.)

> There is not a big performance difference between our approach (OpenMP +
> trans-mem) and (pthreads + tinySTM).

Interesting. Actually I am one of the developers of TinySTM and I am 
quite interested to see exact results.

Good luck and feel free to ask questions.

Patrick Marlier.



More information about the Gcc mailing list