The most fundamental problem in BSP parallel graph computing is to decide how to partition and then distribute the graph among the available processors. In this regard, partitioning techniques for BSP heterogeneous computing should produce computing loads with different sizes (unbalanced partitions) in order to exploit processors with different computing capabilities. In this chapter, three major graph partitioning paradigms that are relevant to parallel graph processing are reviewed: balanced graph partitioning, unbalanced graph partitioning, and community detection. Then, the authors discuss how any of these paradigms fits the needs of graph heterogeneous computing where the suitability of partitions to hardware architectures plays a vital role. Finally, the authors discuss how the decomposition of networks in layers through the k-core decomposition provides the means for developing methods to produce unbalanced graph partitions that match multi-core and GPU processing capabilities.