
\section*{Top-level Communication operations}

Remapping can occur at either variable reference or function
reference nodes.
\begin{verbatim}
  remap(result_data, target_mapping, input_data).
\end{verbatim}
{\em target_mapping} is any legitimate HPF mapping for the input array.
Optimised entry points for shifts, transposes etc.

At variable reference nodes also have
\begin{verbatim}
  gather(result_data, hpf_array, subscript_1, subscript_2, ...)
\end{verbatim}
Optimised entry points for taking array sections, etc.  Simiarly,
{\em scatter}.

