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 March 2016 Carine Pivoteau Good predictions are worth... 1/11 A case study Find both the


  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 March 2016 Carine Pivoteau Good predictions are worth... 1/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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? Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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 Carine Pivoteau Good predictions are worth... 2/11

  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? Carine Pivoteau Good predictions are worth... 2/11

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

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

  33. Some background (mostly from Hennessy and Patterson [HP11]) ◮ Most modern processors are pipelined ◮ Instructions are parallelized Branch predictors are used to avoid stalls on branches! Conditional instructions (such as the “if” statement) yield branches in the execution of a program The branch predictor will guess which branch will be taken (T) or not (NT). A misprediction can be quite expensive ! Different schemes: static, dynamic, local, global,. . . Carine Pivoteau Good predictions are worth... 3/11

  34. Some background (mostly from Hennessy and Patterson [HP11]) ◮ Most modern processors are pipelined ◮ Instructions are parallelized Branch predictors are used to avoid stalls on branches! 1-bit predictor: NT T T NT T NT Carine Pivoteau Good predictions are worth... 3/11

  35. Some background (mostly from Hennessy and Patterson [HP11]) ◮ Most modern processors are pipelined ◮ Instructions are parallelized Branch predictors are used to avoid stalls on branches! 2-bit predictor: NT T T T T S. NT NT T S. T NT NT NT Carine Pivoteau Good predictions are worth... 3/11

  36. Some background (mostly from Hennessy and Patterson [HP11]) ◮ Most modern processors are pipelined ◮ Instructions are parallelized Branch predictors are used to avoid stalls on branches! Global (or mixed) predictor: ← − ¸ − → 0000...00 0000...01 ... 1111...11 Carine Pivoteau Good predictions are worth... 3/11

  37. Some background (mostly from Hennessy and Patterson [HP11]) ◮ Most modern processors are pipelined ◮ Instructions are parallelized Branch predictors are used to avoid stalls on branches! Conditional instructions (such as the “if” statement) yield branches in the execution of a program The branch predictor will guess which branch will be taken (T) or not (NT). A misprediction can be quite expensive ! Different schemes: static, dynamic, local, global,. . . Min and max search is very sensitive to branch prediction... Carine Pivoteau Good predictions are worth... 3/11

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