2023-08-29 12:57:46 +02:00
|
|
|
"""
|
|
|
|
MetagraphOptimization
|
|
|
|
|
|
|
|
A module containing tools to work on DAGs.
|
|
|
|
"""
|
2023-06-22 17:24:35 +02:00
|
|
|
module MetagraphOptimization
|
2023-06-29 16:22:58 +02:00
|
|
|
|
2023-08-29 12:57:46 +02:00
|
|
|
export DAG
|
|
|
|
export Node
|
|
|
|
export Edge
|
|
|
|
export ComputeTaskNode
|
|
|
|
export DataTaskNode
|
|
|
|
export AbstractTask
|
|
|
|
export AbstractComputeTask
|
|
|
|
export AbstractDataTask
|
|
|
|
export DataTask
|
|
|
|
export FusedComputeTask
|
2023-08-28 13:52:54 +02:00
|
|
|
export PossibleOperations
|
|
|
|
export GraphProperties
|
2023-08-29 12:57:46 +02:00
|
|
|
|
|
|
|
export make_node
|
|
|
|
export make_edge
|
|
|
|
export insert_node
|
|
|
|
export insert_edge
|
|
|
|
export is_entry_node
|
|
|
|
export is_exit_node
|
|
|
|
export parents
|
|
|
|
export children
|
|
|
|
export compute
|
2023-08-28 13:32:22 +02:00
|
|
|
export get_properties
|
2023-08-29 12:57:46 +02:00
|
|
|
export get_exit_node
|
|
|
|
export is_valid
|
|
|
|
|
|
|
|
export Operation
|
|
|
|
export AppliedOperation
|
|
|
|
export NodeFusion
|
|
|
|
export NodeReduction
|
|
|
|
export NodeSplit
|
|
|
|
export push_operation!
|
|
|
|
export pop_operation!
|
|
|
|
export can_pop
|
|
|
|
export reset_graph!
|
|
|
|
export get_operations
|
|
|
|
|
|
|
|
export parse_abc
|
|
|
|
export ComputeTaskP
|
|
|
|
export ComputeTaskS1
|
|
|
|
export ComputeTaskS2
|
|
|
|
export ComputeTaskV
|
|
|
|
export ComputeTaskU
|
|
|
|
export ComputeTaskSum
|
2023-06-29 16:22:58 +02:00
|
|
|
|
2023-08-31 18:47:05 +02:00
|
|
|
export execute
|
2023-09-05 12:14:41 +02:00
|
|
|
export gen_particles
|
2023-08-31 18:24:48 +02:00
|
|
|
export ParticleValue
|
|
|
|
export Particle
|
|
|
|
|
2023-08-17 18:46:57 +02:00
|
|
|
export ==, in, show, isempty, delete!, length
|
2023-06-29 16:22:58 +02:00
|
|
|
|
|
|
|
export bytes_to_human_readable
|
|
|
|
|
2023-08-17 18:46:57 +02:00
|
|
|
import Base.length
|
2023-05-26 19:25:21 +02:00
|
|
|
import Base.show
|
|
|
|
import Base.==
|
2023-08-28 13:32:22 +02:00
|
|
|
import Base.+
|
|
|
|
import Base.-
|
2023-05-26 19:25:21 +02:00
|
|
|
import Base.in
|
2023-06-27 20:05:27 +02:00
|
|
|
import Base.copy
|
2023-08-17 14:15:02 +02:00
|
|
|
import Base.isempty
|
|
|
|
import Base.delete!
|
2023-08-21 13:29:55 +02:00
|
|
|
import Base.insert!
|
|
|
|
import Base.collect
|
2023-05-25 17:20:16 +02:00
|
|
|
|
2023-06-29 16:22:58 +02:00
|
|
|
|
2023-08-24 15:11:54 +02:00
|
|
|
include("task/type.jl")
|
|
|
|
include("node/type.jl")
|
|
|
|
include("diff/type.jl")
|
2023-08-28 13:32:22 +02:00
|
|
|
include("properties/type.jl")
|
2023-08-24 15:11:54 +02:00
|
|
|
include("operation/type.jl")
|
|
|
|
include("graph/type.jl")
|
2023-06-29 16:22:58 +02:00
|
|
|
|
2023-08-22 13:21:26 +02:00
|
|
|
include("trie.jl")
|
|
|
|
include("utility.jl")
|
|
|
|
|
2023-08-24 15:11:54 +02:00
|
|
|
include("diff/print.jl")
|
|
|
|
include("diff/properties.jl")
|
2023-08-21 12:54:45 +02:00
|
|
|
|
2023-08-24 15:11:54 +02:00
|
|
|
include("graph/compare.jl")
|
|
|
|
include("graph/interface.jl")
|
|
|
|
include("graph/mute.jl")
|
|
|
|
include("graph/print.jl")
|
|
|
|
include("graph/properties.jl")
|
|
|
|
include("graph/validate.jl")
|
2023-08-21 12:54:45 +02:00
|
|
|
|
2023-08-24 15:11:54 +02:00
|
|
|
include("node/compare.jl")
|
|
|
|
include("node/create.jl")
|
|
|
|
include("node/print.jl")
|
|
|
|
include("node/properties.jl")
|
|
|
|
include("node/validate.jl")
|
2023-08-21 12:54:45 +02:00
|
|
|
|
2023-08-24 15:11:54 +02:00
|
|
|
include("operation/utility.jl")
|
|
|
|
include("operation/apply.jl")
|
|
|
|
include("operation/clean.jl")
|
|
|
|
include("operation/find.jl")
|
|
|
|
include("operation/get.jl")
|
|
|
|
include("operation/print.jl")
|
|
|
|
include("operation/validate.jl")
|
|
|
|
|
2023-08-28 13:32:22 +02:00
|
|
|
include("properties/create.jl")
|
|
|
|
include("properties/utility.jl")
|
|
|
|
|
2023-08-29 12:57:46 +02:00
|
|
|
include("task/create.jl")
|
2023-08-24 15:11:54 +02:00
|
|
|
include("task/compare.jl")
|
|
|
|
include("task/print.jl")
|
|
|
|
include("task/properties.jl")
|
|
|
|
|
|
|
|
include("models/abc/types.jl")
|
2023-08-31 18:24:48 +02:00
|
|
|
include("models/abc/particle.jl")
|
|
|
|
include("models/abc/compute.jl")
|
2023-09-05 12:14:41 +02:00
|
|
|
include("models/abc/create.jl")
|
2023-08-24 15:11:54 +02:00
|
|
|
include("models/abc/properties.jl")
|
|
|
|
include("models/abc/parse.jl")
|
2023-06-29 13:57:45 +02:00
|
|
|
|
2023-08-31 18:47:05 +02:00
|
|
|
include("code_gen/main.jl")
|
|
|
|
|
2023-06-22 17:24:35 +02:00
|
|
|
end # module MetagraphOptimization
|