From Tech Artists Wiki
A shader is essentially a computer program executed on special environment.
Although shaders were introduced for graphics-related tasks which still hold a major part of their applications, shaders can also be used for more generic computation, just as generic programs can be used to compute arbitrary data.
As the computational power of GPUs continue to raise faster than conventional CPUs, the interest in shader programming has increased. However stream processing requires the traditional programmer to rethink their algorithms or problems to fit the new GPU paradigm.
Please see the Wikipedia article on Shaders (realtime).