VMD-L Mailing List
From: Benjamin Hall (benjamin.hall_at_bioch.ox.ac.uk)
Date: Fri Jun 03 2011 - 11:23:25 CDT
- Next message: sajad falsafi: "submit VMD_SS script"
- Previous message: John Stone: "Re: installation trouble"
- In reply to: Axel Kohlmeyer: "Re: For loops decelerate"
- Next in thread: John Stone: "Re: For loops decelerate"
- Reply: John Stone: "Re: For loops decelerate"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
On 2 Jun 2011, at 12:27, Axel Kohlmeyer wrote:
> On Thu, Jun 2, 2011 at 4:39 AM, Benjamin Hall
> <benjamin.hall_at_bioch.ox.ac.uk> wrote:
>> Hi
>>
>> I've encountered an odd problem with for loops in tcl in VMD, whereby over the course of extended loops (>10000 iterations) in subroutines the individual loops seem to become slower as the loop progresses. The scripts are typically looping through frames in a trajectory in a manner similar to the below structure
>>
>> for { set i 0 } { $i < [molinfo top get numframes] } { incr i } {
>> some_other_function $i
>> puts "."
>> }
>>
>> As the loop progresses, the rate of printing "." visibly slows. I've not noticed any memory leaks (the some_other_function typically contains several atomselect commands), but I've seen this happen in a couple of unrelated scripts which do the same kind of looping through frames. If I rerun the loop, the initial speeds appear the same. I've not been able to sensibly benchmark the script, though I would if someone could suggest a benchmarking tool for tcl. Has anyone else observed this kind of behaviour, and could anyone suggest a likely cause/solution for the problem?
>
> no, i have not seen this. however, there are a lot of possible reasons
> why "some_other_function" can slow down over the course of iterations,
> e.g. by inefficiently walking or searching growing lists. memory leaks
> is a less likely option, but the slowdown would be drastic when you run
> out of available memory and go into swap.
>
> timing in tcl can be done with the "clock" command. check out the
> tcl/tk wiki (you can find it from www.tcl.tk) which contains lots of little
> useful codelets and discussions on how to do things in tcl.
>
Thanks. I've used time in the below example; unfortunately this produces values in realtime rather than cputime, but it seems to reproduce what I can see when running scripts which do something similar. I get up to a ~10% slow down after ~1000 cycles, and this appears to increase steadily with more cycles (I'm running loops with > 40000 repeats). Apologies if I'm doing something foolish but I'd appreciate any pointers or tips. I don't think it is CPU throttling as running "outerloop; outerloop" shows an initial speed up
proc outerloop { } {
set outfile [open benchmark.txt w]
set numframes 5000
set increment 1
for {set i 0} {$i < $numframes} {incr i $increment} {
set bm [inner_loop]
puts $outfile "$bm"
if { [expr ($i/$increment) % 2] == 0} {
set linestring "-"
} else {
set linestring "|"
}
puts -nonewline "\r$linestring"
}
close $outfile
}
proc inner_loop { } {
set bm [time { for {set i 0} {$i < 20 } {incr i } {
set DPPC_number [atomselect top "all" frame 0]
} } ]
return $bm
}
Thanks
Ben
> cheers,
> axel.
>
>> Thanks
>>
>> Ben
>> ************************************************************************
>> Benjamin A. Hall
>> Structural Bioinformatics & Computational Biochemistry Unit / OCISB
>> University of Oxford
>> http://sbcb.bioch.ox.ac.uk/hall.php
>> +44 (0)1865 613304
>> benjamin.hall_at_bioch.ox.ac.uk
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
> --
> Dr. Axel Kohlmeyer
> akohlmey_at_gmail.com http://goo.gl/1wk0
>
> Institute for Computational Molecular Science
> Temple University, Philadelphia PA, USA.
************************************************************************
Benjamin A. Hall
Structural Bioinformatics & Computational Biochemistry Unit / OCISB
University of Oxford
http://sbcb.bioch.ox.ac.uk/hall.php
+44 (0)1865 613304
benjamin.hall_at_bioch.ox.ac.uk
- Next message: sajad falsafi: "submit VMD_SS script"
- Previous message: John Stone: "Re: installation trouble"
- In reply to: Axel Kohlmeyer: "Re: For loops decelerate"
- Next in thread: John Stone: "Re: For loops decelerate"
- Reply: John Stone: "Re: For loops decelerate"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]