Prediction of job characteristics for intelligent resource allocation in HPC systems: a survey and future directions