Programming Models For Computers Of Extreme Scale Parallelism