Unless the python installation you use for Phenix is compiled for using the OpenMP version of the C-runtime my guess is that running an OpenMP version of Phenix will result in strange crashes. That seems to be the case on Windows at least. Rob On 2013-12-10 15:44, Nathaniel Echols wrote:
On Tue, Dec 10, 2013 at 6:37 AM, de Waal, Parker
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 [1]
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
Links: ------ [1] https://gist.github.com/anonymous/13b9d4d39ed4d0c9622a
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb