Actions

User stories

From Modelado Foundation

Revision as of 15:56, January 17, 2017 by imported>Cnewburn (→‎Provisioning constraints)

The purpose of this page is to gather requirements, in the form of user stories, for HHAT.

A user story captures the essence of the requirement without over-constraining the implementation. It's tied to a role and a benefit. User stories take the following form:

As a <role>, I want <function>, so that <benefit>, subject to the following acceptance criteria <list>.

Please take this approach

  • Start each user story with a new subsection, using two equals signs and a space on either side of a title
  • Follow the template shown below

Provisioning constraints

List features of the deployed solution that will make or break its usability for you. Examples:

  • Library or compiler
  • C ABI that supports layering of C++, Fortran, Python on top
  • Does not have to own main
  • Composable and interoperable, e.g. with OpenMP, Kokkos, MPI, HDF5
  • Can target heterogeneous systems, e.g. Xeon, Xeon Phi, GPUs, FPGAs, TPUs, ARM

Please fill out user stories for these and others below.

Library-based solution

As an ISV, I want a C-ABI library-based solution, so that I don't have to rebuild all of my code because of a new compiler every time I want a new feature, subject to the following acceptance criteria

  • static or dynamic linking of library, invoked through an API
  • ok to update my compiler only every 2-3 years
  • C ABI, so that I can build other language interfaces on top, like C++, Fortran or Python

Entered by CJ on behalf of many ISVs, including Siemens, MSC, Simulia, Convergent Science

Functional requirements

Please provide detailed user stories for items like the following:

  • Execution of a given task can be selected for different kinds of execution resources, e.g. Xeon, Xeon Phi, GPUs, FPGAs, TPUs, ARM
  • Execution of a given task can be selection for different layouts of its data operands
  • Whether global variables are permitted
  • Whether task functions are pure, i.e. all inputs are available at the start and they run to completion, or whether they can block when they reach an internal point of execution until additional conditions (e.g. data or control dependences) are met
  • Whether tasks need to be able to spawn child tasks
  • Whether task dependences only need to be enforcable among siblings, or also at different levels of a hierarchy

User story template (please leave as an example)

As a <role>, I want <function>, so that <benefit>, subject to the following acceptance criteria

* item 1
* item 2
* item 3
* item 4

<Your Name> <Project(s) that this would benefit> <Link to other related collateral>