MPI+OpenMP implementation of Memory-saving parallel PIC applications on Hierarchical Distributed-Shared Memory Architectures