SGL Hierarchical Bridging Model for Parallel Programming