SIMD programming

What is SIMD? Is it important for me to understand the concept or is it situational? I've done a bit of digging and learned a bit about what SIMD and parallel processing is, but I couldn't figure it out well. And I also couldn't find any information on how to implement the concept into program design.
It stands for Single Instruction Multiple Data and as far as I know it is more of a hardware concept than anything else. The idea is that if you are doing the same operation on a lot of data (ie, transforming a lot of polygons from 3D to 2D in a graphics card) you only issue the instruction for the operation once, but feed in a lot of data. The right kind of hardware is capable of taking that one instruction and applying it to several locations in memory simultaneously-- so instead of mapping one vertex from 3D to 2D in a given number of clock cycles, you have 64 different processing units each do that mapping for a different vertex.
If you're interested in programming in a SIMD situation you should check out CUDA, NVIDIA's SDK for executing general purpose C code on the graphics card.
Topic archived. No new replies allowed.