4 ms·
Even with an embarrassingly parallel problem, you need to have enough compute work per memory access to achieve anything like full utilization. Suppose you're d
by psykotic 10y ago
Even with an embarrassingly parallel problem, you need to have enough compute work per memory access to achieve anything like full utilization. Suppose you're doing a pairwise multiplication of two huge arrays. That's as embarrassingly parallel as it gets. Even better, it's a perfect fit for SIMD. But as the article shows, you'll get nowhere near the theoretical throughput of 4 instructions/cycle since there's not enough main memory bandwidth. You could add infinitely large issue and retire queues and infinitely many execution units to the out-of-order core. You'd still be bottlenecked by memory bandwidth.