LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | Public Attributes | List of all members
lsst.ctrl.pool.pool.PoolNode Class Reference
Inheritance diagram for lsst.ctrl.pool.pool.PoolNode:
lsst.ctrl.pool.pool.SingletonMeta lsst.ctrl.pool.pool.PoolMaster lsst.ctrl.pool.pool.PoolSlave

Public Member Functions

def __init__ (self, comm=None, root=0)
 
def log (self, msg, *args)
 
def isMaster (self)
 
def storeSet (self, context, **kwargs)
 
def storeDel (self, context, *nameList)
 
def storeClear (self, context)
 
def cacheClear (self, context)
 
def cacheList (self, context)
 
def storeList (self, context)
 
def __call__ (cls, *args, **kwargs)
 

Public Attributes

 comm
 
 rank
 
 root
 
 size
 
 debugger
 
 node
 

Detailed Description

Node in MPI process pool

WARNING: You should not let a pool instance hang around at program
termination, as the garbage collection behaves differently, and may
cause a segmentation fault (signal 11).

Definition at line 486 of file pool.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.ctrl.pool.pool.PoolNode.__init__ (   self,
  comm = None,
  root = 0 
)

Definition at line 494 of file pool.py.

494  def __init__(self, comm=None, root=0):
495  if comm is None:
496  comm = Comm()
497  self.comm = comm
498  self.rank = self.comm.rank
499  self.root = root
500  self.size = self.comm.size
501  self._cache = {}
502  self._store = {}
503  self.debugger = Debugger()
504  self.node = NODE
505 

Member Function Documentation

◆ __call__()

def lsst.ctrl.pool.pool.SingletonMeta.__call__ (   cls,
args,
**  kwargs 
)
inherited

Definition at line 387 of file pool.py.

387  def __call__(cls, *args, **kwargs):
388  if cls._instance is None:
389  cls._instance = super(SingletonMeta, cls).__call__(*args, **kwargs)
390  return cls._instance
391 
392 

◆ cacheClear()

def lsst.ctrl.pool.pool.PoolNode.cacheClear (   self,
  context 
)
Reset cache for a particular context

Reimplemented in lsst.ctrl.pool.pool.PoolMaster.

Definition at line 607 of file pool.py.

607  def cacheClear(self, context):
608  """Reset cache for a particular context"""
609  self.log("clearing cache", context)
610  if context not in self._cache:
611  return
612  self._cache[context] = {}
613 

◆ cacheList()

def lsst.ctrl.pool.pool.PoolNode.cacheList (   self,
  context 
)
List contents of cache

Reimplemented in lsst.ctrl.pool.pool.PoolMaster.

Definition at line 614 of file pool.py.

614  def cacheList(self, context):
615  """List contents of cache"""
616  cache = self._cache[context] if context in self._cache else {}
617  sys.stderr.write("Cache on %s (%s): %s\n" % (self.node, context, cache))
618 

◆ isMaster()

def lsst.ctrl.pool.pool.PoolNode.isMaster (   self)

Definition at line 526 of file pool.py.

526  def isMaster(self):
527  return self.rank == self.root
528 

◆ log()

def lsst.ctrl.pool.pool.PoolNode.log (   self,
  msg,
args 
)
Log a debugging message

Reimplemented in lsst.ctrl.pool.pool.PoolSlave, and lsst.ctrl.pool.pool.PoolMaster.

Definition at line 522 of file pool.py.

522  def log(self, msg, *args):
523  """Log a debugging message"""
524  self.debugger.log("Node %d" % self.rank, msg, *args)
525 

◆ storeClear()

def lsst.ctrl.pool.pool.PoolNode.storeClear (   self,
  context 
)
Clear stored data for a particular context

Reimplemented in lsst.ctrl.pool.pool.PoolMaster.

Definition at line 600 of file pool.py.

600  def storeClear(self, context):
601  """Clear stored data for a particular context"""
602  self.log("clearing store", context)
603  if context not in self._store:
604  raise KeyError("No such context: %s" % context)
605  self._store[context] = {}
606 

◆ storeDel()

def lsst.ctrl.pool.pool.PoolNode.storeDel (   self,
  context,
nameList 
)
Delete value in store for a particular context

Reimplemented in lsst.ctrl.pool.pool.PoolMaster.

Definition at line 592 of file pool.py.

592  def storeDel(self, context, *nameList):
593  """Delete value in store for a particular context"""
594  self.log("deleting from store", context, nameList)
595  if context not in self._store:
596  raise KeyError("No such context: %s" % context)
597  for name in nameList:
598  del self._store[context][name]
599 

◆ storeList()

def lsst.ctrl.pool.pool.PoolNode.storeList (   self,
  context 
)
List contents of store for a particular context

Reimplemented in lsst.ctrl.pool.pool.PoolMaster.

Definition at line 619 of file pool.py.

619  def storeList(self, context):
620  """List contents of store for a particular context"""
621  if context not in self._store:
622  raise KeyError("No such context: %s" % context)
623  sys.stderr.write("Store on %s (%s): %s\n" % (self.node, context, self._store[context]))
624 
625 

◆ storeSet()

def lsst.ctrl.pool.pool.PoolNode.storeSet (   self,
  context,
**  kwargs 
)
Set values in store for a particular context

Reimplemented in lsst.ctrl.pool.pool.PoolMaster.

Definition at line 584 of file pool.py.

584  def storeSet(self, context, **kwargs):
585  """Set values in store for a particular context"""
586  self.log("storing", context, kwargs)
587  if context not in self._store:
588  self._store[context] = {}
589  for name, value in kwargs.items():
590  self._store[context][name] = value
591 

Member Data Documentation

◆ comm

lsst.ctrl.pool.pool.PoolNode.comm

Definition at line 497 of file pool.py.

◆ debugger

lsst.ctrl.pool.pool.PoolNode.debugger

Definition at line 503 of file pool.py.

◆ node

lsst.ctrl.pool.pool.PoolNode.node

Definition at line 504 of file pool.py.

◆ rank

lsst.ctrl.pool.pool.PoolNode.rank

Definition at line 498 of file pool.py.

◆ root

lsst.ctrl.pool.pool.PoolNode.root

Definition at line 499 of file pool.py.

◆ size

lsst.ctrl.pool.pool.PoolNode.size

Definition at line 500 of file pool.py.


The documentation for this class was generated from the following file: