lsst.ctrl.pool g295839609d+7b307df84d
|
Classes | |
class | Cache |
class | Comm |
class | Debugger |
class | NoOp |
class | PickleHolder |
class | Pool |
class | PoolMaster |
class | PoolNode |
class | PoolSlave |
class | PoolWrapper |
class | PoolWrapperMeta |
class | ReductionThread |
class | SingletonMeta |
Metaclass to produce a singleton. More... | |
class | Tags |
Functions | |
def | unpickleInstanceMethod (obj, name) |
def | pickleInstanceMethod (method) |
def | unpickleFunction (moduleName, funcName) |
def | pickleFunction (function) |
def | getBatchType () |
def | setBatchType (batchType) |
def | abortOnError (func) |
def | guessPickleObj () |
def | pickleSniffer (abort=False) |
def | catchPicklingError (func) |
def | startPool (comm=None, root=0, killSlaves=True) |
Start a process pool. More... | |
Variables | |
string | NODE = "%s:%d" % (os.uname()[1], os.getpid()) |
def lsst.ctrl.pool.pool.abortOnError | ( | func | ) |
def lsst.ctrl.pool.pool.catchPicklingError | ( | func | ) |
def lsst.ctrl.pool.pool.getBatchType | ( | ) |
def lsst.ctrl.pool.pool.guessPickleObj | ( | ) |
def lsst.ctrl.pool.pool.pickleFunction | ( | function | ) |
Pickle a function This assumes that we can recreate the function object by grabbing it from the proper module. This may be violated if the function is a lambda or in __main__. In that case, I recommend recasting the function as an object with a __call__ method. Another problematic case may be a wrapped (e.g., decorated) method in a class: the 'method' is then a function, and recreating it is not as easy as we assume here.
def lsst.ctrl.pool.pool.pickleInstanceMethod | ( | method | ) |
def lsst.ctrl.pool.pool.pickleSniffer | ( | abort = False | ) |
Context manager to sniff out pickle problems If there's a pickle error, you're normally told what the problem class is. However, all SWIG objects are reported as "SwigPyObject". In order to figure out which actual SWIG-ed class is causing problems, we need to go digging. Use like this: with pickleSniffer(): someOperationInvolvingPickle() If 'abort' is True, will call MPI abort in the event of problems.
def lsst.ctrl.pool.pool.setBatchType | ( | batchType | ) |
def lsst.ctrl.pool.pool.startPool | ( | comm = None , |
|
root = 0 , |
|||
killSlaves = True |
|||
) |
Start a process pool.
Returns a PoolMaster object for the master node. Slave nodes are run and then optionally killed. If you elect not to kill the slaves, note that they will emerge at the point this function was called, which is likely very different from the point the master is at, so it will likely be necessary to put in some rank dependent code (e.g., look at the 'rank' attribute of the returned pools). Note that the pool objects should be deleted (either by going out of scope or explicit 'del') before program termination to avoid a segmentation fault. @param comm: MPI communicator @param root: Rank of root/master node @param killSlaves: Kill slaves on completion?
def lsst.ctrl.pool.pool.unpickleFunction | ( | moduleName, | |
funcName | |||
) |
def lsst.ctrl.pool.pool.unpickleInstanceMethod | ( | obj, | |
name | |||
) |