Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
f1fc1b3
Steps toward speeding up ForwardApp wrapped SeqEns
dwhswenson Apr 27, 2015
a6a3438
Some tests for FwdAppTrajEns. Debug caching, too
dwhswenson Apr 28, 2015
8c92b8f
Switched Wrapped calls to trusted=None
dwhswenson Apr 28, 2015
e8728f8
Merge remote-tracking branch 'upstream/master' into faster_sequential…
dwhswenson Apr 28, 2015
633c413
Appears that I have faster can_append now.
dwhswenson Apr 29, 2015
cde7f98
Merge remote-tracking branch 'upstream/master' into faster_sequential…
dwhswenson Apr 29, 2015
cf7e724
Skeletons for adding BkwdPrep caching (tests)
dwhswenson Apr 30, 2015
f6a3294
Waiting on new traj funcs to merge (fails now)
dwhswenson Apr 30, 2015
72d2d87
Merge remote-tracking branch 'upstream/master' into faster_sequential…
dwhswenson Apr 30, 2015
cf4e912
Looks like working cache for BkwdPrep.can_prepend
dwhswenson Apr 30, 2015
8049e25
Added error on Bkwdprep.can_app. Removed debugs.
dwhswenson May 1, 2015
ef2102f
Merge remote-tracking branch 'upstream/master' into timing_test
dwhswenson May 1, 2015
c4f2092
Merge branch 'faster_sequential_ensemble' into timing_test
dwhswenson May 1, 2015
6e7498b
Removed very slow debug statement
dwhswenson May 1, 2015
a47c6fb
Merge pull request #13 from dwhswenson/timing_test
dwhswenson May 1, 2015
c5fefef
We appear to have near-linear scaling now
dwhswenson May 1, 2015
4e8e231
About as fast as I can get it (for now)
dwhswenson May 1, 2015
9cd3ebc
Merge remote-tracking branch 'upstream/master' into faster_sequential…
dwhswenson May 3, 2015
84f54a6
Fix tests. Tricks made redundant by #242.
dwhswenson May 3, 2015
86fba2b
Merge remote-tracking branch 'upstream/master' into faster_sequential…
dwhswenson May 7, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Appears that I have faster can_append now.
Still need to do the same for can_prepend.
  • Loading branch information
dwhswenson committed Apr 29, 2015
commit 633c413775d6d5122860e81eebb1e99892dce573
30 changes: 29 additions & 1 deletion openpathsampling/ensemble.py
Original file line number Diff line number Diff line change
Expand Up @@ -1424,6 +1424,9 @@ def __init__(self, ensemble):
# a property for _new_ensemble
self._new_ensemble = self.ensemble
self.trusted = None
self._cache_can_append = EnsembleCache(+1)
self._cache_call = EnsembleCache(+1)
self._cache_can_prepend = EnsembleCache(-1)

def __call__(self, trajectory, trusted=None):
return self._new_ensemble(self._alter(trajectory), trusted)
Expand Down Expand Up @@ -1491,9 +1494,34 @@ class ForwardAppendedTrajectoryEnsemble(WrappedEnsemble):
def __init__(self, ensemble, add_trajectory):
super(ForwardAppendedTrajectoryEnsemble, self).__init__(ensemble)
self.add_trajectory = add_trajectory
self._cached_trajectory = paths.Trajectory(add_trajectory)

def _alter(self, trajectory):
return self.add_trajectory + trajectory
logger.debug("Starting _alter")
reset = self._cache_can_append.check(trajectory)
if not reset:
final_frame = trajectory[-1]
if self._cached_trajectory[-1] != final_frame:
self._cached_trajectory.append(final_frame)
else:
logger.debug("doing it oldstyle")
self._cached_trajectory = self.add_trajectory + trajectory

# DEBUG
#logger.debug("add " + str([i for i in self.add_trajectory]))
#logger.debug("traj " + str([i for i in trajectory]))
#logger.debug("cache " + str([i for i in self._cached_trajectory]))
#oldstyle = self.add_trajectory + trajectory
#for (t,b) in zip(self._cached_trajectory,
#self.add_trajectory+trajectory):
#logger.debug(str(t) + " ?=? " + str(b))
#assert(t == b)
#assert(len(self._cached_trajectory) == len(oldstyle))

return self._cached_trajectory

def can_prepend(self, trajectory, trusted=None):
raise RuntimeError("ForwardAppendedTrajectoryEnsemble.can_prepend is nonsense.")

@ops_object
class ReversedTrajectoryEnsemble(WrappedEnsemble):
Expand Down
22 changes: 19 additions & 3 deletions openpathsampling/tests/testensemble.py
Original file line number Diff line number Diff line change
Expand Up @@ -1383,11 +1383,27 @@ def test_good_start_traj(self):
SequentialEnsemble([self.inX]),
traj[0:2]
)
assert_equal(ens.can_append(traj[0:3]), True)
assert_equal(ens(traj[0:3]), True)
assert_equal(ens.can_append(traj[2:3]), True)
assert_equal(ens(traj[2:3]), True)


def test_caching_in_fwdapp_seq(self):
raise SkipTest
inX = AllInXEnsemble(vol1)
outX = AllOutXEnsemble(vol1)
length1 = LengthEnsemble(1)
pseudo_minus = SequentialEnsemble([
inX & length1,
outX,
inX,
outX,
inX & length1
])
traj = ttraj['upper_in_out_in_in_out_in']
ens = ForwardAppendedTrajectoryEnsemble(pseudo_minus, traj[0:2])
assert_equal(ens.can_append(traj[2:3]), True)
assert_equal(ens.can_append(traj[2:4]), True)
assert_equal(ens.can_append(traj[2:5]), True)
assert_equal(ens.can_append(traj[2:6]), False)

class testMinusInterfaceEnsemble(EnsembleTest):
def setUp(self):
Expand Down