Self-adjusting pipeline designs and tuning methods for timing variation tolerance in multi-processor systems