mailRe: r3243 - in /branches/multi_processor: ./ multi/ prompt/ specific_fns/


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

Header


Content

Posted by Edward d'Auvergne on March 30, 2007 - 04:31:
On 3/30/07, gary thompson <garyt.and.sarahb@xxxxxxxxx> wrote:
On 3/29/07, gary thompson <garyt.and.sarahb@xxxxxxxxx> wrote:
> On 3/29/07, Gary S. Thompson <garyt@xxxxxxxxxxxxxxx> wrote:
> > Edward d'Auvergne wrote:
> [snip]
>

> > > Another point is that I can't
> > > run the code in the branch without having MPI up and running.
> > >
> > >
> > you should be able to run relax without a --multi command line and
> > without an mpirun and the uniprocessor implimentations should run.
> > However, currently when I run it I get The dependency 'mpi4py' has not
> > been installed is that the problem you have?? I will investigate the 
problem
> >
> >
> correction I have just gone home and run the command on the same
> machine remotely and get no messages about dependencies!. if this is
> the error you get please tell me.
>
> Ah revelation (realtime messaging and debugging!) in uni_processor I
> am using multi.mpi4py_processor.Result_command which will load the
> mpi4py_processor module which will result in  load of mpi4py (lines 14
> onwards in mpi4py_processor). This is just an oversight due to me
> being lazy and winging it while testing corrections on the way ;-)
>

I had to work a bit harder than expected on this but 3248 should cure it ;-)

Also two other comments


1. This code is only compatible with python 2.4 currently. calling it on 2.3.3 results in the crash

Traceback (most recent call last):
  File "../relax", line 588, in ?
    multi_processor.run()
  File 
"/usr/jessy/garyt/projects/relax_branch/branch_multi1/multi/uni_processor.py",
line 43, in run
    self.relax_instance.run()
  File "../relax", line 175, in run
    self.interpreter.run()
  File 
"/usr/jessy/garyt/projects/relax_branch/branch_multi1/prompt/interpreter.py",
line 216, in run
    run_script(intro=self.relax.intro_string, local=self.local,
script_file=self.relax.script_file, quit=1)
  File 
"/usr/jessy/garyt/projects/relax_branch/branch_multi1/prompt/interpreter.py",
line 392, in run_script
    console.interact(intro, local, script_file, quit)
  File 
"/usr/jessy/garyt/projects/relax_branch/branch_multi1/prompt/interpreter.py",
line 343, in interact_script
    execfile(script_file, local)
  File "test_small.py", line 52, in ?
    grid_search(name, inc=11)
  File 
"/usr/jessy/garyt/projects/relax_branch/branch_multi1/prompt/minimisation.py",
line 144, in grid_search
    self.relax.generic.minimise.grid_search(run=run, lower=lower,
upper=upper, inc=inc, constraints=constraints, print_flag=print_flag)
  File 
"/usr/jessy/garyt/projects/relax_branch/branch_multi1/generic_fns/minimise.py",
line 96, in grid_search
    grid_search(run=run, lower=lower, upper=upper, inc=inc,
constraints=constraints, print_flag=print_flag)
  File 
"/usr/jessy/garyt/projects/relax_branch/branch_multi1/specific_fns/model_free.py",
line 1520, in grid_search
    self.minimise(run=run, min_algor='grid', constraints=constraints,
print_flag=print_flag, sim_index=sim_index)
  File 
"/usr/jessy/garyt/projects/relax_branch/branch_multi1/specific_fns/model_free.py",
line 2408, in minimise
    mu0=self.relax.data.mu0, num_params=num_params, vectors=xh_unit_vectors)
  File 
"/usr/jessy/garyt/projects/relax_branch/branch_multi1/multi/commands.py",
line 84, in set_mf
    self.mf_map.update(**kwargs)
TypeError: update() takes no keyword arguments

clearly update won't take dictionaries on 2.3.3

Is there another way of doing this which doesn't require the update() method?


2. I ran the uniprocessor and the mpi4py versions on my machine and
was suprised to find that if you directed stdout to a file they had
almost identical ruintimes. so it appears that most of the
interprocess communication overhead is from returning stdout

Writing to stdout is a big factor for the fast calculations (models m1 to m4). It's not an issue for the slower calculations which take almost all of the CPU time (models m5 to m8).

A useful measure might be to test the uniprocessor version versus the
normal operation of relax (possibly the revision of the 1.3 line prior
to your branch).  The uniprocessor must not be slower in any way than
the normal single machine operation for it to replace the current
model-free minimise() function.  Once uniprocessor and the normal
minimise() function operate at exactly the same speeds, then the
comparison between uniprocessor and the MPI code should be more
meaningful.  Do you know if the profile flag at the end of the file
'relax' can be used successfully with MPI?


3. note most of the text output is scrambled!

e.g.

> Fitting to residue: 27 ALA
~~~~~~~~~~~~~~~~~~~~~~~~~~
Unconstrained grid search size: 11 (constraints may decrease this size).

Fitting to residue: 28 GLY
~~~~~~~~~~~~~~~~~~~~~~~~~~
Unconstrained grid search size: 11 (constraints may decrease this size).

Fitting to residue: 29 LYS
~~~~~~~~~~~~~~~~~~~~~~~~~~
Unconstrained grid search size: 11 (constraints may decrease this size).

Fitting to residue: 30 ASP
~~~~~~~~~~~~~~~~~~~~~~~~~~
Unconstrained grid search size: 11 (constraints may decrease this size).

followed by


Grid search ~~~~~~~~~~~

....
Grid search
~~~~~~~~~~~

.....


this is because the minimisation is carried out of order with the queuing

The optimisation printout should be printed in the order in which they are calculated. We'll need to get the headers such at 'Fitting to residue: 27 ALA' to somehow match the optimisation printout.

Cheers,

Edward



Related Messages


Powered by MHonArc, Updated Sun Apr 01 00:05:54 2007