P3 problem and Magnolia language: Specializing array computations for emerging architectures