add communication information to hardware information class
Partitioning Graph: now store the types of communication at the edges instead of the communication costs directly, calculate the communication cost based on these communication types and a given hardware information; also adapt the critical path calculation
fix small issue in partitioning graph
add device parameter to cost functions in partitioning graph