LSST Applications  21.0.0-147-g0e635eb1+1acddb5be5,22.0.0+052faf71bd,22.0.0+1ea9a8b2b2,22.0.0+6312710a6c,22.0.0+729191ecac,22.0.0+7589c3a021,22.0.0+9f079a9461,22.0.1-1-g7d6de66+b8044ec9de,22.0.1-1-g87000a6+536b1ee016,22.0.1-1-g8e32f31+6312710a6c,22.0.1-10-gd060f87+016f7cdc03,22.0.1-12-g9c3108e+df145f6f68,22.0.1-16-g314fa6d+c825727ab8,22.0.1-19-g93a5c75+d23f2fb6d8,22.0.1-19-gb93eaa13+aab3ef7709,22.0.1-2-g8ef0a89+b8044ec9de,22.0.1-2-g92698f7+9f079a9461,22.0.1-2-ga9b0f51+052faf71bd,22.0.1-2-gac51dbf+052faf71bd,22.0.1-2-gb66926d+6312710a6c,22.0.1-2-gcb770ba+09e3807989,22.0.1-20-g32debb5+b8044ec9de,22.0.1-23-gc2439a9a+fb0756638e,22.0.1-3-g496fd5d+09117f784f,22.0.1-3-g59f966b+1e6ba2c031,22.0.1-3-g849a1b8+f8b568069f,22.0.1-3-gaaec9c0+c5c846a8b1,22.0.1-32-g5ddfab5d3+60ce4897b0,22.0.1-4-g037fbe1+64e601228d,22.0.1-4-g8623105+b8044ec9de,22.0.1-5-g096abc9+d18c45d440,22.0.1-5-g15c806e+57f5c03693,22.0.1-7-gba73697+57f5c03693,master-g6e05de7fdc+c1283a92b8,master-g72cdda8301+729191ecac,w.2021.39
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: