As I understand, shaders were a older way to use AMD GPUs for General purpose computing. They lacked a lot of features required for general computing and programmers were always in a way hacking the hardware, making it believe that it is drawing something. OpenCL and CUDA were much more formal approaches.
>> I encountered some places where both shader programming and OpenCL programming are used altogether and could not find the reason behind it.
>> Can you guys explain when do we usually bring together both the shader programming (GLSL/HLSL) and OpenCL/CUDA in a single application ?
I would only guess, you are working on a old application, originally written in shaders, and now being ported to OpenCL. But then I have never worked with shaders myself, so a more expert opinion is welcome