Theory and Applications of Parallelism with Futures