-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Labels
good first issueGood for newcomersGood for newcomers
Description
Running make test on my machine utilizing all cores and threads takes 4m09.3s.
Although this is already really fast, I think it can be improved a little bit by optimizing the bottleneck tests (e.g. split multiple @testset in a @testitem into multiple @testitem with single @testset).
Running my bottleneck test script on the output of make test reveals the bottlenecks:
$ grep 'DONE' /tmp/out.txt | perl -nle 'if(/"(.*?)" ([0-9]+(?:\.[0-9]+)?)\s*secs/){print "$2 \"$1\""}' | sort -nr
237.1 "cvi:prod"
91.6 "Basic out rule tests #2"
82.3 "rules:DiscreteTransition:out:Belief propagation: higher orders"
81.2 "rules:DiscreteTransition:T:Additional T-interface tests for Belief Propagation"
74.8 "rules:DiscreteTransition:in:Structured VMP: Higher orders (q_out::Pointmass, q_a::DirichletCollection, m_T*::Categorical)"
64.1 "rules:DiscreteTransition:T:Additional T-interface tests for structured VMP"
50.6 "CVIProjection proposal distribution convergence tests"
48.1 "rules:ContinuousTransition:x"
44.6 "Basic checks for marginal rule"
43.6 "rules:NormalMixture:out"
38.7 "rules:ContinuousTransition:a"
38.1 "Marginal"
36.3 "Message"
36.1 "DeltaNode - CVI sampling strategy performance comparison"
34.6 "rules:Delta:linearization:in"
33.6 "marginalrules:typeof(+)"
33.0 "marginalrules:ContinuousTransition"
32.5 "rules:ContinuousTransition:W"
30.3 "Basic out rule tests #4"
24.0 "rules:typeof(+):in1"
23.9 "rules:Flow:in"
23.8 "Basic out rule tests #1"
23.6 "rules:ContinuousTransition:y"
22.7 "marginalrules:typeof(-)"
22.6 "marginalrules:CVI"
18.9 "rule"
18.8 "rules:MvNormalMeanScaleMatrixPrecision:matrix"
17.8 "rules:DiscreteTransition:T:Belief Propagation: (m_out::Categorical, m_in::Categorical, q_a::DirichletCollection, m_t2::Categorical)"
16.0 "rules:DiscreteTransition:T:Belief Propagation: (m_out::Categorical, m_in::Categorical, q_a::DirichletCollection, m_T1::Categorical)"
14.9 "optimize_parameters: with specified form"
14.7 "rules:MvNormalMeanCovariance:covariance"
14.5 "rules:Delta:linearization:marginals"
14.5 "CVIProjection form access tests"
13.9 "StandardBasisVector"
12.7 "DirichletCollectionNode"
10.8 "rules:Delta:linearization:out"
10.6 "rules:SoftDot:γ"
10.2 "rules:Autoregressive:γ"
9.8 "rules:Probit:in"
9.6 "Variable"
9.2 "rules:SoftDot:θ"
8.9 "Basic out rule tests #3"
8.8 "rules:SoftDot:y"
8.7 "rules:typeof(-):in2"
8.4 "ContinuousTransitionNode"
8.4 "CVI Projection Extension Tests"
8.2 "rules:Autoregressive:θ"
8.2 "Flow Model"
7.7 "rules:typeof(+):out"
7.5 "marginalrules:DotProduct"
7.1 "rules:NormalMixture:m"
6.8 "rules:MvNormalMeanScaleMatrixPrecision:mean"
6.4 "rules:Autoregressive:x"
6.1 "rules:typeof(dot):out"
6.1 "rules:MvNormalMeanPrecision:mean"
5.9 "rules:DiscreteTransition:marginals:out_in_T1: (m_out::Categorical, m_in::Categorical, m_T1::Categorical, q_a::DirichletCollection)"
5.7 "rules:NormalMeanVariance:var"
5.6 "rules:NormalMixture:switch"
5.6 "rules:DiscreteTransition:T:Belief Propagation (m_out::Categorical, m_in::Categorical, q_a::PointMass)"
5.4 "rules:MvNormalMeanCovariance:mean"
5.3 "Linearization approximation method"
5.1 "rules:typeof(-):in1"
5.1 "DeltaNode - Creation with static inputs (all permutations) #2"
5.0 "rules:MvNormalMeanPrecision:out"
5.0 "rules:DiscreteTransition:a:Variational Bayes: (q_out_in_T1_t2::Contingency)"
4.7 "marginalrules:Autoregressive"
4.4 "rules:DiscreteTransition:marginals:out_in_T1_T2: (m_out::Categorical, m_in::Categorical, m_T1::Categorical, m_T2::Categorical, q_a::DirichletCollection)"
4.4 "rules:Autoregressive:y"
4.4 "marginalrules:Wishart"
4.2 "rules:BinomialPolya:beta"
4.1 "rules:typeof(-):out"
4.1 "rules:typeof(+):in2"
3.9 "rules:DiscreteTransition:T:Belief Propagation: (m_out::Categorical, m_in::Categorical, q_a::DirichletCollection)"
3.9 "rules:BIFM:in"
3.8 "rules:SoftDot:x"
3.8 "marginalrules:BIFM"
3.8 "ProjectionForm target tests"
3.7 "rules:typeof(dot):in1"
3.7 "marginalrules:Flow"
3.7 "DiscreteTransitionNode"
3.5 "Permutation Matrix"
3.5 "Additive Coupling Layer"
3.4 "rules:Delta:unscented:in"
3.4 "Unscented approximation method"
3.4 "Planar Flow"
3.2 "rules:HalfNormal:out"
3.2 "rules:DiscreteTransition:T:Belief Propagation (q_out::PointMass, m_in::Categorical, q_a::PointMass)"
3.1 "rules:MvNormalMeanPrecision:precision"
3.0 "rules:AND:out"
3.0 "rule:typeof(*):in"
3.0 "create_project_to_ins type stability"
2.8 "rules:MvNormalMeanCovariance:out"
2.8 "rules:DiscreteTransition:a:Variational Bayes: (q_out_in_T1::Contingency)"
2.6 "rules:Delta:cvi:out"
2.5 "rules:NormalMeanPrecision:mean"
2.4 "rules:NormalMeanPrecision:out"
2.4 "Various functional dependencies"
2.4 "Correct initialization of clusters"
2.4 "Basic checks for marginal rule with mean based approximation"
2.3 "rules:MvNormalMeanScaleMatrixPrecision:precision"
2.3 "rules:DiscreteTransition:a:Variational Bayes: (q_out::Any, q_in::Categorical)"
2.3 "Radial Flow"
2.3 "MvNormalWeightedMeanPrecisionNodeTest"
2.2 "rules:NormalMixture:p"
2.2 "rules:NormalMeanVariance:mean"
2.2 "Basic out rule tests #5"
2.1 "sdtype"
2.1 "rules:NormalMeanPrecision:precision"
2.1 "MvNormalMeanPrecisionNode"
2.1 "MultinomialPolya average energy"
2.1 "InverseGammaNode"
2.0 "rules:DiscreteTransition:marginals:out_in_T1: (m_out::PointMass, m_in::Categorical, m_T1::Categorical, q_a::DirichletCollection)"
2.0 "rules:DiscreteTransition:in:Belief Propagation: (m_out::Categorical, q_a::DirichletCollection, m_t1::Categorical, m_t2::Categorical)"
2.0 "RandomVariable: messageout"
2.0 "Debug addon"
1.9 "create_project_to type stability"
1.8 "rules:NormalMeanVariance:out"
1.8 "rules:IMPLY:marginals"
1.7 "rules:DiscreteTransition:in:Structured Variational Message Passing: (m_out::Categorical, q_a::DirichletCollection, q_t1_t2::Contingency)"
1.7 "rules:BIFM:out"
1.7 "BIFMHelperNode"
1.7 "AlgebraCommonTest"
1.6 "rules:DiscreteTransition:marginals:out_in: (m_out::PointMass, m_in::Categorical, q_a::DirichletCollection)"
1.6 "rules:Delta:unscented:out"
1.6 "marginalrules:Dirichlet"
1.5 "rules:typeof(dot):in2"
1.5 "rules:Delta:cvi:in"
1.4 "rules:MultinomialPolya:psi"
1.4 "rules:DiscreteTransition:marginals:out_in: (m_out::Categorical, m_in::Categorical, q_a::DirichletCollection)"
1.3 "rule:typeof(*):out"
1.3 "DivisionOf"
1.3 "DeltaNode - CVI layout functionality"
1.3 "BinomialPolya average energy"
1.2 "rules:Flow:out"
1.2 "rules:DiscreteTransition:marginals:out_in: (m_out::Categorical, m_in::Categorical, q_a::DirichletCollection, q_T1::PointMass)"
1.2 "rules:DiscreteTransition:a:Variational Bayes: (q_out_in::Contingency, q_T1::Categorical)"
1.2 "rules:AND:marginals"
1.2 "Permutation Layer"
1.2 "Extension availability with `ExponentialFamilyProjection`"
1.1 "marginalrules:Categorical"
1.0 "rules:Wishart:out"
1.0 "rules:MvNormalMeanScalePrecision:precision"
1.0 "rules:Delta:unscented:marginals"
1.0 "MvNormalMeanScaleMatrixPrecision"
1.0 "MvNormalMeanCovarianceNode"
1.0 "Generic nodefunction fallback rule"
1.0 "AutoregressiveNode"
0.9 "rules:DiscreteTransition:out:Belief Propagation: (m_in::Categorical, q_a::DirichletCollection, m_t1::Categorical, m_t2::Categorical)"
0.9 "rules:DiscreteTransition:in:Belief Propagation: (m_out::Categorical, q_a::DirichletCollection, m_t1::Categorical)"
0.9 "rules:DiscreteTransition:a:Variational Bayes: (q_out_in::Contingency, q_T1::PointMass)"
0.9 "marginalrules:InverseWishart"
0.9 "Shared approximation methods"
0.9 "RandomVariable: getmarginal"
0.9 "DataVariable: linked variable"
0.8 "rules:MvNormalMeanScaleMatrixPrecision:out"
0.8 "rules:DiscreteTransition:marginals:out_in_T1_T2: (m_out::PointMass, m_in::Categorical, m_T1::PointMass, m_T2::Categorical, q_a::DirichletCollection)"
0.8 "rules:DiscreteTransition:in:Belief Propagation: (m_out::Categorical, q_a::DirichletCollection, q_T1::PointMass)"
0.8 "rules:Categorical:p"
0.8 "GenericFactorNode constructor"
0.7 "rules:Uniform:out"
0.7 "rules:OR:marginals"
0.7 "rules:InverseWishart:out"
0.7 "rules:BIFM:zprev"
0.7 "collect_latest_messages"
0.7 "NormalMeanPrecisionNode"
0.6 "rules:MvNormalWeightedMeanPrecision:out"
0.6 "rules:DiscreteTransition:out:Belief Propagation: (q_in::PointMass, q_a::PointMass)"
0.6 "rules:DiscreteTransition:out:Belief Propagation: (m_in::Categorical, q_a::DirichletCollection, q_T1::PointMass)"
0.6 "rules:DiscreteTransition:out:Belief Propagation: (m_in::Categorical, q_a::DirichletCollection, m_t1::Categorical)"
0.6 "rules:BIFM:znext"
0.6 "marginalrules:Bernoulli"
0.6 "SoftDotNode"
0.6 "Predefined nodes should check the arguments supplied"
0.6 "MvNormalMeanScalePrecision"
0.6 "Functional dependencies may change depending on the metadata from options"
0.6 "ExponentialLinearQuadratic"
0.6 "@node macro (in the current implementation) should not support interface names with underscores"
0.5 "rules:GammaInverse:out"
0.5 "rules:DiscreteTransition:marginals:T1_T2: (q_out_in::Contingency, m_T1::PointMass, m_T2::Categorical, q_a::DirichletCollection)"
0.5 "`factornode` should throw an error if the functional form is not defined with the `@node` macro"
0.5 "DeltaNode - creation with static inputs (simple case) #1"
0.4 "rules:MvNormalMeanScalePrecision:mean"
0.4 "rules:MvNormalMeanPrecision:out"
0.4 "rules:DiscreteTransition:out:Variational Bayes: (q_in::Categorical, q_a::DirichletCollection)"
0.4 "rules:DiscreteTransition:marginals:out_in_T1: (m_out::Categorical, m_in::PointMass, m_T1::Categorical, q_a::DirichletCollection)"
0.4 "rules:DiscreteTransition:marginals:out_T1_T2: (m_out::Categorical, m_T1::Categorical, m_T2::Categorical, q_in::Categorical, q_a::DirichletCollection)"
0.4 "rules:DiscreteTransition:marginals:T1_T2: (q_out_in::Contingency, m_T1::Categorical, m_T2::Categorical, q_a::DirichletCollection)"
0.4 "rules:DiscreteTransition:in:Variational Bayes: (q_out::Any, q_a::DirichletCollection)"
0.4 "rules:DiscreteTransition:a:Variational Bayes: (q_out_in::Contingency)"
0.4 "rule:typeof(*):A"
0.4 "isonehot"
0.4 "collect_latest_marginals"
0.4 "ProbitNode"
0.4 "Memory addon"
0.4 "LoggerPipelineStage"
0.4 "FactorNodeLocalClusters constructor"
0.4 "DataVariable: getmarginal"
0.3 "rules:Probit:out"
0.3 "rules:MultinomialPolya:x"
0.3 "rules:GammaShapeRate:β"
0.3 "rules:GammaShapeRate:α"
0.3 "rules:BIFMHelper:in"
0.3 "rules:AND:in1"
0.3 "marginalrules:Beta"
0.3 "RandomVariable: activate! - zero or less than one inbound messages should throw"
0.3 "NormalMixtureNode"
0.3 "Input Layer"
0.3 "FlowNode"
0.3 "Deferred message"
0.3 "ConstVariable: uninitialized"
0.3 "ConstVariable: getmarginal"
0.2 "rules:Poisson:out"
0.2 "rules:IMPLY:in1"
0.2 "rules:GammaShapeRate:out"
0.2 "rules:DiscreteTransition:out:Belief Propagation: (m_in::DiscreteNonParametric, q_a::PointMass)"
0.2 "rules:DiscreteTransition:in:Variational Bayes: (q_out::Any, q_a::PointMass)"
0.2 "rules:DiscreteTransition:in:Belief Propagation: (m_out::Categorical, q_a::PointMass)"
0.2 "rules:Dirichlet:out"
0.2 "rules:Categorical:out"
0.2 "rules:BinomialPolya:beta"
0.2 "rules:Beta:out"
0.2 "rules:Bernoulli:p"
0.2 "rules:Bernoulli:out"
0.2 "rules:BIFMHelper:out"
0.2 "marginalrules:Poisson"
0.2 "marginalrules:GammaInverse"
0.2 "is_predefined_node"
0.2 "clusterindex"
0.2 "`@node` macro should generate the node function in all directions for `Stochastic` nodes"
0.2 "PoissonNode"
0.2 "NormalMeanVarianceNode"
0.2 "NodeInterface"
0.2 "MessageMapping should call `rulefallback` is no rule is available"
0.2 "InverseWishartNode"
0.2 "ConstVariable: getmessagein!"
0.2 "Basic check for in rule"
0.2 "@node macro"
0.2 "@node macro should generate a documentation entry for a newly specified node"
0.1 "rules:Poisson:l"
0.1 "rules:OR:out"
0.1 "rules:NOT:in"
0.1 "rules:IMPLY:in2"
0.1 "rules:DiscreteTransition:out:Variational Bayes: (m_in::PointMass, q_a::PointMass)"
0.1 "marginalrules:GammaShapeRate"
0.1 "clustername"
0.1 "`UnspecifiedFormConstraint` should not error on `Distribution` objects"
0.1 "RandomVariable: getmessagein!"
0.1 "NodeInterface israndom/isdata/isconst"
0.1 "FactorNodeLocalMarginal"
0.1 "DataVariable: getmessagein!"
0.1 "Addons"Metadata
Metadata
Assignees
Labels
good first issueGood for newcomersGood for newcomers
Type
Projects
Status
Backlog