PAL: High Level Parallel Programming with Java Annotations