On Tue, Dec 10, 2013 at 6:37 AM, de Waal, Parker <Parker.DeWaal@vai.org> wrote:

I recently compiled phenix 1.8.4-1496 on a CentOS 6.4 server and am having trouble using phenix.refine in parallel using the nproc flag which always runs as a single thread. Please find my input parameters here: https://gist.github.com/anonymous/13b9d4d39ed4d0c9622a

 

I’m wondering if maybe OpenMP isn’t configured properly on our server? Or maybe the correct version is not installed when I compliled phenix. If anyone has any input or experience with a problem such as this I would be extremely grateful.


The nproc flag has nothing to do with OpenMP - it controls the parallelization of the (optional) weight optimization calculations, which are simply grid searches and can be easily spread out using Python's multiprocessing module.  The separate OpenMP parallelization is in the Fast Fourier Transform (FFT) code responsible for calculating structure factors and gradients.  The latter is a much less efficient use of multiple CPUs, but it will always have an effect whether or not your run grid optimization.

To use OpenMP, first make sure that you have actually compiled OpenMP support during installation.  To control the number of processors, the environment OMP_NUM_THREADS is used; I'm not sure if this defaults to 1 or the number of available CPUs.  I don't think you can safely combine this with the Python-level parallelism, but I haven't tested that.

-Nat