High performance programming frameworks for numerical simulation