Reconfiguration and Communication-Aware Task Scheduling for High-Performance Reconfigurable Computing