Clock Speed: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 6: | Line 6: | ||
*Thus, computer speed is a question of software now more than hardware. Software to take advantage of multiple cores. As we saw in FreeCAD, little of FreeCAD takes advantage of multiple cores. | *Thus, computer speed is a question of software now more than hardware. Software to take advantage of multiple cores. As we saw in FreeCAD, little of FreeCAD takes advantage of multiple cores. | ||
*Thus the central question for performance becomes: '''How do you program to use multicores?''' [[Multicore Programming 101]]. | *Thus the central question for performance becomes: '''How do you program to use multicores?''' [[Multicore Programming 101]]. | ||
*For multithreading, there are 4 implementations in software: Pthreads (C), Threading Building Blocks in C++ (TBB), OpenMP, and Cilk++ | *For multithreading, there are 4 implementations in software: Pthreads where programmer has to manage threads (errorprone) (C), Threading Building Blocks in C++ (TBB) runs on top of native threads - programmers manage tasks, not threads; OpenMP runs on top of native threads as linguistic extensions of C, C++, and FORTRAN; and Cilk++ |
Revision as of 15:08, 1 May 2019
- 3D transistors invented in 2011 to continue Moore's Law - [1]
- Top speeds around 4GHZ and 9 GHZ with liquid gas cooling - [2]
- Multicore concept - less powerful processors, but multiples of them. They thus use less energy, but have higher combined speed.
- But: with multi cores - programs have to be written a different way to take advantage of multiple cores. This means that only specialized programs gain the benefit of multicores.
- Many applications do not realize yet large speedup factors: parallelizing algorithms and software is a major on-going research area. - [3]
- Thus, computer speed is a question of software now more than hardware. Software to take advantage of multiple cores. As we saw in FreeCAD, little of FreeCAD takes advantage of multiple cores.
- Thus the central question for performance becomes: How do you program to use multicores? Multicore Programming 101.
- For multithreading, there are 4 implementations in software: Pthreads where programmer has to manage threads (errorprone) (C), Threading Building Blocks in C++ (TBB) runs on top of native threads - programmers manage tasks, not threads; OpenMP runs on top of native threads as linguistic extensions of C, C++, and FORTRAN; and Cilk++