Skip to content
  1. Mar 10, 2022
  2. Mar 09, 2022
  3. Oct 04, 2021
  4. Sep 19, 2021
  5. Sep 02, 2021
  6. Aug 25, 2021
    • PAUL M CARPENTER's avatar
      Fix pragmas in manual_simple · 55de0ded
      PAUL M CARPENTER authored
      Fix the pragma annotations in manual_simple, which were:
      
        out(arr1[0;SIZE]) for initialization of arr1 - CORRECT
        out(arr1[0;SIZE]) for initialization of arr2 - WRONG
        out(arr2[0;SIZE]) for initialization of sum - WRONG
      
      Naively you might think that even with wrong pragmas it should work, because
      the wrong pragmas still mean that all arrays must have been initialized before
      any of the strong tasks can execute. Also (1) the location of arr2 will be
      correct (node 0, since all initialization tasks execute on node 0) and (2) the
      location of sum will be wrong, but it doesn't matter because memory starts off
      as zeros on all the nodes anyway.
      
      The problem is caused by eager weak fetch. If satisfiability of arr2 (actually
      meaning that sum has been initialized) reaches a weak task before that weak
      task has been scheduled and before arr2 is initialized, then the weak task will
      fetch zeros for arr2. It will then set the location to the current node and
      pass that to its descendants and eventually to the strong tasks. This is what was
      happening, some of the calculated values were 3+0 = 3 rather than 3+4 = 7.
      55de0ded
  7. Aug 23, 2021
  8. Jul 07, 2021
  9. Jun 25, 2021
  10. Jun 24, 2021
  11. Jun 21, 2021
  12. Jun 17, 2021