Created by: cjld
Currently, unordered_set are widely used in Executor. However, unordered_set<SomeType*> is not deterministic, rewriting hash function for unordered_set of Node and VarHandle and OpHandle can make op running order more stable.
This is good for debugging and also may have some beneficiations when using distribution.