Data and task parallelism in ILP using MapReduce