Skip to content
Alexander Calvert edited this page Jul 6, 2016 · 165 revisions

In Progress

  • Alexander:
    • maintain the FEAL4 demo
    • add data transfer inference to IntroParallel, IntroKernels?
      • ^not yet
    • maybe help with the spreadsheet of refactorable loops, etc.
    • other dependence analysis fixes (see issue)
    • further discussion:
      • Infer handling scalars
      • Infer handling vars that are only on the GPU but span multiple accel regions
  • Jacob:
    • Update PLDT documentation plug-in
    • Spreadsheet with pass/fail/etc.
    • Ant script to build JAR file
  • Raiden:
    • Add test cases to loop refactorings.
  • Jeff:
    • Does loop contain unsupported statements? ForLoopCheck#containsUnsupportedOp vs. Inquisitor#getFirstUnsupportedStmt vs. failed dependence analysis
    • Remove #isPerfectLoopNest?

Problems in EPCC:

  • calls to rand() or fabs() - kernels 1, 2, 3, 14
  • Imperfect loop nests - kernels 4, 5, 7-12, 14-18
  • If statements - 13, 19
  • j = 1 lower bound - kernels 71-73, 75-77

Eclipse Neon Release Milestones:

  • M6 (Mar 21)
  • M7 (May 2)
  • RC1 (May 13)

Finish and Refactor Existing Code

  • Modify StringBuilder to edit local region rather than enclosing function - AC
  • Convert refactorings to use new (StringBuilder-based) editing API - AC
  • Check/fix failing unit tests - AC, JO
  • Final tests on loop refactorings - RW
    • Cutting
    • Fission
    • Fusion
    • Interchange
    • Intro Parallel
    • Strip Mine
    • Tile
    • Unroll
  • Perform system-wide code review/refactoring
    • Merge StringBuilder branch into master
    • Delete unused branches
    • Naming: variables, fields, refactorings (verb phrases), Change
    • Packages: internal vs. API
    • Copyright headers and author attribution - WO
    • Handle duplicate methods across Alteration classes (getBodyObjects, createNewName, etc.)
    • Move field initializations in checks from check methods to constructor
  • Clean up Eclipse UI
    • Clean up duplication in Eclipse UI code - ZK
    • Make sure all Refactoring classes complete/implemented - ZK/AC
  • Move refactoring tests from UI to core (for faster test runs)
  • Finish dependence-based precondition checks
    • Fission - AC
    • Fusion - AC
    • Tiling - AC
  • Standardize and document what kinds of statements are supported in loops. Constant propagation, dependence analysis, and the inquisitor's areAllInnermostStatementsValid method might differ, and it's not clear what refactorings make what assumptions about what statements are (not) in the loop being refactored.
  • Parallelize FEAL4 - WO
  • Command-line infrastructure for testing on benchmarks - JN

New OpenACC Refactorings

  • Make existing refactorings OpenACC-aware (handle existing pragmas on loops in preconditions/transformations) - WO, JN
  • Introduce Kernels Loop - WO
  • Introduce Default None - AC
  • Introduce Data Construct - AC
  • Enlarge Data Construct
  • Infer Atomics - WH
  • Add OpenACC Routine - RW

New Analyses

  • Alias Analysis - WO

Documentation, Status & Technical Reports

  • Status reports - JO
  • Interim technical reports (bimonthly) - JO
  • User guide
  • Final technical report

Open Source Contribution to PTP/PLDT

  • Check/update copyright headers - WO
  • Contribute to existing Refactor menu rather than a new menu - WH
  • Rename packages - JO
  • Move code into PLDT plug-ins (including unit tests; omit Livermore Loops tests) - JO
  • Update PLDT documentation - JN
  • Ant script to build CLI JAR file - JN
  • Post contribution in Gerrit
  • File CQ
  • Final merge

Chapel Integration/Testing

  • Generate C code - determine if we can refactor it - WH

Code Cleanup

  • Remove SourceAlteration#doChange() and let subclasses override change() instead
  • Remove Example class from CLI
  • UnrollLoops may need cleanup - replace StringBuilders with more replace/remove/insert calls?
  • Make sure latest refactorings/changes work in WebCode

Autotuner Integration

  • Integrate refactoring CLI into OptACC - WH

Future Ideas

  • CLI: allow refactor comments on multiple loops
  • Eliminate branching from parallel loop

Clone this wiki locally