1. A method of mapping processes to processors in a parallel computing environment, comprising: configuring a parallel application to execute on a cluster of nodes, wherein at least one of the nodes has multiple processors; creating a table containing entries, wherein each entry in the entries corresponds to a communication call in a set of communication calls and includes a conditional statement, a source rank, a destination rank, and a transfer size; and performing, for an entry of the table: (a) evaluating the conditional statement and, when the conditional statement is false, proceeding to the next entry and, when the conditional statement is true, proceeding to (b); (b) determining peer communicating rank and proceeding to (c); (c) determining whether the peer communicating rank is different from the current rank and, when the peer communicating rank is not different, proceeding to the next entry and, when the peer communicating rank is different, proceeding to (d); (d) determining whether a graph node exists for the peer communicating rank and adding transfer size as a weight when the graph node exists, and proceeding to (e) when the graph node does not exist; (e) creating a graph node for the peer communicating rank and proceeding to (f); and (f) adding an edge connecting current rank's graph node to the created graph node with transfer size as a weight of the edge.