STM statistics in multi-process applications

STM statistics in multi-process applications

Hi,

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?

Thanks,

Haggai Eran

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Quoting - haggai_e

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?

The STM runtime is only aware of data inside each process, and each process will attempt to dump to a file named "itm.log". That's clearly not very helpful when you have a multi-process code, since you'll only get the stats for whichever process happens to finish last.

I am no longer working on the STM runtime, but I'll ask the people who are if they can fix this for the next release...

Quoting - James Cownie (Intel)

The STM runtime is only aware of data inside each process, and each process will attempt to dump to a file named "itm.log". That's clearly not very helpful when you have a multi-process code, since you'll only get the stats for whichever process happens to finish last.

I am no longer working on the STM runtime, but I'll ask the people who are if they can fix this for the next release...

I see that version 3 still has this problem. Perhaps I can programmatically access the statistics and save them myself? If not, do you think it would be possible to write abort handlers myself that would do measure my own statistics?

Thanks,
Haggai

Quoting - haggai_e

I see that version 3 still has this problem. Perhaps I can programmatically access the statistics and save them myself? If not, do you think it would be possible to write abort handlers myself that would do measure my own statistics?

Thanks,
Haggai

As a hack you could write an atexit handler with created a new directory per process (either using the pid as part of the name, or some more useful process' property) and then chdir into it. Then when the STM runtime closes down it should dump each of the stats files into a separate directory...

Leave a Comment

Please sign in to add a comment. Not a member? Join today