I ran the program you sent and the output was:
Hello from thread 0
At this point it hung, so once again the second thread simply never got started. When I set OMP_NUM_THREADS to 1 the program ran fine with one thread outputting all the numbers correctly. When I set it to 2 the program hung at the point I indicated.
Even more strangely, it worked once. I tried it and it hung. Then I tried it again (this time redirecting the output to a file) and it worked, correctly printing hello from both threads and printing all 16 outputs. I then tried it several times more, sometimes outputting to the console and sometimes redirecting the output to a file, and I could never get it to work again.
You asked if it works with hyperthreading disabled. How do I disable hyperthreading under Linux?
If you'd like I'd be happy to give you access to a user account on the machine I'm doing this on. We would just have to figure out a secure way for me to send you the username and password. (Phone?)
Thanks again for your help,
P.S. - My Internet connectivity will be spotty over the holidays, but I'll be checking the board at least once a week and I'll be back in more regular contact shortly after New Year's.