Parallelization for optimization of wxu/wxc?
Hi, I was wondering if the optimization of the xyz and adp target weight could be parallelized and take advantage of multi-cpu systems? On the project I am working on now, the refinement time increased ~5.4 fold when with active optimization of these weights. Are there any plans for that in the works? Cheers, Carsten
Isn't it parallelized in the nightlies? - phenix.refine: - grid searches parallelized: use 'nproc' parameter to set number of CPUs to use - this affects bulk solvent mask optimization, and XYZ and ADP weight optimization (in addition to TLS identification) - can reduce runtime by 75% or more depending on settings (see manual for details) On Aug 26, 2011, at 6:00 AM, Schubert, Carsten [JRDUS] wrote:
Hi,
I was wondering if the optimization of the xyz and adp target weight could be parallelized and take advantage of multi-cpu systems? On the project I am working on now, the refinement time increased ~5.4 fold when with active optimization of these weights.
Are there any plans for that in the works?
Cheers,
Carsten
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
--------------------------------------------- Francis E. Reyes M.Sc. 215 UCB University of Colorado at Boulder
On Fri, Aug 26, 2011 at 2:09 PM, Francis E Reyes
Isn't it parallelized in the nightlies?
Yes, Ralf and I added this a couple of months ago. There are a few more improvements that we'd like to make, such as setting 'nproc' automatically (and adjusting to compensate for system load), and fixing a couple of inefficiencies (e.g. after running a grid search to identify optimal weight, it then refines *again* with that weight, instead of saving the coordinates from the grid search result), but it is already a significant improvement.
- phenix.refine:
- grid searches parallelized: use 'nproc' parameter to set number of CPUs to use - this affects bulk solvent mask optimization, and XYZ and ADP weight optimization (in addition to TLS identification) - can reduce runtime by 75% or more depending on settings (see manual for details)
FYI, in practice the largest number of CPUs that the weight optimization routines will use appears to be 18 cores. (The automatic TLS identification will use as many as possible, but this won't have much additional effect.) -Nat
Found it. Nproc was tucked away in a remote corner in the main scope. Speeds things up very nicely. Good job!
Cheers,
Carsten
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Nathaniel Echols
Sent: Friday, August 26, 2011 8:15 AM
To: PHENIX user mailing list
Subject: Re: [phenixbb] Parallelization for optimization of wxu/wxc?
On Fri, Aug 26, 2011 at 2:09 PM, Francis E Reyes
Isn't it parallelized in the nightlies?
Yes, Ralf and I added this a couple of months ago. There are a few more improvements that we'd like to make, such as setting 'nproc' automatically (and adjusting to compensate for system load), and fixing a couple of inefficiencies (e.g. after running a grid search to identify optimal weight, it then refines *again* with that weight, instead of saving the coordinates from the grid search result), but it is already a significant improvement.
- phenix.refine:
- grid searches parallelized: use 'nproc' parameter to set number of CPUs to use - this affects bulk solvent mask optimization, and XYZ and ADP weight optimization (in addition to TLS identification) - can reduce runtime by 75% or more depending on settings (see manual for details)
FYI, in practice the largest number of CPUs that the weight optimization routines will use appears to be 18 cores. (The automatic TLS identification will use as many as possible, but this won't have much additional effect.) -Nat _______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
On 08/26/2011 09:14 PM, Nathaniel Echols wrote:
On Fri, Aug 26, 2011 at 2:09 PM, Francis E Reyes
wrote: Isn't it parallelized in the nightlies?
Yes, Ralf and I added this a couple of months ago. There are a few more improvements that we'd like to make, such as setting 'nproc' automatically
Maybe this Python code can be helpful: def get_nb_procs(): res = None try: # POSIX res = os.sysconf('SC_NPROCESSORS_ONLN') except: try: # {Free|Net|Open}BSD and MacOS X res = int(commands.getoutput("sysctl -n hw.ncpu")) except: res = 0 return res It is supposed to work well on Linux plus all the explicitly listed platforms. Best regards, F.
(and adjusting to compensate for system load), and fixing a couple of inefficiencies (e.g. after running a grid search to identify optimal weight, it then refines *again* with that weight, instead of saving the coordinates from the grid search result), but it is already a significant improvement.
- phenix.refine:
- grid searches parallelized: use 'nproc' parameter to set number of CPUs to use - this affects bulk solvent mask optimization, and XYZ and ADP weight optimization (in addition to TLS identification) - can reduce runtime by 75% or more depending on settings (see manual for details)
FYI, in practice the largest number of CPUs that the weight optimization routines will use appears to be 18 cores. (The automatic TLS identification will use as many as possible, but this won't have much additional effect.)
-Nat _______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb
Hi Carsten, I'm not much of an expert on phenix, but the latest newsletter states (on page 16) The weight optimization procedure is easy to parallelize since the refinements with different trial weights are independent. Starting with PHENIX version dev-‐810, the refinement.main.nproc parameter is available to specify the number of CPUs the weight optimization procedure may use in parallel. To give one example, the command phenix.refine 1av1.pdb 1av1.mtz \ optimize_xyz_weight=True \ optimize_adp_weight=True nproc=16 finishes in approximately 430 seconds on a 48core 2.2GHz AMD Opteron system. With nproc=1 the refinement requires more than 2000 seconds on the same machine. Hope that help. Andreas On 26/08/2011 1:00, Schubert, Carsten [JRDUS] wrote:
Hi,
I waswonderingif the optimization of the xyz and adp target weight could be parallelizedand take advantage of multi-cpu systems?On the project I am working on now, the refinement time increased ~5.4 fold whenwith active optimization of theseweights.
Are there any plans for that in the works?
Cheers,
Carsten
-- Andreas Förster, Research Associate Paul Freemont & Xiaodong Zhang Labs Department of Biochemistry, Imperial College London http://www.msf.bio.ic.ac.uk
participants (5)
-
Andreas Förster
-
Francis E Reyes
-
Francois Berenger
-
Nathaniel Echols
-
Schubert, Carsten [JRDUS]