Co-scheduling for large-scale applications: memory and resilience