Threading problem

Threading problem

Community Admin的头像

Hi, I am using MKL 6 with the Intel C++ compilter, 7.0 on Windows 2000. I am writing a multi threaded program, and each thread makes thousands of calls to DftiComputeForward(). I use the _beginthread() function for the threading.

In the scenario above, all is well. However, if I use the Visual C++ 6.0 compiler, instead of the intel one, some of the threads run fine, but at a certain point in my program, it crashes and gives the following message:

"abort: stack overlapping detected!
Perhaps you are using over 2MB of stack with unsupported pthreads library that
was built without FLOATING_STACKS defined? This is the default for the
static pthreads library and many unsupported operating systems."

I have no idea what FLOATING_STACKS means. But this leads me to believe that the intel compiler uses it's own threading library which works ok, and VC++ uses a different one which doesn't work.

Has anyone seen this before? The reason I am concerned with getting it to compile with both compilers is that I may have to port it to Linux some day. Is there any sort of setting that I have to set in order to get this problem to go away? Even though it's a threading problem, since it's happening with the MKL functions, I figured someone here might know.

I'm guessing I have to set something relating to FLOATING_STACKS somewhere, but I have no idea where that is.

thanks

2 帖子 / 0 new
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项
Community Admin的头像

Nevermind, I got it. The second argument to the _beginthread() function is the stack size. I just set it to some huge number like 100 million and it all worked fine. sorry about that, thanks


-matt



登陆并发表评论。