On Tue, 2011-05-03 at 23:09 +0200, ismail kuru wrote:
> 
> 
> On 3 May 2011 17:02, Patrick Marlier <patrick.marl...@unine.ch> wrote:
>         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.
>         
>         
>  ++ Thanks a lot for your attention to my project. Yes , it also
> really makes me happy to have people interested in Transactional
> memory and my project.
>         
>                 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.
>         
>         ++ I have not worked on QuakeTM before . Thanks a lot for
>         suggestion.
>         
>                 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.
>         
>         ++ Having contact with some experienced people on
>         Transactional Memory is really so important for me . It would
>         be great for me.
>         
>  
>                 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?
>         ++ I was trying to do experiments with different passing
>         parameters (instrumentedCode , uninstrumentedCode,
>         hasNoAbort, hasNoRetry, hasNoIrrevocable,doesGoIrrevocabl ) to
>         "_ITM_beginTransaction" and try to scale the compatibility
>         with ++OpenMP constructs.  I have also used "__transaction"
>         semantic. There is no problem. This is what I have put here. 
>         
>                                // 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.)
>         
>         
> ++ I have tried both. I am having problems on this part because of not
> being experienced and I think I have to make experiments again on
> LeeTM.
> ++ First of all, MEMCPY and MEMSET functions do not include any
> transaction identifier (id) and transactions inside the LeeTM fails
> during transactional access to the memory. I think this case is also
> for tinySTM-0.9.9 and tinySTM-1.0. 
> 
> 
> ++ tinySTM-0.9.9 has mem access functions with transaction handlers as
> the following
> ++stm_word_t stm_load(stm_tx_t *tx, volatile stm_word_t *addr);
> ++void stm_store(stm_tx_t *tx, volatile stm_word_t *addr, stm_word_t
> value);
> ++void stm_store2(stm_tx_t *tx, volatile stm_word_t *addr, stm_word_t
> value, stm_word_t mask);
> 
> 
> ++but tinySTM-1.0 does not . Your opinions on these different version
> of mem-access functions would be great.
>  
> ++My idea to convert from one version of mem-access function to
> another is as the following: 
> 
> 
> ++ I think I have  to make some explicit function calls as the
> following: 
> ++     _ITM_transaction * td = _ITM_getTransaction();   
>  ++    int doWhat =
> _ITM_beginTransaction(td,pr_instrumentedCode,&txn_start_loc); 
> ++   .....
> ++_ITM_transactionId cur_id = _ITM_getTransactionId();
>         
>                 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.
> 
> 
> ++ Of course , It would be great to share the study and results with
> you when I organize my study and all other things.  
>         
>         Good luck and feel free to ask questions.
>         
> ++ THANKS A LOT
>  
>         Patrick Marlier.
> 


Reply via email to