Design Exercise for the FacetsComposer


STEP 1: Who Are the Target Users?

  • Should we first target the FACETS Team? Or just target external users?
  • Cary talked about having "Early Adopters" and hoping for "More Community Scientists Using FACETS".
  • Which users should be targeted?
  • What is order of importance of users? Program managers first?
  • What do the target users need to get started? Helps decide which features should we concentrate on getting to work before adding more complex features.

STEP 2: What Are the High Level Features That We Want to Provide for These Users?

  • What is the goal of the GUI?
    • Help users better deal with the mundane operational issues that deter from the science endeavors?
  • Are The Gross Feature Areas? What are the requirements of those features?
    • Setup & Validation?
      • Should the GUI be input-file-centric?
      • Is Input File Validation or Documentation More Important?
        • We originally implemented some input file validation with...
          • Component Hierarchy (containment)
          • Component Setup Attributes and Kinds
          • Attribute Types (int, real, string, vectors, choices)
          • Component/Attribute "requiredness"
          • Color-Coded Editing
          • Context-Sensitive Palette Components/Attributes
        • Context-Sensitive Help with links to current documentation may be more helpful/accurate
    • Job Submission?
      • Which hosts are important? Need to make host profiles for these hosts.
      • PBS seems prevalent. Other batch systems?
      • Get ENVIRONMENT variables correct
      • Setup MPI parameters
      • Ensure that all files are present (if copied to remote run location)
    • Monitoring?
      • What feedback would the user find most useful?
        • Run status?
          • Queued, running, which time step, etc.
          • Is the run ok in terms of execution? Crashed?
        • Maybe simple visualization
          • Is the run ok in terms of physics?
      • Short runs can give immediate feedback. Long runs need emails?
    • Visualization/Post-Processing?
      • Exactly was Visualization is "useful", "needed", "desired"?
      • Below is a sample of the visualization from today's talks:

Sample Visualization From Talks

  • Should we find a different approach where we can get farther, faster?
    • VisIt is rich and handles large datasets, but maybe Python (matplotlib) would be better?
    • Python is scriptable (user can change script on fly to modify visualization)
    • Matplotlib can give nice 2D, stacked, visualization. This seems to more common in presentations.
    • Matplotlib does not do 3D without a license.
  • How should the GUI be organized?

  • We initially had...

                Should the Composer be?? = Setup + Run + Output + Visualize + Help


STEP 3: What Are the Desired Distribution Mechanism?

  • Maybe Categorize by User Type?
    • NOVICE-NO-INSTALL
      • Run FacetsComposer over X on machine with FACETS pre-setup on host.
      • Run examples remotely on pre-setup host
      • We started with iter.txcorp.com to get a demo working.
    • NOVICE-INSTALL
      • Download FacetsComposer binary
      • Run examples remotely on pre-setup host
    • DEVELOPER-REMOTE
      • Builds FACETS (facetsall) on remote host
      • Downloads FacetsComposer binary to run locally (or builds remotely and runs over X)
      • Needs to point it to their remote build
    • DEVELOPER-LOCAL

STEP 4: What Are the More-Detailed-Items to Consider?

  • What examples do we want users to run?
  • What is the order of examples that we should concentrate on making sure run?
    • Most reliable first?
    • Easiest/fastest running first?
    • fctests is distinct from fcexmaples
  • How do we handle scripts? Current "install" does not have path.sh, so this is probably needed.
  • What is the procedure/workflow for creating a new simulation?
    • Need to create a PRE file. Is there a template?
    • Need a run script maybe? Is there a template for that? Probably too hard to generate a generic run script.
  • Do we want user to be able to run, disconnect, receive email, then reconnect.

.... many more details.






Attachments