oneapi-src/oneapi-ci

investigate github caching to accelerate install

Closed this issue · 3 comments

windows install is taking 5 minutes on github. That is acceptable, but it might be accelerated with github caching:
https://docs.github.com/en/free-pro-team@latest/actions/guides/caching-dependencies-to-speed-up-workflows

We could cache the installed compiler directory \intel\oneapi
And the install script would check if the compiler was already installed and skip

The cache is likely stored on s3 so it would already be in the datacenter, but not on the systems. Not sure about the cache size limits.

I think it's possible to cache installed directory using a key with webimage name, and conditionally download/install only in absence of the cache. I'll look into this.

Attached pull requests adds install folder caching in GitHub actions on Windows and MacOS.
The cache restore times are:

  • Windows-C++: 1:23
  • Windows-Fortran: 0:19
  • Windows-DPC++: 1:36
  • MacOS-C++: 0:03
  • MacOS-Fortran: 0:03
    Windows times can be reduced by more selective caching if needed.
    I'll create a separate PR for Linux later. A slightly different approach is needed there to use install caching together with non-versioned APT packages.

Great result!

The config is getting more complicated and users have to bake release-specific info into it. At some point it would be good to have a github action where version, caching, components are options.