I wanted to ask how the Intel transaction memory manager handles statistics collection and output when using multi-process programs. Are the statistics being collected for all the process or just for the first? If it collects for all of them, will there be several itm.log files?
While dealing with Transactional Memory I realize new interesting application of Transactional Memory for SINGLE threaded applications. Atomicity guarantees provided by TM can be useful not only for multi-threaded environment, but also for single-threaded environment. Well, it's actually not astonishing, nevertheless I don't hear anything similar in all that hype around TM.
Hi I ma using the Intel STM C compiler version 2.0,
Ihave the following code bellow. when compiled
$icc -Qtm_enable test test.c
the value of "b" is 1 but is expected 0. It works for -O0 specified explicitly. Found it useful to share since users may waste quite a time understanding why getting wired variables when not compiling with -O0.
However, even though I have used -L option to indicate the shared object lib (as seen above), the compiler still cannot find libguide.so and libitm.so (which is located under icc/root/dir/lib). I also set $LD_LIBRARY_PATH to irc/root/dir/lib but these shared objects are still not found.
We would like to compare the performance of icc's STM and other STM mechanisms (such as TinySTM). Is there a way to use a drop-in STM library instead of icc's libitm? Alternatively, are the calls to libitm documented somewhere? Has anyone tried doing anything of this sort?
Also, how much of the transaction code is inlined? Running objdump on compiled objects gives us many added functions named _ITM_*, and data structures called _ITM_LocStruct_pack and _ITM_Loc_pack (which seems to have debugging information).