|
|
|
|
|
by scott_s
3352 days ago
|
|
> if it's this embarrassingly parallel, wouldn't this be a workload more suited for calculation on a GPU? Maybe, but one does not necessarily follow from the other. Consider the task of compiling 1 million separate C++ projects. That is obviously embarrassingly parallel, but not well suited for a GPU. It's trivial to do many compilations at once, but compiling itself is not easy to parallelize. That example is obviously contrived, but I think it demonstrates the principle that it's the computational profile of the core problem that will determine if you can use a GPU. If the core problem requires 10s of GB of RAM, or it's excessively branchy code, it may not be well suited for a GPU. |
|
1. SIMD (parallel lines)
2. Fork-Join (a directed acyclic graph of operations)
3. Message-Passing (a graph of operations)
GPUs are great at SIMD, but bad at the other sorts of parallelism.
[0] https://www.researchgate.net/publication/228683178_Three_lay...