Lion + OpenMPのバグ?

Mac OS X 10.7.4 (Lion) + gcc 4.2.1 で、OpenMPがたまにバグる。

エラーメッセージは以下のような感じ。

=====================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   EXIT CODE: 6
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
=====================================================================================
APPLICATION TERMINATED WITH THE EXIT STRING: Abort trap: 6 (signal 6)

gdbで見たらこんな感じ。

Program received signal SIGABRT, Aborted.
0x00007fff88389bf2 in __psynch_mutexwait ()
(gdb) up
#1  0x00007fff867281a1 in pthread_mutex_lock ()
(gdb) up
#2  0x00000001000022c4 in gomp_barrier_destroy ()
(gdb) up
#3  0x0000000100001f5b in gomp_team_end ()

まだよくわからないが、Snow Leopardでは問題が生じないのでOS 依存の可能性あり。ちなみにgccのバージョンは4.2.1。

$ mpic++ --version
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.