I have an OpenMP code that is compiled with ifort version 126.96.36.199 on a quad-core Macbook Pro running OS X 10.9.3. All the work is done in a simple parallel DO region, and I have not requested any sort of dynamic thread management; the number of threads is fixed with OMP_NUM_THREADS=4. The program works fine, and the "top" utility shows 4 running threads when the program is executing. However, the cpu usage shows only 50%. Is this an artifact of top's sampling algorithm, or are only two cores actually executing all the threads? Is this an o/s limitation or is there some environment or kernel configuration issue that I am missing? Any suggestions appreciated. Thanks!