Multiple processing compiling the same file

Faré fahree at gmail.com
Wed Jan 31 15:00:14 UTC 2018


>: 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



More information about the asdf-devel mailing list