Timing, memory and profiling
qcd.barrier
qcd.barrier() --> nothing
A QMP barrier. Every rank must reach it.
qcd.node
qcd.node() --> number
The calling rank's number. The same value as os.node().
qcd.network
qcd.network() --> nodes, kind [, dims]
The number of ranks in the job and the message-passing topology, as a string: "switch", "grid", "fattree" or "typeN". When a logical topology has been declared, a third result gives the shape of the rank grid as a list. L:network() gives the same shape for a particular lattice.
qcd.memory_usage
qcd.memory_usage() --> table
How many QDP objects of each kind are alive, keyed by type name. Only non-zero counts appear. The way to find a field leaked in a loop.
qcd.log_rusage
qcd.log_rusage([filename [, message]]) --> nothing
Appends a line with the timestamp, ru_maxrss and message to filename, or prints it when no file is named.
qcd.qprof_print
qcd.qprof_print() --> nothing
Prints the internal profiler's accumulated counters, from the master node. Useful only in a build that has profiling compiled in.
qcd.version
A read-only table of component version strings: qlua, lua, qdp, aff, hdf5, clover, twisted, mdwf, extras, gsl, cblas, qopqdp, sfc, qa0, qmp, qla, qio, arpack, lapack and colors. Which keys are present depends on what the binary was built with, so a script that asks for one should expect nil.
qcd.Ns
The number of Dirac components the binary was built for — 4 in every shipped build. A number, not a function.
|