coryan/jaybeams

Create docker images to run the JayBeams benchmarks and programs.

coryan opened this issue · 2 comments

I want to have docker images for the JayBeams programs and benchmarks, without having to install the full development environment.

One way to solve the problem would be to create static binaries, but apparently this does not work with OpenCL: the OpenCL model is to dynamically load the device driver.

Maybe we can create static binaries for some programs and not others. That would make it possible to include the static binaries in really small images.

For binaries that must have shared libraries and dynamic loading: we will have to create mid-sized images with the necessary shared libraries, but without the development environment.

Copying from #99:

At the end of this task I want to be able to run the JayBeams benchmarks inside a docker container. I think this will require me to:

  • Change the rules to install benchmarks and their dependencies (driver scripts for example) in something like /opt/jaybeams.

  • Run make and make install inside a container with the docker development images and where the destination for the install target is a docker volume.

  • Possibly the install target should include installing the Dockerfiles to create the runtime images too.

  • Then run docker build to package the contents of /opt/jaybeams into a container. That must install all the dependencies, such as shared libraries, and tools used by the benchmarks.

  • Then one can run a container with those images that just executes the benchmark, but might need to export the benchmark result to yet-another-volume.

  • Maybe I can figure out how to automatically upload the results to Google Cloud Storage (GCS). The last thing is not a requirement of this bug, but a nice to have.

This was fixed in #114. The images are working and automatically created. May need improvement later, but does not need improvement in software?