We are looking into using Jenkins for continuous integration and dockers for containers. This topic was discussed back in 2017, but nothing was presented as a solution.
My overall project combination to build an exec is:
- CMake (make file builder)
- Ninja(FORTRAN aware, parallel builder)
- Conan (C / C++ and if I lie FORTRAN package manager)
- Artifactory (Package repo)
Targets are Windows and *nix, and multiple compiler versions.(3'rd party requirements)
So my questions are:
- How is the license supposed to be managed for the CI server. Everybody on the team has a FORTRAN license, but does the CI machine need it's own?
- How do I install Intel FORTRAN so all I have is the compiler. You can see I don't need or want integration with an IDE.
Anybody have insights or recommendations?
Intel licenses compilers two ways: Named User and Floating. You can read the details at https://software.intel.com/en-us/license/eula-for-intel-software-development-products Named User licenses are local and permit a single individual to use the product as many times and in as many places as you want, as long as you (single individual) are the exclusive user. A Floating license is installed on a license server and allows up to the licensed number of concurrent compilations by anyone who has access to the license server.
When I was working for Intel, we were aware of some customers installing a single license on a server and allowing all of their users to "submit" compilations to the server. Technically that's not allowed under a Named User license - would be fine with a floating license.
Note that Intel licenses Windows and Linux compilers separately - I had seen some discussion of offering multi-platform licenses but am not aware that ever happened. Nor is there any facility for cross-builds.
What matters for licensing is the invocation of ifort, the compiler. IDE integration is optional, though on Windows you need to have components of Microsoft Visual C++ installed to build applications. You can stick to the command line if you like. On Linux, there is no IDE support provided by Intel.
The OS instance that invokes the compiler must have access to a license file with a valid license. It is not clear to me what your setup is, but if you are using some separate system to do builds, each user of the Intel compiler on that system must be licensed. If you ensure that everyone has their own Named User license, how you set up the build system doesn't really matter, but this is something you'll have to prove to your own legal folks. This is easier to manage with floating licenses.
I will offer the huge caveat that, 1) I don't work for Intel anymore so nothing I say here is binding (and even when I did, it wasn't), and 2) Nobody who reads this forum is likely to be able to give you an official answer to your question. If your organization worked with an Intel sales representative, I'd say talk to them, but it's more likely you don't, in which case I really don't have a suggestion for how to get an answer other than by filing a licensing question at the Intel Online Service Center and hoping that they connect you with someone on the Intel business side who can give you a definitive answer. I wish I had something better to offer.
Good news.... we are not using named user licenses, but rather the license server. So that should be good.
We also buy both the Window and the *nix versions ... so yes Intel gets a few pennies from us (chuckle)
So hopefully it comes done to, how to make the system work.
All you need to do is have the system where the compiler runs have a license file or environment variable (INTEL_LICENSE_SERVER, I think) that points to your license server on your network. It's only the compiler that cares.