[phenixbb] "nproc" in phenix.refine

Nathaniel Echols nechols at lbl.gov
Wed Nov 30 07:33:34 PST 2011

On Wed, Nov 30, 2011 at 4:22 AM, Jonathan Elegheert
<jonathan.elegheert at ugent.be> wrote:
> I have a question regarding the "nproc" parameter in phenix.refine;
> We have the software installed on our university HPC cluster, which has
> nodes built up of 8 processors each. Submission works via a queuing system
> ("qsub"). I understand that compiling with OpenMP renders the nproc
> parameter disfunctional. Does this then imply that I will be limited to 1
> node (8 processors) if compiled without OpenMP, since there is no "message
> passing" to other nodes? Or is there a way to make use of more of the
> available nodes, for example by compiling with OpenMP and then specifying
> many nodes with 1 processor?

It will be limited to one node no matter what - the parallelism in
phenix.refine is only applicable to shared-memory systems.  You're
probably confusing the behavior of 'nproc' in phenix.refine with
programs like AutoBuild and MR-Rosetta, which can submit sub-processes
to the queueing system.  In this case I thought consistent parameter
naming was probably more important than consistent behavior between
programs.  (FYI, I think you're also confusing OpenMP and MPI - the
latter works on clusters or other large systems where memory-sharing
is impractical, but OpenMP is a compiler feature which automatically
parallelizes specific loops in the code, in this case the FFT.)

I still don't fully understand how queueing systems handle multi-CPU
jobs, but if you're using either nproc or OpenMP, you probably want to
request 8 processors when running qsub.


More information about the phenixbb mailing list