Data dependence


  • Data dependence
    • Flow Dependence(True dependence)
    • Anti Dependence
    • Output Dependence



  • Flow Dependence(True dependence)
    • 어떤코드 S1이 메모리 영역에 쓰고난 다음 어떤코드S2가 해당 위치를 읽음
    • S1과 S2는 동시에 실행하거나 순서를 바꿀수 없음
  • Anti Dependence
    • 어떤코드 S1이 메모리 영역에서 읽고 , 그다음 어떤코드 S2가 해당 영역에 씀
    • S1과 S2는 동시에 실행하거나 순서를 바꿀수 없으나 S2코드를 수정하여 dependence를 제거할 수 있음
  • Output Dependence
    • 어떤코드 S1이 메모리 영역에 쓰고, 그다음 어떤코드 S2가 해당 영역을 읽음
    • Anti Dependence와 마찬가지로 순서를 바꿀수 없으나 코드 수정으로 dependence 제거 가능


    • 루프 캐리드 디펜던스(Loop-carried dependence)
      • 루프 안에서 이전 이터레이션과 다음 이터레이션에 dependence가 존재
      • 이터레이션들을 각각 동시에 실행 불가능
    • 루프 인디펜던트 디펜던스(Loop-independent depecdence)
      • 루프 안에 있으나 루프와 무관하게 루프안 코드들이 depecdence가 존재(Flow, anti, output 이 loop안에 있으면 loop-independent depecdence라고 하는것 같음)




    댓글

    이 블로그의 인기 게시물

    C#에서 포인터 사용

    WPF RichTextBox 와 Document의 바인딩

    WPF Template에 Grid 사용하기( UniformGrid, Grid, WrapPanel)