def get_segments_by_id(self, n_iter, seg_ids, include_pcoords = True): '''Get segments from the data manager, employing caching where possible''' if len(seg_ids) == 0: return [] seg_index = self.get_seg_index(n_iter) all_wtg_parent_ids = self.get_wtg_parent_array(n_iter) segments = [] if include_pcoords: pcoords = self.get_pcoords(n_iter, seg_ids) for (isegid, seg_id) in enumerate(seg_ids): row = seg_index[seg_id] parents_offset = row['wtg_offset'] n_parents = row['wtg_n_parents'] segment = Segment(seg_id = seg_id, n_iter = n_iter, status = row['status'], endpoint_type = row['endpoint_type'], walltime = row['walltime'], cputime = row['cputime'], weight = row['weight'], ) if include_pcoords: segment.pcoord = pcoords[isegid] parent_ids = all_wtg_parent_ids[parents_offset:parents_offset+n_parents] segment.wtg_parent_ids = {long(parent_id) for parent_id in parent_ids} segment.parent_id = long(parent_ids[0]) segments.append(segment) return segments
def get_segments_by_id(self, n_iter, seg_ids, include_pcoords = True): '''Get segments from the data manager, employing caching where possible''' if len(seg_ids) == 0: return [] seg_index = self.get_seg_index(n_iter) all_wtg_parent_ids = self.get_wtg_parent_array(n_iter) segments = [] if include_pcoords: pcoords = self.get_pcoords(n_iter, seg_ids) for (isegid, seg_id) in enumerate(seg_ids): row = seg_index[seg_id] parents_offset = row['wtg_offset'] n_parents = row['wtg_n_parents'] segment = Segment(seg_id = seg_id, n_iter = n_iter, status = row['status'], endpoint_type = row['endpoint_type'], walltime = row['walltime'], cputime = row['cputime'], weight = row['weight'], ) if include_pcoords: segment.pcoord = pcoords[isegid] parent_ids = all_wtg_parent_ids[parents_offset:parents_offset+n_parents] segment.wtg_parent_ids = {int(parent_id) for parent_id in parent_ids} segment.parent_id = int(parent_ids[0]) segments.append(segment) return segments
for (iseg, (index_row, pcoord)) in enumerate(izip(old_index, old_final_pcoords)): istate = istates[iseg] istate.iter_created = 0 istate.iter_used = 1 #istate.istate_type = InitialState.ISTATE_TYPE_RESTART istate.istate_type = InitialState.ISTATE_TYPE_BASIS istate.istate_status = InitialState.ISTATE_STATUS_PREPARED istate.pcoord = pcoord segment = Segment(n_iter=1, seg_id=iseg, weight=index_row['weight'], #parent_id =-(istate.state_id+1), parent_id = (istate.state_id), #wtg_parent_ids = [-(istate.state_id+1)], wtg_parent_ids = [(istate.state_id)], status=Segment.SEG_STATUS_PREPARED) segment.pcoord = numpy.zeros((pcoord_len, pcoord_ndim), dtype=pcoord.dtype) segment.pcoord[0] = pcoord segments.append(segment) state_map[iseg]['old_seg_id'] = iseg state_map[iseg]['new_istate_id'] = istate.state_id dm_new.update_initial_states(istates, n_iter=0) dm_new.prepare_iteration(n_iter=1, segments=segments) # Update current iteration and close both files dm_new.current_iteration = 1 dm_new.close_backing() dm_old.close_backing() # Write state map istate_map_file = open(args.istate_map, 'wt')
state_map['old_n_iter'] = n_iter for (iseg, (index_row, pcoord)) in enumerate(zip(old_index, old_final_pcoords)): istate = istates[iseg] istate.iter_created = 0 istate.iter_used = 1 istate.istate_type = InitialState.ISTATE_TYPE_RESTART istate.istate_status = InitialState.ISTATE_STATUS_PREPARED istate.pcoord = pcoord segment = Segment(n_iter=1, seg_id=iseg, weight=index_row['weight'], parent_id =-(istate.state_id+1), wtg_parent_ids = [-(istate.state_id+1)], status=Segment.SEG_STATUS_PREPARED) segment.pcoord = numpy.zeros((pcoord_len, pcoord_ndim), dtype=pcoord.dtype) segment.pcoord[0] = pcoord segments.append(segment) state_map[iseg]['old_seg_id'] = iseg state_map[iseg]['new_istate_id'] = istate.state_id dm_new.update_initial_states(istates, n_iter=0) dm_new.prepare_iteration(n_iter=1, segments=segments) # Update current iteration and close both files dm_new.current_iteration = 1 dm_new.close_backing() dm_old.close_backing() # Write state map istate_map_file = open(args.istate_map, 'wt')