Intel® C++ STM Compiler Prototype Edition

STM Compiler: Transactional Contexts 2

I've worked out some details wrt "transactional contexts":
http://software.intel.com/en-us/forums/showpost.php?p=66296

Here is more realistic and detailed proposal.
User marks some classes with special declarator:

__declspec(tm_context)
class queue {
public:
void push(void* item) {
tm_atomic {
// implementation
}
}

void* pop() {
tm_atomic {
// implementation
}
}

// other member functions

New interesting application of TM for single-threaded programs

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.

Testing abort with tm_pure

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.

Performance comparison using STM compiler

Hi,

I have installed STM compiler and tried to run the 2 code snippet available on website.

Command line that compiled correctly: icc -openmp intel_stmtest_hashtable.c -o hashtable

Command line shown on website gave a warning "ignoring unknown option -Qtm_enabled" : icc -Qtm_enabled -openmp intel_stmtest_hashtable.c -o hashtable

Do I need -Qtm_enabled option to use the TM constructs ? If I need it then how should I give the option ?

linking problem?

So I installed the compiler into my local directory, icc/root/dir/.

I tried to compile a sample code by using

icc/root/dir/bin/icc -Licc/root/dir/lib -Qtm_enabled -openmp intel_stm_test_virtual.cpp -o virtual

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.

Am I missing anything?

libitm internals, alternatives

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).

Pagine

Iscriversi a Intel® C++ STM Compiler Prototype Edition