Browse Source

HW3: RC4 - GTX 1650 measurements and first part of the report

tags/v3.0
parent
commit
1fa62a85ce
37 changed files with 3096 additions and 0 deletions
  1. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_20.out
  2. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_21.out
  3. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_22.out
  4. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_23.out
  5. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_24.out
  6. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_25.out
  7. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_26.out
  8. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_27.out
  9. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_28.out
  10. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_29.out
  11. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_20.out
  12. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_21.out
  13. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_22.out
  14. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_23.out
  15. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_24.out
  16. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_25.out
  17. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_26.out
  18. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_27.out
  19. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_28.out
  20. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_29.out
  21. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_20.out
  22. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_21.out
  23. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_22.out
  24. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_23.out
  25. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_24.out
  26. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_25.out
  27. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_26.out
  28. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_27.out
  29. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_28.out
  30. +23
    -0
      homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_29.out
  31. +6
    -0
      homework_3/report/.gitignore
  32. BIN
      homework_3/report/homework_3_report.pdf
  33. +190
    -0
      homework_3/report/homework_3_report.tex
  34. BIN
      homework_3/report/img/BitonicSort.png
  35. +1502
    -0
      homework_3/report/img/BitonicSort.svg
  36. +708
    -0
      homework_3/report/img/V0Addresing.svg
  37. BIN
      homework_3/report/img/V0Addressing.png

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_20.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V0
[Log]: Array size: 1048576 (Q=20)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 16 [msec]
[Timing] Mem-xch : 1627 [usec]
[Timing] Sorting : 15 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_21.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V0
[Log]: Array size: 2097152 (Q=21)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 33 [msec]
[Timing] Mem-xch : 2906 [usec]
[Timing] Sorting : 30 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_22.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V0
[Log]: Array size: 4194304 (Q=22)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 71 [msec]
[Timing] Mem-xch : 5624 [usec]
[Timing] Sorting : 66 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_23.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V0
[Log]: Array size: 8388608 (Q=23)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 153 [msec]
[Timing] Mem-xch : 10 [msec]
[Timing] Sorting : 142 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_24.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V0
[Log]: Array size: 16777216 (Q=24)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 327 [msec]
[Timing] Mem-xch : 21 [msec]
[Timing] Sorting : 305 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_25.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V0
[Log]: Array size: 33554432 (Q=25)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 696 [msec]
[Timing] Mem-xch : 42 [msec]
[Timing] Sorting : 654 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_26.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V0
[Log]: Array size: 67108864 (Q=26)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 1493 [msec]
[Timing] Mem-xch : 84 [msec]
[Timing] Sorting : 1408 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_27.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V0
[Log]: Array size: 134217728 (Q=27)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 3177 [msec]
[Timing] Mem-xch : 168 [msec]
[Timing] Sorting : 3009 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_28.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V0
[Log]: Array size: 268435456 (Q=28)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 6782 [msec]
[Timing] Mem-xch : 336 [msec]
[Timing] Sorting : 6445 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v0_29.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V0
[Log]: Array size: 536870912 (Q=29)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 14.42 [sec]
[Timing] Mem-xch : 673 [msec]
[Timing] Sorting : 13.75 [sec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_20.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V1
[Log]: Array size: 1048576 (Q=20)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 8271 [usec]
[Timing] Mem-xch : 1613 [usec]
[Timing] Sorting : 6666 [usec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_21.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V1
[Log]: Array size: 2097152 (Q=21)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 17 [msec]
[Timing] Mem-xch : 2987 [usec]
[Timing] Sorting : 14 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_22.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V1
[Log]: Array size: 4194304 (Q=22)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 37 [msec]
[Timing] Mem-xch : 5752 [usec]
[Timing] Sorting : 31 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_23.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V1
[Log]: Array size: 8388608 (Q=23)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 78 [msec]
[Timing] Mem-xch : 10 [msec]
[Timing] Sorting : 67 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_24.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V1
[Log]: Array size: 16777216 (Q=24)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 161 [msec]
[Timing] Mem-xch : 21 [msec]
[Timing] Sorting : 139 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_25.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V1
[Log]: Array size: 33554432 (Q=25)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 353 [msec]
[Timing] Mem-xch : 42 [msec]
[Timing] Sorting : 311 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_26.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V1
[Log]: Array size: 67108864 (Q=26)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 774 [msec]
[Timing] Mem-xch : 84 [msec]
[Timing] Sorting : 689 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_27.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V1
[Log]: Array size: 134217728 (Q=27)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 1709 [msec]
[Timing] Mem-xch : 168 [msec]
[Timing] Sorting : 1539 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_28.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V1
[Log]: Array size: 268435456 (Q=28)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 3701 [msec]
[Timing] Mem-xch : 338 [msec]
[Timing] Sorting : 3358 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v1_29.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V1
[Log]: Array size: 536870912 (Q=29)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 8106 [msec]
[Timing] Mem-xch : 676 [msec]
[Timing] Sorting : 7428 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_20.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V2
[Log]: Array size: 1048576 (Q=20)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 8985 [usec]
[Timing] Mem-xch : 1665 [usec]
[Timing] Sorting : 7294 [usec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_21.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V2
[Log]: Array size: 2097152 (Q=21)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 18 [msec]
[Timing] Mem-xch : 2849 [usec]
[Timing] Sorting : 15 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_22.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V2
[Log]: Array size: 4194304 (Q=22)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 38 [msec]
[Timing] Mem-xch : 5518 [usec]
[Timing] Sorting : 33 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_23.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V2
[Log]: Array size: 8388608 (Q=23)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 81 [msec]
[Timing] Mem-xch : 10 [msec]
[Timing] Sorting : 70 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_24.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V2
[Log]: Array size: 16777216 (Q=24)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 169 [msec]
[Timing] Mem-xch : 21 [msec]
[Timing] Sorting : 148 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_25.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V2
[Log]: Array size: 33554432 (Q=25)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 370 [msec]
[Timing] Mem-xch : 42 [msec]
[Timing] Sorting : 328 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_26.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V2
[Log]: Array size: 67108864 (Q=26)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 810 [msec]
[Timing] Mem-xch : 84 [msec]
[Timing] Sorting : 726 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_27.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V2
[Log]: Array size: 134217728 (Q=27)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 1779 [msec]
[Timing] Mem-xch : 168 [msec]
[Timing] Sorting : 1609 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_28.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V2
[Log]: Array size: 268435456 (Q=28)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 3864 [msec]
[Timing] Mem-xch : 337 [msec]
[Timing] Sorting : 3527 [msec]
[Validation] Results validation ... [PASSED] 

+ 23
- 0
homework_3/analyse/RC4-8f44cbf/gtx1650/gtx1650-v2_29.out View File

@@ -0,0 +1,23 @@
[Log]: Code version: V2
[Log]: Array size: 536870912 (Q=29)
[Log]: Repeated sorts: 7
[Log]: GPU: NVIDIA GeForce GTX 1650
[Log]: Block size: 512
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Log]: Initialize array ... Done.
[Log]: Start sorting ... Done.
[Timing] Total : 8424 [msec]
[Timing] Mem-xch : 672 [msec]
[Timing] Sorting : 7749 [msec]
[Validation] Results validation ... [PASSED] 

+ 6
- 0
homework_3/report/.gitignore View File

@@ -0,0 +1,6 @@
# TeX auxiliary files
*.aux
*.log
*.out
*.synctex.gz


BIN
homework_3/report/homework_3_report.pdf View File


+ 190
- 0
homework_3/report/homework_3_report.tex View File

@@ -0,0 +1,190 @@
% !TEX TS-program = xelatex
% !TEX encoding = UTF-8 Unicode
% !TEX spellcheck = el-GR
%
% PDS homework_3 report
%
% Requires compilation with pdfLaTeX or XeLaTeX
%
% authors:
% Χρήστος Χουτουρίδης ΑΕΜ 8997
% cchoutou@ece.auth.gr

%
% Options:
%
% 1) mainlang=<language>
% Default: english
% Set the default language of the document which affects hyphenations,
% localization (section, dates, etc...)
%
% example: \documentclass[mainlang=greek]{AUThReport}
%
% 2) <language>
% Add hyphenation and typesetting support for other languages
% Currently supports: english, greek, german, frenc
%
% example: \documentclass[english, greek]{AUThReport}
%
% 3) short: Requests a shorter title for the document
% Default: no short
%
% example: \documentclass[short]{AUThReport}
%
\documentclass[a4paper, 11pt, mainlang=greek, english]{AUThReport}

