implemented opencl program caching on disk under the system default temp folder, needs some additional work on linux