Algunas de las partes más difíciles de cualquier aplicación para Java MPI surgen de las limitaciones del propio lenguaje de programación y sus peculiaridades, como la falta de los punteros explícitos y espacio de las direcciones de memoria lineales para sus objetos, que hacen la transferencia de arrays multi-dimensionales y objetos complejos ineficientes.