\CurrentDate{\today}

% Document setup
%---------------------------------

% \WorkGroup{Ομάδα Χ}

\AuthorName{Χρήστος Χουτουρίδης}
\AuthorMail{cchoutou@ece.auth.gr}
\AuthorAEM{8997}

%\CoAuthorName{Όνομα Επίθετο}
%\CoAuthorAEM{AEM}
%\CoAuthorMail{xxx@ece.auth.gr}

\DocTitle{Εργασία 3: Bitonic sort with CUDA}
\DocSubTitle{Ανάλυση και υλοποίηση του αλγόριθμου bitonic sort για υποσύστημα γραφικών με χρήση CUDA}

\Department{Τμήμα ΗΜΜΥ. Τομέας Ηλεκτρονικής}
\ClassName{Παράλληλα και Διανεμημένα Συστήματα}
%
\InstructorName{Νικόλαος Πιτσιάνης}
\InstructorMail{nikos.pitsianis@eng.auth.gr}

%\CoInstructorName{Όνομα Επίθετο}
%\CoInstructorMail{xxx@ece.auth.gr}


% Local package requirements
%---------------------------------

\usepackage{enumitem}
\usepackage{tabularx}
\usepackage{array}
\usepackage{multirow}
\usepackage{float}
\usepackage{xcolor}
\usepackage{soul}
\usepackage{amsmath}
\usepackage{footnote}
\usepackage{footmisc}


