Merger Tree Processing Times¶
Class providing estimates of the computational processing time required for merger trees—predictions of how long (in wall-clock time) it will take to evolve a merger tree of a given root halo mass, and of the remaining time for a partially-processed tree. These estimates are used by the work-sharing scheduler to balance computational load across MPI processes: trees expected to take longer can be started earlier or assigned to dedicated workers. The null implementation returns a negative value indicating that no estimate is available.
Default implementation: metaTreeProcessingTimeNull
Methods¶
time→double precisionReturn an estimate of the time needed to process a tree of the given mass.
double precision, intent(in ) :: massTree
timeRemaining→double precisionReturn an estimate of the remaining time needed to process a given tree.
type(mergerTree), intent(inout) :: treedouble precision, intent(in ) :: timeFinal
metaTreeProcessingTimeFile¶
A merger tree processing time class which estimates processing times using a polynomial relation read from file. Specifically, the time taken to process a tree is estimate to be
where \(M\) is the root mass of the tree and the coefficients \(C_i\) are read from a file, the name of which is specified via the [fileName] parameter. This file should be an XML document with the structure:
<timing>
<fit>
<coefficient>-0.73</coefficient>
<coefficient>-0.20</coefficient>
<coefficient>0.03</coefficient>
</fit>
</timing>
where the array of coefficients give the values \(C_0\), \(C_1\) and \(C_2\).
Methods
readFile— Read the named power spectrum file.
Parameters
[forceZeroMetallicity](default.false.) — Force the use of zero metallicity (or lowest metallicity available) for all stellar populations.[fileName]— The path to the HDF5 file containing the tabulated stellar population spectra, with datasets for ages (Gyr), metallicities (log Solar), wavelengths (AA), and spectra (\(L_\odot\,\mathrm{Hz}^{-1}\)); see thescripts/sspsfolder for conversion scripts.[fileName]— The name of the file which contains fit coefficients for the time per tree fitting function.[fileName](defaultinputPath(pathTypeDataStatic)//'stellarAstrophysics/stellarPropertiesCompilationStandard.xml') — The name of the XML file from which to read stellar properties (ejected masses, yields, etc.).[fileName](defaultinputPath(pathTypeDataStatic)//'stellarAstrophysics/Stellar_Tracks_Padova.hdf5') — The name of the HDF5 file from which to read stellar tracks.[fileName]— The name of the file from which to read intergalactic medium state data.[fileName]— The name of the file from which to read intergalactic background light properties.[fileName]— The name of a file from which to read tabulated spectra of accretion disks.[fileName]— The name of the file from which to read a tabulated transfer function.
metaTreeProcessingTimeTotalEvolveTime¶
A merger tree processing time estimator that estimates the remaining computation time based on the total time spent evolving nodes in the tree, using a power-law scaling with cosmic time. The time scaling exponent is set by [exponentTime] and the minimum interval between progress updates by [updateInterval].
Parameters
[exponentTime](default0.5d0) — The exponent of cosmic time used in estimating the work associated with evolving a node.[updateInterval](default10.0d0) — The minimum interval (in seconds) between updates of the estimated time remaining.