[Yt-svn] yt-commit r1291 - trunk/yt/lagos
mturk at wrangler.dreamhost.com
mturk at wrangler.dreamhost.com
Tue May 5 10:55:00 PDT 2009
Author: mturk
Date: Tue May 5 10:55:00 2009
New Revision: 1291
URL: http://yt.spacepope.org/changeset/1291
Log:
Added support for preloading of data in the DerivedQuantities, which should
reduce some IO bottlenecks for parallel DQ's.
Modified:
trunk/yt/lagos/DerivedQuantities.py
trunk/yt/lagos/FieldInfoContainer.py
Modified: trunk/yt/lagos/DerivedQuantities.py
==============================================================================
--- trunk/yt/lagos/DerivedQuantities.py (original)
+++ trunk/yt/lagos/DerivedQuantities.py Tue May 5 10:55:00 2009
@@ -58,6 +58,16 @@
def __call__(self, *args, **kwargs):
lazy_reader = kwargs.pop('lazy_reader', False)
+ preload = kwargs.pop('preload', False)
+ if preload:
+ if not lazy_reader: mylog.debug("Turning on lazy_reader because of preload")
+ lazy_reader = True
+ e = FieldDetector()
+ e.NumberOfParticles = 1
+ self.func(e, *args, **kwargs)
+ mylog.debug("Preloading %s", e.requested)
+ self._preload(self._get_grids(), e.requested,
+ self._data_source.pf.h.queue)
if lazy_reader and not self.force_unlazy:
return self._call_func_lazy(args, kwargs)
else:
Modified: trunk/yt/lagos/FieldInfoContainer.py
==============================================================================
--- trunk/yt/lagos/FieldInfoContainer.py (original)
+++ trunk/yt/lagos/FieldInfoContainer.py Tue May 5 10:55:00 2009
@@ -123,6 +123,7 @@
class FieldDetector(defaultdict):
Level = 1
NumberOfParticles = 0
+ _read_exception = None
def __init__(self, nd = 16, pf = None):
self.nd = nd
self.ActiveDimensions = [nd,nd,nd]
@@ -154,6 +155,11 @@
return self[item]
self.requested.append(item)
return defaultdict.__missing__(self, item)
+
+ def _read_data(self, field_name):
+ self.requested.append(field_name)
+ return defaultdict.__missing__(self, field_name)
+
def get_field_parameter(self, param):
self.requested_parameters.append(param)
if param in ['bulk_velocity','center','height_vector']:
More information about the yt-svn
mailing list