Alpha
This lesson is in the alpha phase, which means that it has been taught once and lesson authors are iterating on feedback.
Design
IntroductionWhy DesignIn this module we will cover general design principles and those
that are tailored for scientific softwareMotivation and Objectives
Investing in design is critical for reliable, maintainable and
extensible software
More computations rely on accelerators, software design should be
cognizant of added constraints
Design for HeterogeneityMechanisms Needed by the CodeUnderlying Ideas: Unification of Computational ExpressionsUnderlying Ideas: Moving Work and Data to the TargetUnderlying Ideas: Mapping Work to TargetsFeatures and Abstractions to be Added to Earlier ExampleMechanisms Needed by the Code : Example Flash-XConstruction of Application with Components and Tools
More separation of concerns and abstractions are needed