A methodological framework for cloud resource provisioning and scheduling of data parallel applications under uncertainty