Containerization is completely orthogonal to “high load” or “parallelization”. Containerization also does not imply any virtualization, and is better interpreted as sandboxing.
So why do people use containers? Images.
Thanks to image layering, a container image can contain a complete application with all its dependencies (other services, libraries, …) without having to install them on the host system. This makes it feasible to run applications without having to install them permanently, or to run multiple instances of one application, or to run multiple applications with conflicting dependencies.
This has limited benefits for most users, except when running a cluster. Being able to launch a container image instead of permanently installing dependencies is a huge benefit and gives us loads of flexibility on a cluster: tomorrow, I want to run a completely different workload with a different set of dependencies.
You already mentioned two kinds of users where clusters are common: render farms, and scientific computing. These often happen to require GPUs. Specifially, CUDA-based programs require Nvidia GPUs.
So there is a desire to use both GPUs and containers for their cluster-management benefits. By itself, this combination does not require a special docker runtime. You need to configure the container runtime to pass through necessary resources, possibly allow extra syscalls from the container (which also weakens the sandboxing), and set up the necessary configuration in the container.
But why should you have to configure that? And there might be other problems: This is a scenario where GPU drivers are relevant, yet containers cannot load drivers into the kernel. A container might want to use a GPU as an exclusive resource. Using GPUs under Linux can sometimes still involve nontrivial configuration.
So clearly there is a desire to make GPU–container combinations less cumbersome. Nvidia-docker seems to be one approach. Kubernetes has experimental support for managing GPU resources and can use either nvidia-docker or a Google plugin as a GPU interface – but has apparently no support for OpenCL yet.