Friday, September 9, 2016

Chemora

Chemora! (Computational Hierarchy for Engineering Model-Oriented Re-adjustable Applications) is a code generation and optimization framework. In simple terms, it enables efficient and hybrid computations to be generated from high level mathematical equations (including discretization, transcription to a programming language, and optimizations).

Chemora starts from a high-level problem description in terms of partial differential equations using abstract tensor notation, the Chemora framework discretizes, optimizes, and generates complete high performance codes for a wide range of compute architectures. Chemora extends the capabilities of Cactus, facilitating the usage of large-scale CPU/GPU systems in an efficient manner for complex applications, without low-level code tuning. Chemora achieves parallelism through MPI, multi-threading (using OpenMP), and accelerators (using CUDA or OpenCL). Optimizations include high-level code transformations, efficient loop traversal strategies, dynamically selected data and instruction cache usage strategies, and JIT compilation of GPU code tailored to the problem characteristics.

In Chemora, we take an integrative approach to addressing programmability and performance at all levels, from enabling large-scale collaborations, to separating physics, numerical analysis, and computer science in an application, to disentangling kernel implementations from performance optimization annotations. Chemora is based on the Cactus computational toolkit, a well-known framework used in several scientific communities for developing HPC applications. Cactus is a component-based software engineering framework providing key abstractions to simplify significantly parallel programming for a large class of problems, in particular solving systems of partial differential equations (PDEs) on block-structured grids -- i.e. adaptive mesh refinement (AMR) and multi-block systems.

https://chemoracode.cct.lsu.edu/

https://bitbucket.org/chemora/chemoracode

No comments:

Post a Comment