huntting@boulder.colorado.edu (Brad Huntting) (05/05/90)
Has anyone thought of altering the 'make' to support parallel
compilation, using NCS? It's been done for other platforms.
The following is from the Dynix (seqent's) man page for make.
PARALLEL SUPPORT
Make includes a parallel processing ability. If the string
separating a target from its prerequisites is `:&' or `::&',
make can run the command sequences to make the prerequisites
simultaneously. If two names are separated by an ampersand
on the right side of a colon, those two may be created in
parallel.
It would seem that this idea is a perfect match for NCS. (Except
perhaps in the eyes of s/w sales people [personal opinions
deleted]).
Run make from any workstation, and compilations would be done on
available authorized nodes. My understanding is that location
brokers could direct compilations to not run on workstations which
were in use. (Please correct me if I'm mistaken)
#include "standard_disclaimer.h" /* not that it's needed... */
----------------------------------------------------------------------
brad
huntting@sel.bldrdoc.gov
huntting@boulder.colorado.eduhedman@cernvax.UUCP (fredrik hedman) (05/05/90)
In article <20680@boulder.Colorado.EDU> huntting@boulder.colorado.edu (Brad Huntting) writes: >Has anyone thought of altering the 'make' to support parallel >compilation, using NCS? It's been done for other platforms. I have just compiled version 3.58 of the GNU make program on an apollo. This version of 'make', which by the way has the best documentation of the 'make' tool I have ever read, supports 1) a '-j' option. If you do make -j 5 5 parallell compilations will be launched when make starts up. So if you have a product which contain 10 files, it will launch 5 compilations immediately and then do the rest of the files one after the other. '-j' is short for job slots. 2) there also seems to be support for some kind of networking facility. In the Makefile of 'make' one can read: # If there are remote execution facilities defined, # enable them with switches here (see remote-*.c). REMOTE = So if you combine 1) and 2) above I suppose you get just what you are looking for. I have not yet figured out how to use 2) above, anyone else ? Fredrik Hedman Division SL CERN Geneva Switzerland
lisch@lisch.mentor.com (Ray Lischner) (05/08/90)
In article <1828@cernvax.UUCP> hedman@cernvax.UUCP (fredrik hedman) writes: >I have just compiled version 3.58 of the GNU make program on an apollo. >This version of 'make', which by the way has the best documentation of >the 'make' tool I have ever read, supports ... >I have not yet figured out how to use 2) above, anyone else ? I am trying to implement remote makes for Apollos. A good solution is to run a make server on each node, and a local make could communicate with the servers to decide where to run a program. In our environment, however, this does not work because I cannot run a server process on other people's nodes. Instead, the user supplies a list of nodes. Make examines the load averages on the nodes until it finds a suitable one, then it runs the program there. The problem is that there does not seem to be a clean way to export the environment variables to the remote make. Until I can overcome this problem, my remote make implementation is worthless. I am interesting in knowing if others have tried or succeeded in implementing remote makes, or if anyone has any suggestions. -- Ray Lischner UUCP: {uunet,apollo,decwrl}!mntgfx!lisch -- Ray Lischner UUCP: {uunet,apollo,decwrl}!mntgfx!lisch