mailRe: r3237 - in /branches/multi_processor: multi/mpi4py_processor.py relax


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Gary S. Thompson on March 20, 2007 - 15:23:
Edward d'Auvergne wrote:

On 3/21/07, Gary S. Thompson <garyt@xxxxxxxxxxxxxxx> wrote:

Edward d'Auvergne wrote:

>> >> >> do i modify interpreter.run to take a quit varaiable set to
>> False so
>> >> >> that run_script can be
>> >> >> run with quit = false?
>> >> >
>> >> >
>> >> > Avoid the interpreter and wait at the optimisation steps - the only
>> >> > serious number crunching code in relax.
>> >>
>> >>
>> >> I agree! interpeters are not required on the slave just the relax
>> data
>> >> structures in a clean and useable state
>> >
>> >
>> > If you're working at the level of the model-free 'minimise()'
>> > function, don't bother with the relax data structures! See my
>> > previous post mentioned above.
>>
>> I follow now, my only worry is that the processing will be fairly fine
>> grained so causing a greater ratio of network traffic to processing
>
>
> The level of the minimise() method is coarser than splitting up a grid
> search. That is because the main loop of the method executes the grid
> search for each optimisation instance.



does this limit the number of processors I can use?


Yes.  If you are studying n spin systems (or residues in a typical
protein analysis) you will be limited to n processors.


that fine if i am splitting by residues or chunks of residues that is what I am aiming for



 also i am not
following what you mean by each optimization instance is this a model
type if so that is too (!) course grained...


There are 4 different classes of model-free model supported by relax.
These are found by the 'determine_param_set_type()' method and are
handled differently by the 'minimise()' method and the 'maths_fns.mf'
module.  The four types are:

'mf' - one model-free model.
'local_tm' - one model-free model together with the local tm parameter.
'diff' - solely the diffusion tensor (the model-free model
parameters are held constant).
'all' - all model-free models of all spin systems together with
the Brownian rotational diffusion parameters.


The minimise() method loops over the minimisation instances which for
the four models total n, n, 1, and 1 instances respectively.

ah I understand now (well possibly;-))


The original aim for the
optimisation during minimisation was to split up residue ranges as this
gives coarse grains but a reasonable number of them.... (e.g. if you
have a 120 aa protein you have upto 120 grains available (though by that
stage your communication overhead may get too much)


I'll assume that 'split up residue ranges' means for n residues there
are n optimisations.

indeed

This is constrained by the model. For a grid
search with 10 to 20 increments per dimension across the space of the
most complex model-free model, this could be a few minutes per
residue.

as long as we split by residue this will be good enough I think in almost all instances


For the minimisation the timing could be similar.  I don't
think there will be much communication overhead in this situation.  If
this is found to be too coarse, then the grid search could be
parallelised.  The minimisation of one optimisation instance can never
be parallelised though (unless you get into the minimisation code and
implement a parallelised optimisation algorithm (I wouldn't do that
though))!

not my first choice ;-)


so actually I was
looking at the relax_fit specific function....


don't know how relax_fit got in their I meant relax specific....

'relax_fit'?  Do you mean the fitting of the exponential curves to
determine the R1 and R2 relaxation rates?


 plus passing parameters
to restrict the residue range or using the select function pluse some
saving and restoring of state in the master.


It could be me not fully understanding MPI but isn't it the master
which collects the results and then places these into the relax data
storage object?

yes

  Or do the slaves have access to the program namespace
and hence have access to the relax data storage object singleton and
can do it themselves?  Why does the program state need saving?


this was if we needed to copy the relax state between processors....

If i have this upside down
and back to front i apolergise I am still learning ;-)


So am I, mainly though your relax subversion commit messages!  My
knowledge of MPI is definitely lacking.



Bye,

Edward

.



--
-------------------------------------------------------------------
Dr Gary Thompson
Astbury Centre for Structural Molecular Biology,
University of Leeds, Astbury Building,
Leeds, LS2 9JT, West-Yorkshire, UK             Tel. +44-113-3433024
email: garyt@xxxxxxxxxxxxxxx                   Fax  +44-113-2331407
-------------------------------------------------------------------





Related Messages


Powered by MHonArc, Updated Tue Mar 20 15:40:35 2007