[RFC] naming and API signature for external compilation

how about this? since the discussion is mainly about naming and API of annotation, I can remove that part from the PR for now and only keep the partitioning part. It will then only provide the option for users to annotate the graph by themselves first. We can keep the discussion of feature that helps users on annotation. This way we can move on for partitioning part and wait to converge on the annotation interface, and meanwhile I will be on vacation for several weeks soon. If we have no problem about the partitioning part, let’s further break the PR.

that sounds good to me