![]() ![]() ![]() It would be perfectly happy with a flock-of-chickens CPU design. (This is even more true with unified memory SoC designs like Apple Silicon, where the penalty for moving data between CPU and GPU essentially doesn't exist.)Ĭinebench is an embarrassingly parallel CPU benchmark. The availability of GPU compute is an argument for CPUs to remain things which are mostly optimized for serial computation. There's lots of software which either doesn't scale at all, or scales poorly beyond three or four cores, so you want at least some of the cores in the system to be as fast at ST as is practical.Īnother factor is that the rise of GPGPU allows us to move lots of embarrassingly parallel work off to GPUs, which actually are flock-of-chickens designs. It's still very important to provide high single thread performance. Unfortunately, in the real world, embarrassingly parallel is not the only thing. Do you want to pull your plow with a flock of chickens, or a big strong ox?) (The colloquial name for such a chip is a "flock-of-chickens" design. If the entire software world consisted of nothing but embarrassingly parallel throughput algorithms, that would be great! CPU manufacturers could pack big chips full of hundreds of efficiency cores, and these would provide far more compute throughput than today's CPUs. Thread synchronization points are both difficult to get right and a source of scaling problems. This arises when multiple threads need to edit the same data structure (it's very important that they don't both try to mess with the same thing at the same time), when one thread needs an interim result from another, and so forth. The harder problem is accelerating algorithms which have dependencies between threads. One is called "embarrassingly parallel", and the other is basically everything else.Įmbarrassingly parallel problems are those where the workload can easily be split up between an arbitrary number of cores, and there are no dependencies between the worker threads running on each core. ![]() When trying to use multiple cores, there's two important patterns in software. Click to expand.Only for a very narrow subset of what "multiprocessing" covers. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |