: Jim Newton
One difficulty about your build-then-deliver suggestion is that my local machine is running mac-os, and the cluster is running linux. I don’t think I can build linux executables on my mac.
Your build does not have to be "local": pick one random Linux machine, have it do the compilation, and when it's done, your entire cluster is ready to start from the compiled executable.
The advantage is that you don't have ugly build race conditions as above.
ASDF's program-op and/or cl-launch will help you build and deliver a single executable for all your needs. You can even use cl-launch's multicall capabilities so the same executable has multiple functions.
For example,what if different hosts want to run the same source code but with different optimization settings? This is a real possibility, as some of my processes are running with profiling (debug 3) and collecting profiling results, and others are running super optimized (speed 3) code to try to find the fastest something-or-other.
Then have one output-translations per optimization setting, and produce two binaries with different names.
I don’t even know whether it is possible create the .asd files so that changing a optimization declaration will trigger everything depending on it to be recompiled. And If I think i’ve written my .asd files as such, how would I know whether they are really correct?
You need to configure optimization settings in your build script, after you load asdf and before you use it. See for instance the snapshot of quux on qitab for how we did it at ITA (in qres-build).
It is not the case currently, but may very well be in the future that I want different jobs in the cluster running different git branches of my code code. That would be a nightmare to manage if I try to share fasl files.
Indeed. Build multiple binaries each with its own output-translations, then distribute the binaries under different names.
Basel sounds interesting, but I don’t really see the advantage of building in parallel when it only takes a few seconds to build, but half a day to execute.
A split second is better than a few seconds, but yes, if you're the only user, the cost of setting it up is probably not worth it.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org I'm a polyatheist — there are many gods I don't believe in. — Dan Fouts