%\definecolor{red-highlight}{rgb}{1.0, 0.11, 0.0}
\definecolor{red-highlight}{rgb}{1.0, 0.31, 0.0}
\definecolor{green-highlight}{rgb}{0.0, 0.62, 0.42}

\newcommand{\bxrd}[1]{\colorbox{red-highlight}{#1}}
\newcommand{\bxgr}[1]{\colorbox{green-highlight}{#1}}

\newcommand{\trd}[1]{\textcolor{red-highlight}{\textbf{#1}}}
\newcommand{\tgr}[1]{\textcolor{green-highlight}{\textbf{#1}}}

% “virtual” cites
% ----------------------------------------
\newcommand{\citeKnuthACM}{%
Donald E. Knuth, \emph{Structured Programming with go to Statements}, ACM Computing Surveys, vol. 6, no. 4, 1974
}

% Links
\newcommand{\hwTwo}{https://git.hoo2.net/hoo2/PDS/src/branch/master/homework_2}
\newcommand{\hwThree}{https://git.hoo2.net/hoo2/PDS/src/branch/master/homework_3}

\newcommand{\bitonicSortWikipedia}{https://en.wikipedia.org/wiki/Bitonic_sorter}

\begin{document}

\InsertTitle

%\tableofcontents


\section{Εισαγωγή}

Η παρούσα εργασία αποτελεί συνέχεια της \href{\hwTwo}{προηγούμενης υλοποίησης} του ίδιου αλγόριθμου σε κατανεμημένα συστήματα με τη χρήση MPI.
Στην τρέχουσα έκδοση ο αλγόριθμος καλείται να εκτελεστεί σε υποσυστήματα γραφικών (GPU) με χρήση CUDA.
Τα υποσυστήματα γραφικών μας δίνουν την δυνατότητα για πολύ μεγάλο αριθμό παραλληλοποίησης, κάτι που αποτελεί σημαντική διαφοροποίηση σε σχέση με την MPI έκδοση.
Πρακτικά ο τρόπος με τον οποίο χρησιμοποιείται το υποσύστημα γραφικών σε αυτή την εργασία είναι σαν accelerator συγκεκριμένων συναρτήσεων.
Η υλοποίηση του αλγόριθμου έγινε σε τρεις φάσεις ακολουθώντας τις υποδείξεις της εκφώνησης.
Στην πρώτη φάση, το υποσύστημα γραφικών απλώς επιταχύνει το κύριο σώμα του αλγόριθμου, ενώ στις επόμενες έγινε προσπάθεια τροποποίησης αυτού ώστε να εκμεταλλευτούμε τα χαρακτηριστικά και τους πόρους του υποσυστήματος γραφικών, με αποδοτικότερο τρόπο.


\subsection{Παραδοτέα}
Τα παραδοτέα της εργασίας αποτελούνται από:
\begin{itemize}
\item Την παρούσα αναφορά.
\item Το \href{\hwThree}{σύνδεσμο με το αποθετήριο} που περιέχει τον κώδικα για την παραγωγή των εκτελέσιμων, της αναφοράς και τις μετρήσεις.
\end{itemize}

\section {Υλοποίηση}
Πριν ξεκινήσουμε με τις λεπτομέρειες του αλγόριθμου, καλό θα ήταν να περιγράψουμε τις βασικές συναρτήσεις και δομές που χρησιμοποιούνται στην εργασία, ώστε να βοηθήσουμε στην καλύτερη κατανόηση της υλοποίησης.
\begin{itemize}
\item \texttt{\textbf{Log}}:
Πρόκειται για ένα τύπο ο οποίος μας δίνει logging δυνατότητες τις οποίες μπορεί ο χρήστης να ενεργοποιήσει από τη γραμμή εντολών με την παράμετρο \texttt{-v} ή \texttt{--verbose}.
\item \texttt{\textbf{Timing}}:
Η τάξη αυτή προσφέρει δυνατότητες χρονομέτρησης μίας ή και πολλαπλών κλήσεων αθροίζοντας τους χρόνους (accumulation).
Επίσης προσφέρει δυνατότητες για πολλαπλές εκτελέσεις ολόκληρης της ταξινόμησης όπου οι χρόνοι μπορούν να ταξινομηθούν και να επιστραφεί ο ενδιάμεσος.
Ο χρήστης μπορεί να επιλέξει την εμφάνιση των αποτελεσμάτων αλλά και τον αριθμό των εκτελέσεων από τη γραμμή εντολών με την παράμετρο \texttt{--perf}.
\item \texttt{\textbf{bitonicSort()}}:
Πρόκειται για την βασική συνάρτηση που υλοποιεί τον αλγόριθμο της εργασίας και είναι σε μορφή template για διαφορετικούς τύπους δεδομένων προς ταξινόμηση.
Έχει υλοποιηθεί 3 φορές, μία για κάθε έκδοση της εκφώνησης V0, V1, V2 στο αρχείο \texttt{bitonicsort.hpp}.
\item \texttt{\textbf{inBlockStep()/interBlockStep()}}:
Ειδικά για τις εκδόσεις V1 και V2 όπου χρησιμοποιείται loop unrolling, το κύριο σώμα του αλγόριθμου bitonic sort έχει χωριστεί σε δύο συναρτήσεις.
Μία που εκτελείτε εκτός του unrolling (\textit{interBlockStep()}) και μία που εκτελεί το ίδιο το unrolling (\textit{inBlockStep()}).
\end{itemize}
\par
Όλοι οι παραπάνω τύποι είναι templates, και βρίσκονται στα αντίστοιχα headers (.hpp) αντί για αρχεία .cpp.
Η συνάρτηση \textit{main()} που υλοποιεί τον αλγόριθμο μαζί με τον validator και το command line interface βρίσκονται στο αρχείο main.cpp.
Στο αρχείο config.h υπάρχουν οι compile time ρυθμίσεις της υλοποίησης όπου ο χρήστης μπορεί να επιλέξει για παράδειγμα τον τύπο δεδομένων προς ταξινόμηση.

\subsection{Πρώτη έκδοση (V0)}
Η πρώτη έκδοση υλοποιεί τον βασικό αλγόριθμο επιταχύνοντας απλώς το κύριο σώμα του στην κάρτα γραφικών.
Καθώς θεωρούμε πως ο αναγνώστης είναι ήδη εξοικειωμένος με την διτονική ταξινόμηση, δεν θα αναλύσουμε την λειτουργία της σε μεγάλο βάθος.
Για πίνακα μεγέθους $2^N$ ο αλγόριθμος συνοψίζεται στα εξής:
\begin{itemize}
\item Εκτελούνται $N$ ακολουθίες ανταλλαγών με αύξον αριθμό: $m = 1, 2,\dots,N$.
\item Η κάθε ακολουθία $m$ αποτελείται από ανταλλαγές μεταξύ γειτόνων, των οποίων η απόσταση ξεκινάει από $2^{m-1}$ και μειώνεται με διαδοχικές ακέραιες διαιρέσεις με το 2, εωσότου γίνει ένα: $2^{m-1}, 2^{m-2}, ..., 1$.
\item Οι ανταλλαγές χωρίζουν τα μεγαλύτερα και τα μικρότερα στοιχεία με στόχο στο τέλος της κάθε ακολουθίας τα στοιχεία του πίνακα να αποτελούν διαδοχικές διτονικές ακολουθίες.
Μέτά την πρώτη ακολουθία ανταλλαγών να έχουμε $\frac{N}{2}$ διτονικές ακολουθίες, μετά την δεύτερη $\frac{N}{4}$ ακολουθίες και ούτω κάθε εξής, έως ότου στην τελευταία να έχουμε $\frac{N}{2N} = \frac{1}{2}$ διτονική, δηλαδή μια πλήρως ταξινομημένη λίστα.
\end{itemize}
\par
%\InsertFigure{!h}{0.8}{fig:lala}{lala.png}{\eng{Makes lala}}
\InsertFigure{!ht}{0.8}{fig:bitonicSort}{img/BitonicSort.png}{4 ακολουθίες ανταλλαγών για ταξινόμηση 16 στοιχείων.}
Η εικόνα \ref{fig:bitonicSort} παρουσιάζει αυτή τη λογική\footnote{Πηγή \href{\bitonicSortWikipedia}{wikipedia}}.

\subsubsection{Πλήθος απαιτούμενων διεργασιών (threads) και καταμερισμός στον πίνακα}
Στην παρούσα εργασία, επιθυμούμε οι ανταλλαγές να λάβουν χώρα εντός του υποσυστήματος γραφικών και να εκτελεστούν από τις διεργασίες (threads) του υποσυστήματος γραφικών.
Σε αντίθεση όμως με την προηγούμενη εργασία, όπου για $M$ υποσύνολα του πίνακα είχαμε $M$ MPI διεργασίες και όλες απαιτούνταν να εκτελέσουν διαχωρισμό μεγίστων -- ελαχίστων, \textbf{εδώ η κάθε διεργασία μπορεί να διαχωρίσει 2 στοιχεία}.
\textbf{Δηλαδή για ταξινόμηση ενός πίνακα $N$ στοιχείων απαιτούνται $\frac{N}{2}$ διεργασίες}.
\par
Βλέπουμε δηλαδή πως δεν είναι απαραίτητο να αναθέσουμε μία διεργασία σε κάθε στοιχείο του πίνακα.
Με αυτό σαν βάση προβήκαμε στον πρώτο καταμερισμό των διεργασιών στα στοιχεία του πίνακα.
Έτσι χωρίσαμε τον πίνακα σε δύο μέρη.
Στο πρώτο μέρος η διευθυνσιοδότηση έγινε ακολουθώντας την αρίθμηση των threads, ενώ για το δεύτερο το διπλάσιο αυτής.
\par
Όπως γίνεται φανερό \textit{έπρεπε να βρεθεί ένας τρόπος ώστε οι μισές διεργασίες να διευθυνσιοδοτήσουν το πρώτο μέρος και οι άλλες μισές το δεύτερο}.
Ο διαχωρισμός έγινε ελέγχοντας τον γείτονα (partner) για την κάθε ανταλλαγή.
\InsertFigure{!ht}{0.85}{fig:threadDivision}{img/V0Addressing.png}{Διευθυνσιοδότηση των threads (V0).}
Η λογική πίσω από αυτό τον έλεγχο είναι ότι αν ένα thread με διεύθυνση $Tid_1$ έχει να ανταλλάξει μέ έναν γείτονα με διεύθυνση $Pid=Tid_2$, τότε το thread που αρχικά πέφτει στη διεύθυνση $Tid_2$ έχει να ανταλλάξει με το $Tid_1$.
Η ανταλλαγή όμως αυτή έχει δρομολογηθεί στο $Tid_1$ και έτσι το συγκεκριμένο thread μπορεί να μεταφερθεί στο δεύτερο μισό του πίνακα στην αντίστοιχη θέση $Tid_2'$ και να ανταλλάξει με τον γείτονα που προκύπτει σε εκείνη τη θέση $Pid'$.
Ο γείτονας σε εκείνη τη θέση φυσικά είναι ο αντίστοιχος του $Tid_1$.
Το διάγραμμα \ref{fig:threadDivision} παρουσιάζει αυτόν τον καταμερισμό.
\par
Έχοντας κατανέμει λοιπόν τα threads στον πίνακα η υλοποίηση εκτελεί το διπλό βρόχο που περιγράψαμε παραπάνω και αναθέτει το σώμα το οποίο εκτελεί τις ανταλλαγές στη κάρτα γραφικών.
Το κάθε thread εκτελεί μια ανταλλαγή με την άνω διευθυνσιοδότηση και ο αλγόριθμος τερματίζει στο τέλος του διπλού βρόχου.
Το πλεονέκτημα αυτής της μεθόδου είναι η απλότητά της.
Κάτι που προφανώς πληρώνουμε με έναν αρκετά μεγάλο αριθμό κλήσεων προς την κάρτα γραφικών που προσθέτει overhead.

\subsection{Δεύτερη έκδοση (V1)}
Από την εκφώνηση της εργασίας ήδη υπάρχουν οδηγίες για τις πρώτες βελτιστοποιήσεις.
Η πρώτη βελτιστοποίηση λοιπόν αφορά ακριβώς αυτές τις κλήσεις των συναρτήσεων που επιταχύνονται από την κάρτα γραφικών.
Γίνεται δηλαδή η \textbf{θεώρηση} από την εκφώνηση, ότι\textbf{ η ελαχιστοποίηση αυτών των κλήσεων θα βελτιστοποιήσει τη διαδικασία}.
Φυσικά αυτό πρέπει πάντα να αποδειχτεί στην πράξη.

\end{document}

BIN
homework_3/report/img/BitonicSort.png View File

Before After
Width: 843  |  Height: 258  |  Size: 48 KiB

+ 1502
- 0
homework_3/report/img/BitonicSort.svg
File diff suppressed because it is too large
View File


+ 708
- 0
homework_3/report/img/V0Addresing.svg View File

@@ -0,0 +1,708 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
width="297mm"
height="210mm"
viewBox="0 0 297 210"
version="1.1"
id="svg1"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
sodipodi:docname="V0Addresing.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showguides="true"
inkscape:zoom="0.70710678"
inkscape:cx="439.82042"
inkscape:cy="613.76869"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<rect
x="120.30141"
y="341.30875"
width="234.15368"
height="40.183152"
id="rect5" />
<rect
x="171.64655"
y="128.23883"
width="151.55498"
height="31.749651"
id="rect4" />
<marker
style="overflow:visible"
id="Triangle"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path135" />
</marker>
<rect
x="75.770079"
y="296.06457"
width="207.66614"
height="78.576378"
id="rect2" />
<rect
x="75.770081"
y="296.06458"
width="207.66614"
height="78.576378"
id="rect2-2" />
<rect
x="75.770081"
y="296.06458"
width="207.66614"
height="78.576378"
id="rect2-2-3" />
<rect
x="75.770081"
y="296.06458"
width="207.66614"
height="78.576378"
id="rect2-2-1" />
<rect
x="171.64655"
y="128.23883"
width="151.55498"
height="31.749651"
id="rect4-3" />
<rect
x="171.64655"
y="128.23883"
width="151.55498"
height="31.749651"
id="rect4-3-8" />
<rect
x="171.64655"
y="128.23883"
width="151.55498"
height="31.749651"
id="rect4-3-8-9" />
<marker
style="overflow:visible"
id="marker4-6"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path4-1" />
</marker>
<rect
x="171.64655"
y="128.23883"
width="423.76601"
height="42.273273"
id="rect4-1" />
<rect
x="171.64655"
y="128.23883"
width="423.76602"
height="42.273273"
id="rect4-1-5" />
<marker
style="overflow:visible"
id="Dot-0"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Dot"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:none"
d="M 5,0 C 5,2.76 2.76,5 0,5 -2.76,5 -5,2.76 -5,0 c 0,-2.76 2.3,-5 5,-5 2.76,0 5,2.24 5,5 z"
sodipodi:nodetypes="sssss"
id="path17-9" />
</marker>
<marker
style="overflow:visible"
id="marker4-4"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path4-8" />
</marker>
<marker
style="overflow:visible"
id="Triangle-1"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path135-0" />
</marker>
<rect
x="171.64655"
y="128.23883"
width="151.55498"
height="31.749651"
id="rect4-30" />
<rect
x="171.64655"
y="128.23883"
width="423.76602"
height="42.273273"
id="rect4-1-5-7" />
<rect
x="171.64655"
y="128.23883"
width="423.76602"
height="42.273273"
id="rect4-1-5-4" />
<rect
x="171.64655"
y="128.23883"
width="423.76602"
height="42.273273"
id="rect4-1-5-7-3" />
<marker
style="overflow:visible"
id="marker4-6-9"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path4-1-2" />
</marker>
<rect
x="171.64655"
y="128.23883"
width="423.76602"
height="42.273273"
id="rect4-1-5-7-3-4" />
<marker
style="overflow:visible"
id="marker4-6-9-6"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path4-1-2-4" />
</marker>
<rect
x="171.64655"
y="128.23883"
width="423.76602"
height="42.273273"
id="rect4-1-5-7-3-4-6" />
<marker
style="overflow:visible"
id="marker4-6-9-6-2"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path4-1-2-4-8" />
</marker>
<rect
x="171.64655"
y="128.23883"
width="423.76602"
height="42.273273"
id="rect4-1-3" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#93aca7;fill-opacity:1;stroke:#000000;stroke-width:0.687452;stroke-dasharray:none;stroke-opacity:1"
id="rect1"
width="119.56255"
height="8.4508696"
x="20.343727"
y="60.406105"
inkscape:export-filename="V0Addressing.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-24.631251,38.437251)"
id="text4-4"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;line-height:0;font-family:Arial;-inkscape-font-specification:'Arial Italic';text-align:start;letter-spacing:2px;word-spacing:-1.02px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect4-3);display:inline;fill:none;stroke:#000000;stroke-width:0.865512;stroke-dasharray:none;stroke-opacity:1"><tspan
x="171.64648"
y="131.94739"
id="tspan14"><tspan
style="fill:#000000"
id="tspan13">0</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,96.45285,38.454477)"
id="text4-4-2"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;line-height:0;font-family:Arial;-inkscape-font-specification:'Arial Italic';text-align:start;letter-spacing:2px;word-spacing:-1.02px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect4-3-8);display:inline;fill:none;stroke:#000000;stroke-width:0.865512;stroke-dasharray:none;stroke-opacity:1"><tspan
x="171.64648"
y="131.94739"
id="tspan16"><tspan
style="fill:#000000"
id="tspan15">N/2</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,215.16783,38.453616)"
id="text4-4-2-0"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;line-height:0;font-family:Arial;-inkscape-font-specification:'Arial Italic';text-align:start;letter-spacing:2px;word-spacing:-1.02px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect4-3-8-9);display:inline;fill:none;stroke:#000000;stroke-width:0.865512;stroke-dasharray:none;stroke-opacity:1"><tspan
x="171.64648"
y="131.94739"
id="tspan18"><tspan
style="fill:#000000"
id="tspan17">N</tspan></tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.629912;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4-6);marker-end:url(#Dot-0)"
d="m 49.749862,65.166268 -7.310658,-0.09543 -6.876337,-0.08975"
id="path3-9"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-24.500611,70.953359)"
id="text4-7"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;line-height:0;font-family:Arial;-inkscape-font-specification:'Arial Italic';text-align:start;letter-spacing:2px;word-spacing:-1.02px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect4-1);display:inline;fill:none;stroke:#000000;stroke-width:0.865512;stroke-dasharray:none;stroke-opacity:1"><tspan
x="171.64648"
y="131.94739"
id="tspan22"><tspan
dx="0 0 0 1.0199995 -1.02 1.0200014 -1.02 0 0 0 0 0 0 0 0 0 0 1.0199914 -1.02 1.0199995 -1.02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0200067"
style="fill:#000000"
id="tspan19">Tid = threadIdx.x + blockIdx.x*blockDim.x
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan24"><tspan
style="fill:#000000"
id="tspan23">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan26"><tspan
style="fill:#000000"
id="tspan25">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan28"><tspan
style="fill:#000000"
id="tspan27">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan30"><tspan
style="fill:#000000"
id="tspan29">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan32"><tspan
style="fill:#000000"
id="tspan31">
</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-3.8283014,4.3617187)"
id="text5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:0;font-family:Candara;-inkscape-font-specification:'Candara, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:2px;word-spacing:-1.02px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect5);display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.865512;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,4.062225,24.041723)"
id="text4-7-3"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;line-height:0;font-family:Arial;-inkscape-font-specification:'Arial Italic';text-align:start;letter-spacing:2px;word-spacing:-1.02px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect4-1-5);display:inline;fill:none;stroke:#000000;stroke-width:0.865512;stroke-dasharray:none;stroke-opacity:1"><tspan
x="171.64648"
y="131.94739"
id="tspan34"><tspan
dx="0 0 0 1.0200005"
style="fill:#000000"
id="tspan33">Pid
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan36"><tspan
style="fill:#000000"
id="tspan35">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan38"><tspan
style="fill:#000000"
id="tspan37">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan40"><tspan
style="fill:#000000"
id="tspan39">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan42"><tspan
style="fill:#000000"
id="tspan41">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan44"><tspan
style="fill:#000000"
id="tspan43">
</tspan></tspan></text>
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.687452;stroke-dasharray:none;stroke-opacity:1"
id="rect1-8"
width="119.31255"
height="8.4508696"
x="140.09372"
y="60.406105" />
<path
style="fill:none;stroke:#000000;stroke-width:0.62991;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Triangle);marker-end:url(#Dot-0)"
d="m 157.38045,65.020432 7.60416,-10e-7 7.15241,-10e-7"
id="path3-6-1"
sodipodi:nodetypes="ccc" />
<g
id="g6"
transform="translate(-2.1113025,12.383057)">
<path
style="fill:none;stroke:#000000;stroke-width:0.629911;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4-4);marker-end:url(#Triangle-1)"
d="m 55.947278,39.489953 59.951872,-10e-7 56.39022,-1e-6"
id="path3-4"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,55.513176,2.606821)"
id="text4-44"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;line-height:0;font-family:Arial;-inkscape-font-specification:'Arial Italic';text-align:start;letter-spacing:2px;word-spacing:-1.02px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect4-30);display:inline;fill:none;stroke:#000000;stroke-width:0.865512;stroke-dasharray:none;stroke-opacity:1"><tspan
x="171.64648"
y="131.94739"
id="tspan46"><tspan
dx="0 0 0 1.02 -1.0200005"
style="font-style:normal;font-size:16px;font-family:Candara;-inkscape-font-specification:'Candara, Normal';fill:#000000"
id="tspan45">N/2 Threads</tspan></tspan></text>
</g>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,108.51079,24.041723)"
id="text4-7-3-8"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;line-height:0;font-family:Arial;-inkscape-font-specification:'Arial Italic';text-align:start;letter-spacing:2px;word-spacing:-1.02px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect4-1-5-4);display:inline;fill:none;stroke:#000000;stroke-width:0.865512;stroke-dasharray:none;stroke-opacity:1"><tspan
x="171.64648"
y="131.94739"
id="tspan48"><tspan
dx="0 0 0 0 1.02"
style="fill:#000000"
id="tspan47">Pid'
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan50"><tspan
style="fill:#000000"
id="tspan49">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan52"><tspan
style="fill:#000000"
id="tspan51">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan54"><tspan
style="fill:#000000"
id="tspan53">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan56"><tspan
style="fill:#000000"
id="tspan55">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan58"><tspan
style="fill:#000000"
id="tspan57">
</tspan></tspan></text>
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-14.15732,56.454164)"
id="text4-7-3-9-6"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;line-height:0;font-family:Arial;-inkscape-font-specification:'Arial Italic';text-align:start;letter-spacing:2px;word-spacing:-1.02px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect4-1-5-7-3);display:inline;fill:none;stroke:#000000;stroke-width:0.865512;stroke-dasharray:none;stroke-opacity:1"><tspan
x="171.64648"
y="131.94739"
id="tspan62"><tspan
style="fill:#000000"
id="tspan59">Tid</tspan><tspan
style="font-size:65%;baseline-shift:sub"
id="tspan60">1</tspan><tspan
dx="1.0200005"
style="fill:#000000"
id="tspan61">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan64"><tspan
style="fill:#000000"
id="tspan63">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan66"><tspan
style="fill:#000000"
id="tspan65">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan68"><tspan
style="fill:#000000"
id="tspan67">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan70"><tspan
style="fill:#000000"
id="tspan69">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan72"><tspan
style="fill:#000000"
id="tspan71">
</tspan></tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.629912;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4-6-9)"
d="m 35.257872,73.316497 -0.01607,7.311263 -0.0151,6.876903"
id="path3-9-4"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,3.1985383,56.454164)"
id="text4-7-3-9-6-1"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;line-height:0;font-family:Arial;-inkscape-font-specification:'Arial Italic';text-align:start;letter-spacing:2px;word-spacing:-1.02px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect4-1-5-7-3-4);display:inline;fill:none;stroke:#000000;stroke-width:0.865512;stroke-dasharray:none;stroke-opacity:1"><tspan
x="171.64648"
y="131.94739"
id="tspan76"><tspan
style="fill:#000000"
id="tspan73">Tid</tspan><tspan
style="font-size:65%;baseline-shift:sub"
id="tspan74">2</tspan><tspan
dx="1.0200005"
style="fill:#000000"
id="tspan75">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan78"><tspan
style="fill:#000000"
id="tspan77">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan80"><tspan
style="fill:#000000"
id="tspan79">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan82"><tspan
style="fill:#000000"
id="tspan81">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan84"><tspan
style="fill:#000000"
id="tspan83">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan86"><tspan
style="fill:#000000"
id="tspan85">
</tspan></tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.629912;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4-6-9-6)"
d="m 52.613731,73.316496 -0.01607,7.311263 -0.0151,6.876903"
id="path3-9-4-2"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,122.73004,56.454164)"
id="text4-7-3-9-6-1-7"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;line-height:0;font-family:Arial;-inkscape-font-specification:'Arial Italic';text-align:start;letter-spacing:2px;word-spacing:-1.02px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect4-1-5-7-3-4-6);display:inline;fill:none;stroke:#000000;stroke-width:0.865512;stroke-dasharray:none;stroke-opacity:1"><tspan
x="171.64648"
y="131.94739"
id="tspan90"><tspan
style="fill:#000000"
id="tspan87">Tid'</tspan><tspan
style="font-size:65%;baseline-shift:sub"
id="tspan88">2</tspan><tspan
dx="1.0200005"
style="fill:#000000"
id="tspan89">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan92"><tspan
style="fill:#000000"
id="tspan91">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan94"><tspan
style="fill:#000000"
id="tspan93">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan96"><tspan
style="fill:#000000"
id="tspan95">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan98"><tspan
style="fill:#000000"
id="tspan97">
</tspan></tspan><tspan
x="171.64648"
y="133.24558"
id="tspan100"><tspan
style="fill:#000000"
id="tspan99">
</tspan></tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.629912;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker4-6-9-6-2)"
d="m 172.14523,73.316496 -0.0161,7.311263 -0.0151,6.876903"
id="path3-9-4-2-9"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
transform="matrix(0.26458333,0,0,0.26458333,-24.500611,76.822979)"
id="text4-7-8"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;line-height:0;font-family:Arial;-inkscape-font-specification:'Arial Italic';text-align:start;letter-spacing:2px;word-spacing:-1.02px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect4-1-3);display:inline;fill:none;stroke:#000000;stroke-width:0.865512;stroke-dasharray:none;stroke-opacity:1"><tspan
x="171.64648"
y="131.94739"
id="tspan102"><tspan
dx="0 0 0 0 1.02 -1.0199981 1.0199995 -1.02 0 0 1.0199986 -1.02 1.0199995 -1.02 0 0 1.0200062"
style="fill:#000000"
id="tspan101">Tid' = Tid + N/2
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan104"><tspan
style="fill:#000000"
id="tspan103">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan106"><tspan
style="fill:#000000"
id="tspan105">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan108"><tspan
style="fill:#000000"
id="tspan107">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan110"><tspan
style="fill:#000000"
id="tspan109">
</tspan></tspan><tspan
x="171.64648"
y="131.94739"
id="tspan112"><tspan
style="fill:#000000"
id="tspan111">
</tspan></tspan></text>
</g>
</svg>

BIN
homework_3/report/img/V0Addressing.png View File

Before After
Width: 920  |  Height: 246  |  Size: 16 KiB

Loading…
Cancel
Save