OpenMx
OpenMx copied to clipboard
Improve compute plan feedback to user
The compute plan is going to become more central as we head towards OpenMx 3.0. We have an opportunity to let the users know what compute plan has been used, and perhaps how long each step took (and maybe whether it was frontend or backend). Providing the user with a compute plan that could be revised is nice.
Already you can do model$compute to see the compute plan that was executed. Elapsed time per step is feasible to record, but may be less useful when the same step is repeated more than once.
Possibly, we could do some extra pretty printing for the default compute plan to make it more discoverable.
Providing the user with a compute plan that could be revised is nice.
Don't forget about omxDefaultComputePlan().
current pretty printing is as follows. Not sure what (if anything) would be nicer? maybe close issue?
omxDefaultComputePlan()
MxComputeSequence 'compute'
$freeSet : NA
independent : FALSE
steps[[ 'GD' ]] :
MxComputeGradientDescent 'compute'
$freeSet : NA
$engine : 'SLSQP'
$fitfunction : 'fitfunction'
$verbose : 0
$nudgeZeroStarts : 'Yes'
$gradientIterations : 1
$gradientStepSize : 1e-07
steps[[ 'ND' ]] :
MxComputeNumericDeriv 'compute'
$freeSet : NA
$fitfunction : 'fitfunction'
$parallel : TRUE
$stepSize : 1e-07
$iterations : 4
$verbose : 0
$knownHessian :
$checkGradient : TRUE
$hessian : TRUE
steps[[ 'SE' ]] :
MxComputeStandardError 'compute'
$freeSet : NA
steps[[ 'HQ' ]] :
MxComputeHessianQuality 'compute'
$freeSet : NA
steps[[ 'RD' ]] :
MxComputeReportDeriv 'compute'
$freeSet : NA
steps[[ 'RE' ]] :
MxComputeReportExpectation 'compute'
$freeSet : NA
Well, the output is probably incomplete. There are likely fields that should be printed but are omitted. Plus we don't have tests for pretty printing.