Making Parallel Programming Easy: Research Contributions from Illinois