|
From: Josef W. <Jos...@gm...> - 2003-05-26 09:36:41
|
Hi, currently I'm thinking a little bit of what would be needed to allow applications run under Valgrind to use processors in parallel. The main goal would be to speed up cache simulation for multithreaded applications, more specially first to let OpenMP apps (number crunshing) run simultaneously. I'm not at all convinced if there will be any benefit/speedup at all on multiple processors because of a possible need for additional fine-grained communication among the threads. So perhaps its simple not worth it. To come to this conclusion faster, I wanted to ask you for the problems you see in this for the Valgrind core framework. As I see it: all global data structures accessable by multiple threads either must be avoided or locked on access. * Could the instrumentation engine/translation table be separated for each thread? This would duplicate translation for each thread, but would avoid synchronisation on accessing the translation hash table. * V memory allocation functions have to be multithread-aware. * Signal handling? Is there anything special that I have overlooked? * What's with Valgrinds version of the pthread library? Do you think that it's a big task to make this reentrant-safe? Or perhaps we even could get rid of our own implementation? Thanks for any answers, Josef |