When an SPMD program starts on a group of processes, there will be control threads mapped to physical processors. In each control thread, the program can define variables in the same way as in a sequential program. The variables created in this way are local variables. Their names may be replicated across processes, but they will be accessed individually (their scope is local to a process).
Besides local variables, HPJava allows a program to define global variables, explicitly mapped to a process group. A global variable will be treated by the process group that creating it as a single entity. The language has special syntax for the definition of global data. Global variables are all defined by using the new operator from free storage. When a global variable is created, a data descriptor is also allocated to describe where the data are held.