Closed m4lvin closed 3 months ago
Work in progress since https://github.com/jrclogic/SMCDEL/commit/a7701ca9ee8ce0cca6e455de79c1bfd26dbf9f11
Benchmarks added in https://github.com/jrclogic/SMCDEL/commit/c1720cbfbf2a4d3d9bca90b35fc4b3bb895ef612 - in the plot below "DD" is the version using decision-diagrams
.
Some profiling results:
Tue Nov 28 14:14 2023 Time and Allocation Profiling Report (Final)
bench-muddychildren +RTS -p -RTS DD CUDD --csv bench/muddychildren-results.csv
total time = 6446.78 secs (6446778 ticks @ 1000 us, 1 processor)
total alloc = 7,015,669,765,456 bytes (excludes profiling overheads)
COST CENTRE MODULE SRC %time %alloc
insert' Data.HashTable.ST.Cuckoo src/Data/HashTable/ST/Cuckoo.hs:(417,1)-(424,12) 10.4 6.6
lookup Data.HashTable.ST.Cuckoo src/Data/HashTable/ST/Cuckoo.hs:135:5-28 8.8 6.3
lookup# Data.HashMap.Internal Data/HashMap/Internal.hs:609:1-82 8.2 0.0
hashInt Data.Hashable.LowLevel src/Data/Hashable/LowLevel.hs:(64,1)-(80,31) 5.4 7.8
ghashWithSalt Data.Hashable.Generic.Instances src/Data/Hashable/Generic/Instances.hs:43:5-36 5.3 11.1
primitive Control.Monad.Primitive Control/Monad/Primitive.hs:211:3-16 5.1 5.5
mkApplyOp.f Data.DecisionDiagram.BDD src/Data/DecisionDiagram/BDD.hs:(266,7)-(279,22) 4.2 5.4
modifyAdvice Data.DecisionDiagram.BDD.Internal.Node src/Data/DecisionDiagram/BDD/Internal/Node.hs:104:10-22 3.4 4.2
hashWithSalt Data.Hashable.Class src/Data/Hashable/Class.hs:334:5-26 3.4 0.0
$mLeaf.\ Data.DecisionDiagram.BDD.Internal.Node src/Data/DecisionDiagram/BDD/Internal/Node.hs:82:19-36 2.6 0.5
$mBranch.\ Data.DecisionDiagram.BDD.Internal.Node src/Data/DecisionDiagram/BDD/Internal/Node.hs:92:29-59 2.5 1.7
hashWithSalt Data.DecisionDiagram.BDD.Internal.Node src/Data/DecisionDiagram/BDD/Internal/Node.hs:71:3-46 2.4 4.1
grow.rehash.go Data.HashTable.ST.Cuckoo src/Data/HashTable/ST/Cuckoo.hs:(735,9)-(747,29) 2.3 2.1
ghashWithSalt Data.Hashable.Generic.Instances src/Data/Hashable/Generic/Instances.hs:(34,5)-(35,60) 2.1 3.7
intern Data.Interned.Internal Data/Interned/Internal.hs:(81,1)-(90,33) 1.8 3.2
liftHashWithSalt2 Data.Hashable.Class src/Data/Hashable/Class.hs:553:5-58 1.7 3.7
hashWithSalt Data.DecisionDiagram.BDD src/Data/DecisionDiagram/BDD.hs:171:17-24 1.7 0.0
ghashWithSalt Data.Hashable.Generic.Instances src/Data/Hashable/Generic/Instances.hs:39:5-62 1.5 6.9
from Data.DecisionDiagram.BDD.Internal.Node src/Data/DecisionDiagram/BDD/Internal/Node.hs:110:19-25 1.4 7.4
$mT.\ Data.DecisionDiagram.BDD.Internal.Node src/Data/DecisionDiagram/BDD/Internal/Node.hs:74:14-29 1.4 0.0
hashSum Data.Hashable.Generic.Instances src/Data/Hashable/Generic/Instances.hs:111:5-89 1.4 2.8
== Data.DecisionDiagram.BDD.Internal.Node src/Data/DecisionDiagram/BDD/Internal/Node.hs:110:15-16 1.2 0.0
defaultHash Data.Hashable.Class src/Data/Hashable/Class.hs:308:1-38 0.9 1.1
insert Data.HashTable.ST.Cuckoo src/Data/HashTable/ST/Cuckoo.hs:133:5-28 0.7 1.2
hashWithSalt Data.Hashable.Class src/Data/Hashable/Class.hs:235:5-38 0.4 1.4
writeArray Data.HashTable.Internal.IntArray src/Data/HashTable/Internal/IntArray.hs:(103,1)-(105,30) 0.3 1.1
See https://github.com/msakai/haskell-decision-diagrams