good predictions are worth a few comparisons
play

Good Predictions Are Worth a Few Comparisons Carine Pivoteau with - PowerPoint PPT Presentation

Good Predictions Are Worth a Few Comparisons Carine Pivoteau with Nicolas Auger and Cyril Nicaud LIGM - Universit e Paris-Est-Marne-la-Vall ee April 2016 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 1/16 A case


  1. Good Predictions Are Worth a Few Comparisons Carine Pivoteau with Nicolas Auger and Cyril Nicaud LIGM - Universit´ e Paris-Est-Marne-la-Vall´ ee April 2016 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 1/16

  2. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 min = 5 max = 5 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  3. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 1 < min ? 1 > max ? min = 5 max = 5 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  4. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 1 < min ? 1 > max ? min = 1 max = 5 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  5. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 4 < min ? 4 > max ? min = 1 max = 5 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  6. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 3 < min ? 3 > max ? min = 1 max = 5 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  7. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 6 < min ? 6 > max ? min = 1 max = 5 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  8. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 6 < min ? 6 > max ? min = 1 max = 6 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  9. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 0 < min ? 0 > max ? min = 1 max = 6 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  10. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 0 < min ? 0 > max ? min = 0 max = 6 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  11. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 2 < min ? 2 > max ? min = 0 max = 6 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  12. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 8 < min ? 8 > max ? min = 0 max = 6 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  13. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 8 < min ? 8 > max ? min = 0 max = 8 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  14. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 7 < min ? 7 > max ? min = 0 max = 8 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  15. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 9 < min ? 9 > max ? min = 0 max = 8 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  16. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 5 1 4 3 6 0 2 8 7 9 9 < min ? 9 > max ? min = 0 max = 9 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  17. A case study Find both the min. and the max. of an array of size n . Naive Algorithm: 2 n comparisons 5 1 4 3 6 0 2 8 7 9 9 < min ? 9 > max ? min = 0 max = 9 Can we do better? N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  18. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 5 1 4 3 6 0 2 8 7 9 min = 5 max = 5 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  19. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 5 1 4 3 6 0 2 8 7 9 5 < 1 ? 1 < min ? min = 5 5 > max ? max = 5 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  20. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 5 1 4 3 6 0 2 8 7 9 5 < 1 ? 1 < min ? min = 1 5 > max ? max = 5 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  21. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 5 1 4 3 6 0 2 8 7 9 4 < 3 ? 3 < min ? min = 1 4 > max ? max = 5 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  22. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 5 1 4 3 6 0 2 8 7 9 6 < 0 ? 0 < min ? min = 1 6 > max ? max = 5 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  23. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 5 1 4 3 6 0 2 8 7 9 6 < 0 ? 0 < min ? min = 0 6 > max ? max = 6 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  24. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 5 1 4 3 6 0 2 8 7 9 2 < 8 ? 2 < min ? min = 0 8 > max ? max = 6 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  25. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 5 1 4 3 6 0 2 8 7 9 2 < 8 ? 2 < min ? min = 0 8 > max ? max = 8 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  26. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 5 1 4 3 6 0 2 8 7 9 7 < 9 ? 7 < min ? min = 0 9 > max ? max = 8 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  27. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 5 1 4 3 6 0 2 8 7 9 7 < 9 ? 7 < min ? min = 0 9 > max ? max = 9 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  28. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 3 n/ 2 comparisons (optimal) 5 1 4 3 6 0 2 8 7 9 7 < 9 ? 7 < min ? min = 0 9 > max ? max = 9 N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  29. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 3 n/ 2 comparisons (optimal) Naive Algorithm: 2 n comparisons N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  30. A case study Find both the min. and the max. of an array of size n . Optimized Algorithm: 3 n/ 2 comparisons (optimal) Naive Algorithm: 2 n comparisons In practice, on uniform random data? N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  31. A case study Find both the min. and the max. of an array of size n . in C, using gcc -O0 , random integers N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  32. A case study Find both the min. and the max. of an array of size n . in C, using gcc -O0 , random integers N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 2/16

  33. What “really” happens in the processor... optimized min/max search // RAND_ARRAY: an array of length N // filled with random integers min = RAND_ARRAY[0]; max = RAND_ARRAY[0]; for(i=0; i<N; i+=2){ //assume N is even a1 = RAND_ARRAY[i]; a2 = RAND_ARRAY[i+1]; if (a1 < a2) { if (a1 < min) min = a1; if (a2 > max) max = a2; } else { if (a2 < min) min = a2; if (a1 > max) max = a1; } } N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 3/16

  34. What “really” happens in the processor... sample of assembly code ( gcc -O0 ) mov esi, dword ptr [rbp - 60] cmp esi, dword ptr [rbp - 64] jge LBB2_8 mov eax, dword ptr [rbp - 60] cmp eax, dword ptr [rbp - 12] jge LBB2_5 mov eax, dword ptr [rbp - 60] mov dword ptr [rbp - 12], eax LBB2_5: mov eax, dword ptr [rbp - 64] cmp eax, dword ptr [rbp - 16] jle LBB2_7 ... N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 3/16

  35. What “really” happens in the processor... sample of assembly code ( gcc -O0 ) ◮ Each instruction mov esi, dword ptr [rbp - 60] cmp esi, dword ptr [rbp - 64] can be decomposed: jge LBB2_8 mov eax, dword ptr [rbp - 60] cmp eax, dword ptr [rbp - 12] ◮ Most modern jge LBB2_5 processors are pipelined mov eax, dword ptr [rbp - 60] mov dword ptr [rbp - 12], eax ◮ Instructions LBB2_5: mov eax, dword ptr [rbp - 64] are parallelized cmp eax, dword ptr [rbp - 16] jle LBB2_7 ... simple 5 stages pipeline: N. Auger , C. Nicaud , C. Pivoteau Good predictions are worth... 3/16

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend