A High Level SPMD Programming Model: HPspmd and its Java Language Binding